電子書籍の厳選無料作品が豊富!

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

Range("A1").Value = "こんにちは"

A 回答 (3件)

こんにちは。



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
のようにする方が確実ではあります。
    • good
    • 0
この回答へのお礼

大変詳しく説明して頂き、ありがとうございます。
下記方法で表示させることが出来ました。

  MsgBox "アドレスは " & a & _
    vbLf & "値  は   " & v

このように"アドレスは"、"値は"等の語句を入れることでより分かりやすくなりました。
Changeイベントについては、今後行き詰った時に参考にしたいと思います。

お礼日時:2013/11/03 13:52

#2、cjです。

訂正です。
説明コメントに間違いがありました。

  If Target.Row > 30 Then Exit Sub
値を変更したセルが30行めより下だったなら、
  If Target.Column > 20 Then Exit Sub
値を変更したセルが20列め(T列)より右だったなら、

以上訂正をお願いします。失礼しました。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/11/03 13:54

こんなことかな


With Range("A1")
  .Value = "こんにちは"
  MsgBox .Address(0, 0) & vbCrLf & .Value
End With
    • good
    • 1
この回答へのお礼

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

お礼日時:2013/11/03 13:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!