パソコンの使用者毎に「デスクトップ」や「ドキュメント」などのフォルダは異なります。これら特殊フォルダのパスを取得する方法について紹介します。
WshShellクラスのSpecialFoldersで解決する
WshShellクラスのSpecialFoldersを利用することで特殊フォルダのパスを取得することができます。SpecialFoldersに指定する引数の一部と説明を以下に示します。
文字列 | 内容 |
Desktop | ログインユーザーのデスクトップ |
MyDocuments | ログインユーザーのドキュメント |
Favorites | ログインユーザーのお気に入り |
Fonts | フォント |
Programs | ログインユーザーのプログラムメニュー |
Recent | ログインユーザーの最近使ったファイル |
SendTo | ログインユーザーの送る |
StartMenu | ログインユーザーのスタートメニュー |
Startup | ログインユーザーのスタートアップ |
Templates | ログインユーザーの新規作成のテンプレート |
SpecialFoldersの引数一覧は公式を参照してください。
サンプルプログラム
サンプルプログラムを動かすには参照設定が必要です。「Windows Script Host Object Model」を事前に選択しておいてください。
Option Explicit
Sub sample()
Dim sh As New IWshRuntimeLibrary.WshShell
Debug.Print "Desktop = " & sh.SpecialFolders("Desktop")
Debug.Print "MyDocuments = " & sh.SpecialFolders("MyDocuments")
Debug.Print "Favorites = " & sh.SpecialFolders("Favorites")
Debug.Print "Fonts = " & sh.SpecialFolders("Fonts")
Debug.Print "Programs = " & sh.SpecialFolders("Programs")
Debug.Print "Recent = " & sh.SpecialFolders("Recent")
Debug.Print "SendTo = " & sh.SpecialFolders("SendTo")
Debug.Print "StartMenu = " & sh.SpecialFolders("StartMenu")
Debug.Print "Startup = " & sh.SpecialFolders("Startup")
Debug.Print "Templates = " & sh.SpecialFolders("Templates")
End Sub