この人頭いいなと思ったエピソード

Msgbox Cells(i, 1) & Cells(i, 2) & Cells(i, 3), vbOKCancel

としました。
そしてMsgboxで「OK」が押されたか「キャンセル」が押されたか取得したいのですが、どのようにすればいいのでしょうか?

Ex2000、win2000です。

A 回答 (3件)

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
    • good
    • 0

こんにちは。

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

としてもいいわけです。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2004/02/25 13:54

If Msgbox(Cells(i, 1) & Cells(i, 2) & Cells(i, 3), vbOKCancel) = vbOK then


 MsgBox "OK"
else
 MsgBox "Cancel"
End If

こんな感じです。
    • good
    • 0
この回答へのお礼

お二人ともありがとうございました!!

無事できました★

お礼日時:2004/02/25 13:52

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報