• ベストアンサー

MsgBoxがコンパイルエラーになります

エクセルにてマクロを作成しているのですが、 今まで問題なく動いていたMsgBoxがコンパイルエラーになります。 MsgBox("テスト", vbOKOnly, "テスト") と打っても、 「コンパイルエラーです。修正候補:=」 表示されるようになりました。 今までは、これと同じように打っていても何も問題がなかったのに、 突然、このようになりました。 ちなみに、今まで正常に動いていたものをまったく同じように打っても エラーになります。 まったく原因がわかりません。 どなたかおわかりになる方、よろしくお願いします。

  • ferc
  • お礼率69% (49/71)

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

引数を括弧で括る場合は、戻り値を設定する必要があるようです。 括弧を使わなければそのままでも通ります。 Sub Test1()   msgResult = MsgBox("テスト", vbOKOnly, "テスト") End Sub Sub Test2()   MsgBox "テスト", vbOKOnly, "テスト" End Sub

ferc
質問者

お礼

ご回答ありがとうございます。 引数をかっこでくくる場合には、戻り値を設定する必要があるとは知りませんでした。 今までに打ったものを読み返してみたら、 確かに、Test1のように打っていたので、エラーにならなかったようです。 警告表示だけさせたかったので、戻り値を設定せずに打ったのが、 原因だったようです。 今までは、vbOKOnlyなどを指定せず、Promptだけを指定していたので、 エラーになっていなかったことが分かりました。 ありがとうございました。

その他の回答 (2)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

MsgBox 関数は 整数型の値を返します。 呼び出し方は  MsgBox "テスト", vbOKOnly, "テスト"  Call MsgBox("テスト", vbOKOnly, "テスト")  rtn = MsgBox("テスト", vbYesNo, "テスト") のいずれかになります。

ferc
質問者

お礼

ご回答ありがとうございます。 1番目の書き方でやったらうまく動きました。

回答No.1

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

ferc
質問者

お礼

ご回答ありがとうございます。 PCを変えてやってみても同じ結果でした。

