新生活を充実させるための「こだわり」を取材!!

エクセルにてマクロを作成しているのですが、
今まで問題なく動いていたMsgBoxがコンパイルエラーになります。

MsgBox("テスト", vbOKOnly, "テスト")

と打っても、
「コンパイルエラーです。修正候補:=」
表示されるようになりました。

今までは、これと同じように打っていても何も問題がなかったのに、
突然、このようになりました。
ちなみに、今まで正常に動いていたものをまったく同じように打っても
エラーになります。
まったく原因がわかりません。
どなたかおわかりになる方、よろしくお願いします。

教えて!goo グレード

A 回答 (3件)

引数を括弧で括る場合は、戻り値を設定する必要があるようです。


括弧を使わなければそのままでも通ります。

Sub Test1()
  msgResult = MsgBox("テスト", vbOKOnly, "テスト")
End Sub

Sub Test2()
  MsgBox "テスト", vbOKOnly, "テスト"
End Sub
    • good
    • 0
この回答へのお礼

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

引数をかっこでくくる場合には、戻り値を設定する必要があるとは知りませんでした。

今までに打ったものを読み返してみたら、
確かに、Test1のように打っていたので、エラーにならなかったようです。

警告表示だけさせたかったので、戻り値を設定せずに打ったのが、
原因だったようです。
今までは、vbOKOnlyなどを指定せず、Promptだけを指定していたので、
エラーになっていなかったことが分かりました。

ありがとうございました。

お礼日時:2006/12/11 10:11

MsgBox 関数は 整数型の値を返します。


呼び出し方は
 MsgBox "テスト", vbOKOnly, "テスト"
 Call MsgBox("テスト", vbOKOnly, "テスト")
 rtn = MsgBox("テスト", vbYesNo, "テスト")
のいずれかになります。
    • good
    • 0
この回答へのお礼

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

1番目の書き方でやったらうまく動きました。

お礼日時:2006/12/11 10:05

たとえば参照設定で何かの項目が "参照不可" になっているとか。


開発 PC を代えたり、何かをアンインストールしたりするとなることがあります。
まずは VB Editor で [ツール]-[参照設定] で参照不可の項目があるかどうか確認してみてください。
    • good
    • 0
この回答へのお礼

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

PCを変えてやってみても同じ結果でした。

お礼日時:2006/12/11 10:00

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

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

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング