web-dev-qa-db-ja.com

OutlookでVBAスクリプトを実行しようとすると、「Sub or Function not defined」

現在選択されている画像のサイズを100%x 100%に変更するVBAスクリプトを作成する最初のステップとして、 http://msdn.Microsoft.com/en-us/libraryの例を再現しようとしています。 /ee814736(v=office.14).aspx 。マクロは非常に簡単です。

Sub Test()
   MsgBox ("Hello world")
End Sub

VBAスクリプトは、Alt + F11を押すとデフォルトで開く「Project1」で作成されました。ただし、VBAスクリプトを実行しようとすると、エラー「Sub or Function not defined」が表示され続けます(図1および2)。

OutlookでVBAスクリプトを「アクセス可能」にするにはどうすればよいですか?

Running the "Test" macro in Microsoft Outlook 図1 Microsoft Outlookでの「テスト」マクロの実行

enter image description here 図2「サブまたは関数が定義されていません」エラー、モジュールツリーがバックグラウンド

7
Kurt Peek

Msdn.Microsoft.comの指示に従うことで問題を解決しました。そこでは、開発者->マクロを選択し、新しいマクロ名を入力して、「作成」をクリックすることにより、新しいマクロを作成する必要があると述べられています。この方法でマクロを作成すると、実行できました(下のメッセージボックスを参照)。

enter image description here

5
Kurt Peek

この問題についても同様の状況がありました。この場合、次のようになります。

Sub Test()
   MsqBox ("Hello world")
End Sub

問題は、「MsqBox」(gではなくq)にスペルミスがあり、エラーがあったため、実際には誤解を招く可能性がありましたが、そのようなこのエラーについては、おそらく他の誰かがそれがこのようなミススペルによる原因であることに気付くでしょう...

3
Arturas M

これはおそらくあなたの質問には答えませんが、私は同じ質問を持っていて、私に答えました。

私が変更され Private FunctionからPublic Functionそしてそれは働いた。

1
Emwat

この「サブまたは関数が定義されていません」というエラーは、スクリプトに何らかのコンパイルエラーがあるたびに発生するため、スクリプトの構文をもう一度確認してください。

Msgboxの代わりにmsqboxを使用すると、エラーがスローされるのはそのためだと思います。

1
Arpit Jain

MS Outlookを使用して、VBAコードが機能するようにライブラリを更新する必要があると思います

0
user3287522

モジュール名とサブ名が同じである場合、そのような問題があることを追加する必要があります。モジュール名をsubと同じ「Test」ではなくmod_Testに変更することを検討してください。

0
Kangqiao Zhao