shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】ログインユーザー名やOneDriveのパスを取得するカスタム関数の作成例

Excelで、ログインユーザー名やOneDriveのパスを取得するカスタム関数(ユーザー定義関数)の事例です。このような関数がExcelの標準関数にはないので、VBAのEnviron 関数を使用します。

内容:

アウトプットイメージ

カスタム関数を作成し、Excelの数式でログインユーザー名やOneDriveのパスを取得します。以下は、作成したカスタム関数「関数名:環境変数の取得」の括弧内で”OneDrive”を指定し、OneDriveのパスを取得しています。

この関数で、ログインユーザー名を取得したい場合は、括弧内の値を”USERNAME”とします。

なお、Excelファイルは「Excelマクロ有効ブック(*.xlsm)」などマクロが利用できるファイル等にする必要があります。

ユーザー定義関数(OneDriveのパスの取得例)

Excelのカスタム関数について

Excelのカスタム関数は、ユーザーが独自に定義した関数を作成し、利用するものです。カスタム関数は、VBAでFunction プロシージャを利用して作成します。

support.microsoft.com

Excelで、ログインユーザー名やOneDriveのパスを取得するカスタム関数は、VBAのEnviron 関数を使用し、とても簡単に作成できます。

カスタム関数の作成手順

作成の基本は、前述のMicrosoft サポートのとおりです。

ログインユーザー名やOneDriveのパスを取得するカスタム関数の作成を事例にwindowsのExcelで説明します。

Visual Basic Editorを起動、「挿入」ー「標準モジュール」のクリック

Excelの画面で、Alt キーを押しながら F11 キーを押して Visual Basic Editor を開き、[挿入]、[モジュール] の順にクリックします。 Visual Basic Editor の右側に新しいモジュール ウィンドウが表示されます。

カスタム関数を標準モジュールに記述する

次の内容が、ログインユーザー名やOneDriveのパスを取得するカスタム関数の内容です。

Function 環境変数の取得(環境変数の名前 As String)
    環境変数の取得 = Environ(環境変数の名前)
End Function

このコードをコピー・貼り付けするなどで、下図のように標準モジュールに記述します。

標準モジュール内に記載されています

カスタム関数の記述イメージ

「ファイル」ー「終了してMicrosoft Excelに戻る」で、 Visual Basic Editor を終了します。

カスタム関数の利用方法

通常の数式と同様に利用できます。「関数の挿入」でユーザー定義を選択すると、作成したカスタム関数が確認、利用できます。

作成したユーザー定義関数が表示されています

「関数の挿入」で「ユーザー定義」を選択した画面

作成した関数を選択し、OKをクリックすると、関数の引数を選択できる画面になります。事例では、引数に”OneDrive”と指定しています。

引数に”OneDrive”と指定している

関数の引数の設定画面例

以上で、冒頭のアウトプットイメージのとおり、OneDriveのパスが取得できています。

なお、この数式の注意点としては、数式の引数の変更や、再計算を実施しないと更新されないことです。

 

カスタム関数の補足:VBAのEnviron 関数について

この事例は、Excelの標準関数にはない、VBAのEnviron 関数を利用した事例です。

VBAのEnviron 関数は、指定したWindowsの環境変数を取得できる関数です。

そのため、前述のカスタム関数の引数で、”OneDrive”と指定することで、OneDriveのパスを取得できました。

learn.microsoft.com

もし、ログインユーザー名を取得したい場合は、カスタム関数の引数の値を”USERNAME”に修正すれば、取得できます。

どのような環境変数があるか等については、次の記事を参考にしてください。

shikumika.org

以上、Excelでログインユーザー名やOneDriveのパスを取得するカスタム関数の作成例でした。