VBA デスクトップのルートを取得するFunction

あれ、どうやってVBAでデスクトップのルートを取得するんだっけ、とネットを調べたらありました。

デスクトップフォルダは、使用者の名前がはいり、一定ではありません。VBAからWSHを介し、その値(文字列)をうけとるという方法のようです。汎用性が高そうなので、関数(ファンクションプロシージャ)として使えるよう、少し手を入れてみました。

Sub desktopRoot()
'デスクトップルート取得
Dim root As String
MsgBox F_desktopRoot 'Function F_desktopRootにジャンプし、戻り値をメッセージボックスに表示
root = F_desktopRoot 'Function F_desktopRootにジャンプし、戻り値を変数rootに代入
Debug.Print root 'イミディエイト・ウィンドウにroot値を表示

End Sub


Function F_desktopRoot() As String
'デスクトップルート取得関数
Dim WSH As Variant
Set WSH = CreateObject("Wscript.Shell")
F_desktopRoot = WSH.SpecialFolders("Desktop")
Set WSH = Nothing
End Function