FileSystemObjectのGetSpecialFolderメソッドは指定された特殊なフォルダオブジェクトを返します。
※ファイルシステムオブジェクト(FileSystemObject)についてはこちら
GetSpecialFolderメソッドの構文
構文
ファイルシステムオブジェクト.GetSpecialFolder(フォルダパス(Folderspec))
GetSpecialFolderメソッドの構成要素と引数
構成要素と引数
要素/引数 | 必須/任意 | 説明 |
---|---|---|
ファイルシステムオブジェクト (FSO) |
必須 | ファイルシステムオブジェクトを指定します。 |
フォルダ種別 (Folderspec) |
必須 | 特殊フォルダの種別を以下の値または定数より指定します。 [値:定数] 0:WindowsFolder 1:SystemFolder 2:TemporaryFolder |
フォルダ種別(Folderspec)の設定値
定数 | 値 | 説明 |
---|---|---|
WindowsFolder | 0 | WindowsOSによりインストールされたファイルが入っているWindowsフォルダ |
SystemFolder | 1 | ライブラリ、フォント、デバイスドライバーが入っているSystemフォルダ |
TemporaryFolder | 2 | 一時ファイルが入っているTempフォルダ |
GetSpecialFolderメソッドをつかったサンプルマクロ
VBAサンプルコード
Option Explicit
Sub ファイルシステムオブジェクト_GetSpecialFolderメソッド()
'ファイルシステムオブジェクトを使うため準備
'①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject
'GetSpecialFolderメソッドの使用例(値で指定)
Debug.Print "①"; FSO.GetSpecialFolder(0) '定数ではWindowsFolder
Debug.Print "②"; FSO.GetSpecialFolder(1) '定数ではSystemFolder
Debug.Print "③"; FSO.GetSpecialFolder(2) '定数ではTemporaryFolder
'GetSpecialFolderメソッドの使用例(定数で指定)
Debug.Print "④"; FSO.GetSpecialFolder(WindowsFolder) '値では0
Debug.Print "⑤"; FSO.GetSpecialFolder(SystemFolder) '値では1
Debug.Print "⑥"; FSO.GetSpecialFolder(TemporaryFolder) '値では2
End Sub
11行目・16行目
GetSpecialFolderメソッドを利用してWindowsFolderのパスを表示します。フォルダの種別の指定には値(0)と定数(WindowsFolder)のそれぞれでVBAコードを書いています。
12行目・17行目
GetSpecialFolderメソッドを利用してSystemFolderのパスを表示します。フォルダの種別の指定には値(1)と定数(SystemFolder)のそれぞれでVBAコードを書いています。
13行目・18行目
GetSpecialFolderメソッドを利用してTemporaryFolderのパスを表示します。フォルダの種別の指定には値(2)と定数(TemporaryFolder)のそれぞれでVBAコードを書いています。
実行結果
①C:\Windows
②C:\Windows\System32
③C:\Users\ユーザー名\AppData\Local\Temp
④C:\Windows
⑤C:\Windows\System32
⑥C:\Users\ユーザー名\AppData\Local\Temp
①と④、②と⑤、③と⑥はフォルダ種別の指定方法が異なるだけなので同じ結果になります。

特殊なフォルダを取得するときに使えるメソッドだよ。
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験
コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。
コメント