VBA マクロにおける Application オブジェクト


コメントにて以下のご質問をいただきました。


いつも大変に参考にさせて頂いております。
Outlookからメールを作成し、その際ファイルを選択するダイアログボックスを表示させ、選択したファイルをメールに添付させるマクロを考えております。
同様のマクロはExcelから作成できていたのですが、そのマクロをOutlook側で使用しようとしたところ、ファイルを選択するところで使用している以下のコードでエラーとなってしまいました。
OpenFileName = Application.GetOpenFilename(“Microsoft Excelブック,*.xlsx”)

捕捉しますと処理の流れは
①メール作成
②Application.GetOpenFilenameでファイル選択
③メールに添付
というのが大まかな流れです。

OutlookのマクロではApplication.GetOpenFilenameが利用できないのかなと勝手に推測しているのですが、代替コードなどありましたらご教示頂けますと幸いです。
宜しくお願い致します。


VBA で Application オブジェクトはそのマクロを実行しているプログラムを意味します。

そのため、Excel 上でマクロを実行しているときの Application は Excel ですが、Outlook 上では Application は Outlook となり、Outlook の Application オブジェクトには GetOpenFilename というメソッドがないためエラーになります。

Outlook で Excel の Application の機能を呼び出したいときには、以下のようにします。


Set appExcel = CreateObject("Excel.Application")
OpenFileName = appExcel.GetOpenFilename("Microsoft Excel ブック,*.xlsx")

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中