- ベストアンサー
エクセルVBAの記述で・・・OTL
- VBA初心者がエクセルVBAの記述について質問しています。完成させたいコードの説明と、問題点があります。質問に対する解決策を教えてほしいという内容です。
- 具体的には、Sheet1に存在するボタンをクリックすると、Sheet2のG10セルに入力内容を転送したいです。転送はSheet3のA列に順番に行い、値がFALSEの場合はデータを削除します。
- 質問者はWindowsXP ProとExcel 2003を使用しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
たぶんこのような処理をしたいのでは.... 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
その他の回答 (1)
- Zeus_Sphere
- ベストアンサー率70% (19/27)
当方の環境ではループしませんが(^_^;) 私が作ったマクロの概要は以下の通りです tuikaがnull以外であればG10に値をセットして、 sheet3に追加する。 tuikaがnullの場合、エラーを表示して再入力させる。 この様なロジックになっています。 "FALSE"という表現をなされていますが、何を持って "FALSE"なのでしょうか? このマクロでは戻り値として"FALSE"は無いと思います。 ご自分でG10に"FALSE"という文字列をセットしたいと いう事でしょうか?
お礼
度々のご回答ありがとうございます。 Sheet2のG10に最初からFALSEが入力されていて(自分の間違った記述のままの値) ループをしていた?んだと思います(たぶん) 解決です。完璧でした! ありがとうございます!
お礼
ご回答ありがとうございます! ご指示の記述を実行しましたところ、 正しい入力(テキスト入力)をしてもループしてしまいました・・・orz Elseの場合は(InputBoxが空欄)の場合は、 Sheet2のG10値のFALSEを削除したいと考えてます。 いかがでしょうか・・・?