Outlook でフォルダ選択のダイアログを表示するマクロ


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


質問です。
outlookのマクロで、EXCELマクロのgetopenfilenameと同じ機能を実現する方法を御教示ください。やりたいことは、Outlookで添付ファイルを指定したフォルダにセーブして、そのセーブしたファイルへのリンクをメール本文に追加するマクロを作成するときに、セーブ先の「指定したフォルダ」を添付の内容によってその都度ダイアログボックスから指定したいということです。
よろしくお願いします。



Outlook 自体には Excel や Word のようにファイルの保存ダイアログを表示する機能はありません。
しかし、Excel や Word のオブジェクトを使って Office 共通のファイル ダイアログ機能を呼び出すことで、ダイアログを表示することが可能です。
保存先となるフォルダーを取得するようなダイアログを表示する関数は以下のようになります。
この関数を呼び出すと、戻り値に選択されたフォルダーが格納されます。

' ここをトリプルクリックでマクロ全体を選択できます。
Function GetFolder() As String
    Dim appWord As Object ' Word.Application
    Dim dlgFile As FileDialog
    Dim wshShell As Object ' WScript.Shell
    '
    Set appWord = CreateObject("Word.Application")
    Set dlgFile = appWord.FileDialog(Office.msoFileDialogFolderPicker)
    Set wshShell = CreateObject("WScript.Shell")
    ' ダイアログのタイトルを指定します
    dlgFile.Title = "保存先の指定"
    ' ダイアログが開かれた際に最初に表示されるフォルダーを指定します。
    dlgFile.InitialFileName = wshShell.SpecialFolders("MyDocuments") & "\"
    If dlgFile.Show = -1 Then
        GetFolder = dlgFile.SelectedItems(1)
    Else
        GetFolder = ""
    End If
End Function

マクロの登録方法やメニューへの追加について

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中