F0000003_マクロ実行者のデスクトップパスを取得する

マクロ実行者のデスクトップパスを取得する 関数リファレンス

この関数について

ExcelVBA(マクロ)でなにかの処理を自動化したとき、ほとんどの場合、出力先はExcelのシートになるかと思います。しかし、ExcelVBAは単なるExcelの処理自動化の手段にとどまらず、様々な関数を使用することで、高級なプログラミング言語に負けず劣らずなRPAツールを作成することができます。その際、出力先はExcelのシートにとどまらず、例えば特定のWebページからダウンロードしてきたデータをダウンロードフォルダに配置したり、ユーザーに選択させたcsvファイルを加工して結果をデスクトップに保存したり、という処理が多くなります。前置きが長くなりましたが、出力先の指定において、マクロ実行者のデスクトップパスを取得することは非常に重要で、最も(私の)使用頻度の高い関数のひとつです。

使い方 ①引数

この関数に引数はありません。呼び出すだけで使用できます。

使い方 ②返値

マクロ実行者のデスクトップパスを文字列で取得できます。デスクトップパスには「ユーザー名」が含まれるため、会社PCであればデスクトップパスからユーザーと社員を紐づけることもできます。※ただし「Environ」でも同じことができます。

使い方 ③呼び出し方例(サンプルコード)

Public Sub Test_GetDesktopPath()

Dim your_desktop_path As String

your_desktop_path = GetDesktopPath

Debug.Print Mid(your_desktop_path, 10, InStrRev(your_desktop_path, "\") - 10)
Debug.Print Environ("USERNAME")

End Sub

【結果】マクロ実行者のデスクトップパスを返値として取得できます

サンプルコードを実行するとイミディエイトウィンドウにユーザー名が2つ表示されます。業務上でデスクトップパスが必要になるのは、主に、保存先としての用途が多いかと思いますが、私は「Environ」の挙動に(あまり根拠はないが)懐疑的であるためデスクトップパスから社員を特定するという用途にも使っています。サンプルコード実行結果の通り、正しくユーザー名を取得できます。

この関数は関数リファレンスからコピペ可能です!

この記事のタイトルを検索窓へ貼り付けて関数を検索してみましょう。 表示されたコードをクリックするだけでコピー完了! あとは自身で作成したモジュールに貼り付けるだけでこの関数を利用できます。サンプルコードもあり! 関数リファレンストップへ

Comment