フォルダを開くマクロをいくつか紹介したことがあります。
スタートアップフォルダを開くマクロ
ユーザーテンプレートフォルダを開くマクロ
(「ノーマルテンプレートを保存する方法」の記事の中)
以下のようにいずれの場合にも、DefaultFilePath プロパティを用いてフォルダを特定しています。
Sub スタートアップフォルダを開く()
Dim myPath As String
myPath = Options.DefaultFilePath(wdStartupPath)
Shell "C:\Windows\explorer.exe " & myPath, vbNormalFocus
End Sub
Sub ユーザーテンプレートフォルダを開く()
Dim myPath As String
myPath = Options.DefaultFilePath(wdUserTemplatesPath)
Shell "C:\Windows\explorer.exe " & myPath, vbNormalFocus
End Sub
では、文書を保存する既定のフォルダとなっている「マイドキュメント」フォルダはどうやって開くのでしょうか?
2つ方法を紹介します。
▼このマクロでできること
文書の既定のフォルダを開きます。
▼マクロ1の解説
DefaultFilePath プロパティには、WdDefaultFilePath として定義される引数を設定できます。
で、以下のページで引数を確認すると、いかにも「マイドキュメント」フォルダを開きそうな「wdDocumentsPath」が見つかります。
WdDefaultFilePath 一覧
ところが、この wdDocumentsPath は、最後に開いた(または最後に保存した)際のフォルダを示しており、「マイドキュメント」フォルダを示しているわけではないのです!
よって、Options.DefaultFilePath(wdDocumentsPath)からの値は、「マイドキュメント」フォルダのパスになりません。
そこで、ダイアログの値から既定の文書のフォルダパス(「マイドキュメントフォルダ」のパス)を取得する方法をご紹介します。
Dialogs(wdDialogToolsOptionsFileLocations).Setting
です。
オプションダイアログボックスで表示されるダイアログボックスです。
この値を取得します。
プロパティにSettingをつけると、文書のフォルダのパスを取得できます。
詳細は、以下の記事をご覧ください。
How to retrieve Word's default Documents path or Pictures path setting
▼マクロ1
Sub 文書フォルダを開く()
Dim myPath As String
myPath = Dialogs(wdDialogToolsOptionsFileLocations).Setting
Shell "C:\Windows\explorer.exe " & myPath, vbNormalFocus
End Sub
▼マクロ2の解説
上記のマクロ1と若干意味合いの違うマクロです。
Windows Script Host (WSH)
を使います。
これは、WindowsOSの既定の文書フォルダを開きます。
▼マクロ2
Sub 文書フォルダを開く2()
Dim myPath As String
Dim WSH As Variant
Set WSH = CreateObject("Wscript.Shell")
myPath = WSH.SpecialFolders("MyDocuments")
Shell "C:\Windows\explorer.exe " & myPath, vbNormalFocus
Set WSH = Nothing
End Sub
▼注意
Wordで既定の文書のフォルダは、デフォルトでは「マイドキュメント」フォルダになっています。
Windowsの既定の文書のフォルダも、デフォルトでは「マイドキュメント」フォルダになっています。
これを別のフォルダに設定した場合には、マクロ1とマクロ2とで違う結果になってしまいます。ご注意ください。
例えば、Wordで文書フォルダを変更してDropboxにした場合には、マクロ1を実行すると「Dropbox」フォルダが開き、マクロ2を実行すると「マイドキュメント」フォルダが開きます。
▼参考記事
How to retrieve Word's default Documents path or Pictures path setting
↧
【Wordマクロ】マイドキュメントフォルダを開く
↧