こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAの記述で・・・OTL

エクセルVBAの記述で・・・OTL

VBA初心者です。
まず、私が記述した内容を書きます。

Sub 実践練習()
Dim tuika As String
tuika = Application.InputBox( _
Title:="追加", _
Prompt:="追加する内容を入力して下さい。", _
Left:=650, _
Top:=100, _
Type:=2)
If Worksheets("Sheet2").Range("G10").Value <> " FALSE " Then

MsgBox "OKです", vbOKOnly + vbDefaultButton2, "追加完了"
With Worksheets("Sheet2")
.Range("G10").Value = tuika
LastRow = Worksheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Row + 1
Worksheets("Sheet3").Range("A" & LastRow).Value = Worksheets("Sheet2").Range("G10").Value
End With

Else
MsgBox "入力が不足しています。", vbOKOnly + vbCritical, "入力ミス"

End If
End Sub()

完成させたいことは・・・
Sheet1に存在するInputbox(ボタン)を使用し、
Sheet2のG10にFALSE以外が入力されたときは、
MsgBox追加完了のダイアログを表示してSheet2のG10値をSheet3のA列に順番に転送させる。
もしFALSEが入力されてしまったら、
MsgBox入力ミスを表示させて、
Sheet2のG10の値(FALSE)を削除しなさい。
と、記述したいのです。

勿論、上記の記述は完成していません(泣
どなたか、ご教授の程、何卒宜しくお願い致します。
(上記の完成型をお待ちしてます m(_ _)m )

【環境】
OS:WindowsXP Pro
Excel:2003

投稿日時 - 2010-07-15 09:36:03

QNo.6039620

すぐに回答ほしいです

質問者が選んだベストアンサー

たぶんこのような処理をしたいのでは....

Sub test01()

Dim tuika As String

A01:

tuika = Application.InputBox( _
Title:="追加", _
Prompt:="追加する内容を入力して下さい。", _
Left:=650, _
Top:=100, _
Type:=2)

If tuika <> "" Then
  Worksheets("Sheet2").Range("G10") = tuika
  MsgBox "OKです", vbOKOnly + vbDefaultButton2, "追加完了"
  LastRow = Worksheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Row + 1
  Worksheets("Sheet3").Range("A" & LastRow).Value = Worksheets("Sheet2").Range   ("G10").Value
Else
  MsgBox "入力が不足しています。", vbOKOnly + vbCritical, "入力ミス"
  GoTo A01
End If

End Sub

投稿日時 - 2010-07-15 10:19:02

お礼

ご回答ありがとうございます!

ご指示の記述を実行しましたところ、
正しい入力(テキスト入力)をしてもループしてしまいました・・・orz

Elseの場合は(InputBoxが空欄)の場合は、
Sheet2のG10値のFALSEを削除したいと考えてます。

いかがでしょうか・・・?

投稿日時 - 2010-07-15 11:04:21

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

当方の環境ではループしませんが(^_^;)

私が作ったマクロの概要は以下の通りです
tuikaがnull以外であればG10に値をセットして、
sheet3に追加する。
tuikaがnullの場合、エラーを表示して再入力させる。

この様なロジックになっています。

"FALSE"という表現をなされていますが、何を持って
"FALSE"なのでしょうか?
このマクロでは戻り値として"FALSE"は無いと思います。
ご自分でG10に"FALSE"という文字列をセットしたいと
いう事でしょうか?

投稿日時 - 2010-07-15 11:29:16

お礼

度々のご回答ありがとうございます。

Sheet2のG10に最初からFALSEが入力されていて(自分の間違った記述のままの値)
ループをしていた?んだと思います(たぶん)

解決です。完璧でした!
ありがとうございます!

投稿日時 - 2010-07-15 11:37:03

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-