【Shell】特殊フォルダパス一覧(VBAからも使える)
ドキュメントやデスクトップといった特殊フォルダは、ユーザーによってパスが異なります。
例えば、ドキュメントのパスは「C:\Users\ユーザ名\Documents」となる。
そのため、特殊フォルダにアクセスするプログラムを書く時には、誰でも使えるように少し工夫をする必要があります。
具体的にはShellという機能を使います。
今回はこのShellを使って特殊フォルダのパスを取得する方法を紹介します。
また、各特殊フォルダにアクセスするための文字列を一覧表でご紹介します。
Shellを使って特殊フォルダのパスを取得する方法
Sub GetDocumentFolderPath()
'Windows Script Hostのオブジェクトを取得
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
Debug.Print wsh.SpecialFolders("MyDocuments")
End Sub
サンプルとして、ドキュメントフォルダのパスを取得するコードを紹介します。
最初にCreateObjectでShellを使えるようにします。CreateObject(“WScript.Shell")の部分
あとは、作成したオブジェクトに対してSpecialFolders(“特殊フォルダの文字列")とすることでフォルダパスを得ることができます。
このサンプルコードをコピペして、特殊フォルダの文字列の箇所を変更して活用してみてください。
特殊フォルダの文字列は、この後に一覧表を記載します。
特殊フォルダの文字列一覧表
文字列 | 説明 | 得られるパス |
---|---|---|
AllUsersDesktop | すべてのユーザに共通のデスクトップ | C:\Users\Public\Desktop |
AllUsersStartMenu | すべてのユーザに共通のプログラムメニュー | C:\ProgramData\Microsoft\Windows\Start Menu |
AllUsersPrograms | すべてのユーザに共通の全てのプログラム | C:\ProgramData\Microsoft\Windows\Start Menu\Programs |
AllUsersStartup | すべてのユーザに共通のスタートアップ | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp |
AppData | ユーザのアプリ用データ | C:\Users\ユーザ名\AppData\Roaming |
PrintHood | プリンタフォルダ | C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
Templates | 新規作成のテンプレート | C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Templates |
Fonts | インストールされているフォント | C:\Windows\Fonts |
NetHood | ネットワークに表示される共有フォルダの情報 | C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
Desktop | デスクトップ | C:\Users\ユーザ名\Desktop |
StartMenu | スタートメニュー | C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu |
SendTo | 送るメニュー | C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\SendTo |
Recent | 最近使ったファイル | C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Recent |
Startup | ユーザのスタートアップ | C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup |
Favorites | お気に入り | C:\Users\ユーザ名\Favorites |
MyDocuments | ドキュメント | C:\Users\ユーザ名\Documents |
Programs | ユーザのプログラムメニュー | C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs |
特殊フォルダの文字列一覧表はこのように使います。
よく使う特殊フォルダはマークアップしたので参考にしてみてください。