• ベストアンサー

入力したセル番地をメッセージボックスで表示する方法

Excelでメッセージボックスの使い方についてお聞きします。 下記のコードを実行します。その時、メッセージボックス上に入力したセル番地(A1)、「こんにちは」という語句をそれぞれ表示させるにはどのような方法があるのでしょうか。 宜しくお願いします。 Range("A1").Value = "こんにちは"

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは。 Range("A1").Value = "こんにちは" この実行結果を確認する意味でしたらば、 シートモジュールにて_Changeイベントを用います。 以下、シートモジュール。 Private Sub Worksheet_Change(ByVal Target As Range)  '  8331714   If Target.Count > 1 Then Exit Sub   If Target.Row > 30 Then Exit Sub   If Target.Column > 20 Then Exit Sub   If Target.Value = "" Then Exit Sub   MsgBox "アドレスは " & Target.Address(0, 0) & _     vbLf & "値  は   " & Target.Value End Sub イベントプロシージャのポイントは、条件分岐で、 不要な処理を予め回避するように書くことです。 例では、   If Target.Count > 1 Then Exit Sub 複数セルを纏めて値変更した場合は、 (以下同様)この行で処理を抜けて終了します。   If Target.Row > 30 Then Exit Sub 値を変更したセルが39行めよりしただった4なら、   If Target.Column > 20 Then Exit Sub 値を変更したセルが39行めよりしただった4なら、   If Target.Value = "" Then Exit Sub 値を変を消去した場合は、 といった具合に、必要に応じて処理を分けるように そして事前にエラーを回避するように書く のが基本ではあります。 ただし、 Range("A1").Value = "こんにちは" と書いた時点で、この実行プロシージャの内では、 2つの値が解っているのですから、 わざわざ、イベントプロシージャに依存する必要はないような? 例えば変数を使って   a = "A1"   v = "こんにちは"   Range(a).Value = v   MsgBox "アドレスは " & a & _     vbLf & "値  は   " & v のようにする方が確実ではあります。

di6351
質問者

お礼

大変詳しく説明して頂き、ありがとうございます。 下記方法で表示させることが出来ました。   MsgBox "アドレスは " & a & _     vbLf & "値  は   " & v このように"アドレスは"、"値は"等の語句を入れることでより分かりやすくなりました。 Changeイベントについては、今後行き詰った時に参考にしたいと思います。

その他の回答 (2)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.3

#2、cjです。訂正です。 説明コメントに間違いがありました。   If Target.Row > 30 Then Exit Sub 値を変更したセルが30行めより下だったなら、   If Target.Column > 20 Then Exit Sub 値を変更したセルが20列め(T列)より右だったなら、 以上訂正をお願いします。失礼しました。

di6351
質問者

お礼

ご回答ありがとうございます。 今後の参考にしたいと思います。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

こんなことかな With Range("A1")   .Value = "こんにちは"   MsgBox .Address(0, 0) & vbCrLf & .Value End With

di6351
質問者

お礼

ご回答ありがとうございます。メッセージボックスにセル番地と入力文字列の両方を表示させることが出来ました。

関連するQ&A