• ベストアンサー

Excel VBAでMsgboxの値を取得するには?

Msgbox Cells(i, 1) & Cells(i, 2) & Cells(i, 3), vbOKCancel としました。 そしてMsgboxで「OK」が押されたか「キャンセル」が押されたか取得したいのですが、どのようにすればいいのでしょうか? Ex2000、win2000です。

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

Dim ret ret = Msgbox(Cells(i, 1) & Cells(i, 2) & Cells(i, 3), vbOKCancel) If ret = vbOk Then MsgBox "OK" ElseIf ret = vbCancel Then MsgBox "Cancel" End If

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 MsgBox関数は処理の結果を整数として返します。 そして、その数値を表す定数がVBA(VB)には用意されています。 vbCancel vbOk vbYes などです。 コーディングとしては、 Dim ret As Long ret = MsgBox(省略) If ret = vbOk Then   'OKの場合の処理 Else   'OK以外の場合の処理 End If という感じでしょうか。 戻り値の定数のリストについては、オブジェクトブラウザで確認して下さい。 オブジェクトブラウザは、VBE画面で、メニューの[表示]→[オブジェクトブラウザ]で表示されます。 そこで、[クラス]で「vbMsgBoxResult」を選択すると、隣りにメンバが表示されます。 そして個々のメンバを選択すると、下にその定数の数値が表示されます。 これによれば、vbOk=1なので、 If ret = 1 Then としてもいいわけです。

w-inty
質問者

お礼

回答ありがとうございます。 数値でも判別できるんですね。 ありがとうございました★

  • soma3
  • ベストアンサー率39% (16/41)
回答No.2

If Msgbox(Cells(i, 1) & Cells(i, 2) & Cells(i, 3), vbOKCancel) = vbOK then  MsgBox "OK" else  MsgBox "Cancel" End If こんな感じです。

w-inty
質問者

お礼

お二人ともありがとうございました!! 無事できました★

関連するQ&A