関連するQ&A

  • エクセル2007でコンパイルエラーが消えません。

    エクセル2007でコンパイルエラーが消えません。 パソコンを乗換かえて、今エクセル2007を使用していますが、エクセルを開くと、非表示モジュール AutoExecNew内でコンパイルエラーが発生しました。の表示がでて、閉じるときには、非表示モジュール DistMon内でコンパイルエラーが発生しました。と、必ずでてしまいます。 前のパソコンは2003でしたが、アンインスト―ルしてから、ファイルの転送ウィザードですべてのデータ 移動したのですが、そういうのが、原因でしょうか? 2007を入れなおしても同じ状態になってしまいます。 ・・いちおう、作業するには、問題ないのですが・・・おしえてください。

  • エクセルのVBAのエラー

    早速ですが、よろしくお願い致します。 単純なマクロですが、下記の記述は実行すると、ただメッセージボックスが表示される…つもりです。 タイトルが「確認メッセージ」、文字は「完了しました」、ボタンは「OK」のみです。 しかし、エラーになってしまいます。(コンパイルエラー 構文エラー) Sub test()   MsgBox ("完了しました",vbOKOnly,"確認メッセージ") End Sub どこが間違っているのでしょうか?? ご教授をお願い致します。

  • VBA  コンパイルエラー:プロジェクトまたはライブラリがみつかりませ

    VBA  コンパイルエラー:プロジェクトまたはライブラリがみつかりません。 Excel2000で作成したマクロ(VBA)をExcel2007(OS:VISTA)上互換モードでコンパイルして動かしていました。このマクロをExcel2007(64ビットWindows7)でコンパイルしようとすると「コンパイルエラー:プロジェクトまたはライブラリがみつかりません。」でコンパイルできません。対象は「chr()、mid()、trim()」等の関数のようです。 解決策をご教授いただきたくお願いいたします。

  • エクセル2003 コンパイルエラー

      エクセル2003を終了する際に、「非表示モジュールserver translation内でコンパイルエラー発生」というエラーメッセージが毎回表示されます。  利用中は、操作面で反応が多少悪いのが気になりますが、特にトラブルはありません。   修正のために、インストールCDなどでも試してみましたが、完了後も変わらず表示されます。  どのようなエラーでしょうか?気にしないでこのまま使っていても大丈夫ですか?  教えて下さい。よろしくお願いします。

  • コンパイルエラー

    Office2007をwindowsXPホームで使用しています。 ワードでは     非表示モジュールATLAS.Tools71内でコンパイルエラーが発生しました。 エクセルでは   非表示モジュールServer.Translation内でコンパイルエラーが発生しました。 と表示されます、どうしたら良いのか解りません対処方法を教えて下さい。

  • コンパイルエラー

    Office2007をwindowsXPホームで使用しています。 ワードでは     非表示モジュールATLAS.Tools71内でコンパイルエラーが発生しました。 エクセルでは   非表示モジュールServer.Translation内でコンパイルエラーが発生しました。 と表示されます、どうしたら良いのか解りません対処方法を教えて下さい

  • [VBA]MsgBoxが消えません。

    ExcelでFormダイアログで、メインメニューを 作成しています。 今度、入力項目のエラーチェックを行うこと になったのですが、エラーを検出した場合、 メインメニューのサイズより大きなMsgBoxを 表示しています。OK/CancelでMsgBoxが消え、 メインメニューが再表示されるのですが、 メインメニューの領域外が、MsgBoxの表示 が残ったままになってしまいます。 (制御そのものはメインメニューに移っています。) このような場合でも、MsgBoxをきれいに消す にはどのようにしたらよろしいでしょうか?

  • VBA コンパイルエラーが出る

    IEを起動し、サイトを巡回するようなVBAプログラムを使用しています。 数か月前までは、正常に使えていましたが、昨日起動するとエラーが出て止まるように なってしまいました。 使用しているのは同じマシンからです。コードも数か月前となにも変わっていません。 OS、エクセルソフトの問題かと思い、エクセルのみ再インストールしましたが改善されません。 エラー内容は、マクロ実行時に「コンパイルエラー プロジェクトまたはライブラリが見つかりません。」 とのエラーが出て、以下コードのうち一部分が暗転しています。 最初に(1)のStringが暗転したので、テストでこの行を無効化して走らせたら、今度は(2)のChrが 暗転するようになりました。 (1)cookiepath = String(MAX_PATH, vbNullChar) →Stringが暗転 (この間に数行) (2)cookiepath = Left(cookiepath, InStr(1, cookiepath, Chr(0)) - 1) →Chrが暗転 作成したのが自分でないため、プログラム内容もいまいち理解していないんですが 同じ環境下で同じプログラムを使用し、時期によって起動するしないが分かれるのは 不可解です。 だからといって、エクセルそのものを再インストールしても改善されない為 これ以上何を変えればよいか分からず、お手上げ状態です。 何か解決策をご存じの方は教えていただけませんでしょうか。お願いいたします。

  • エクセルでエラーメッセージ(実行時選エラー)をMSGBOXに変更できないでしょうか?

    エクセルで次のエラーメッセージをMSGBOXに変更できないでしょうか?  なお、原因は判明しましたが、 自作マクロでの操作上どうしても、このエラーメッセージ出力が避けれません。 どなたか力を貸してください。よろしくお願いします。 【現 状】→『Microsoft Visual Basic 実行時エラー’9’インデックス が有効範囲ではありません。』 【変更例】→『msgbox "始めに、○○操作を実施してください。", , "この操作は出来ません!" 』

  • EXCELマクロ実行でコンパイルエラー

    すみません。お助けください。 他の会社で作成したマクロ入りのEXCELですが、送ってもらって、 会社に持ってきて、動かそうとしたら、マクロの実行で「コンパイルエラー」 がでます。 同じ時期に購入した同じ機種(WinXP Excel2003)が数台あるのですが、 正常に動作する機種もあります。 コンパイルエラーはFormatででています。 VBA画面でツール→参照設定で、参照不可が下記で表示されていました。 「参照不可:Microsoft Common Dialog Contorol6.0(SP3)」 チェックを外そうとすると、 「使用中のコントロールまたは参照を削除する事が出来ません」と 表示されます。 どなたか、ご存知の方アドバイスお願い致します。

専門家に質問してみよう