このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【Shell】特殊フォルダパス一覧(VBAからも使える)

ドキュメントやデスクトップといった特殊フォルダは、ユーザーによってパスが異なります。
例えば、ドキュメントのパスは「C:\Users\ユーザ名\Documents」となる。

そのため、特殊フォルダにアクセスするプログラムを書く時には、誰でも使えるように少し工夫をする必要があります。
具体的にはShellという機能を使います。

今回はこのShellを使って特殊フォルダのパスを取得する方法を紹介します。

また、各特殊フォルダにアクセスするための文字列を一覧表でご紹介します。

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

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
特殊フォルダの文字列一覧表

特殊フォルダの文字列一覧表はこのように使います。

よく使う特殊フォルダはマークアップしたので参考にしてみてください。

VBAが難しいと感じたら
VBAのプロに代わりに作ってもらうのはいかがでしょうか?
ココナラでVBAの作成請負を受け付けています。お気軽にご相談ください。

VBA

Posted by やろまい