Excelで使う「ユーザー定義関数」とは、自分で「関数」を作って使うことが出来るということです。
簡単な数式だとセルに直接入力した方がいいんですが、数式が複雑になってきたり、頻繁に使うものは「ユーザー定義関数」に登録しておくと、めちゃくちゃ便利です。
< スポンサーリンク >
ユーザー定義関数の作り方
[開発]タブ>[コードの表示]をクリックします。
左側のプロジェクトエクスプローラーの今開いているのブックを右クリックし、[挿入]>[標準モジュール]をクリックします。
今回は、『渡されてきたセルの値の先頭に「ユーザー定義関数:」という文字をつけて返す』という自作関数にしてみます。
下記のように書いて保存します。
1行目:「User_Func(Rng As Range)」の「Rng」が渡されてきたセル
2行目:「User_Func」が返される値
Function User_Func(Rng As Range) As Variant
User_Func = "ユーザー定義関数:" & Rng.Value
End Function
「A1」セルに文字を入力しておき、「B1」セルにユーザー定義関数の「User_Func」を使ってみます。
「B1」セルに
=User_Func(A1)
と入力します。
「B2」セルにユーザー定義関数の「User_Func」の結果が表示されました。
どのブックからも使えるようにアドインに登録する
ユーザー定義関数を作ったら、作ったブックでしか使えません。
どのブックからも使えるようにするには、アドインに登録しておくと便利です。
以下は、Excel2021での操作です。
[ファイル]をクリックします。
[このPC]をダブルクリックします。
「ファイルの種類」を「Excel アドイン(*.xlam)」を選択し、「ファイル名」を入力し、[OK]をクリックします。
※ファイル名はユーザー定義関数と同じにするとわかりやすいです。
[ファイル]をクリックします。
[その他]>[オプション]をクリックします。
[アドイン]をクリックし、「管理(A):Excelアドイン」の[設定]をクリックします。
保存したファイル名にチェックを入れ、[OK]をクリックします。
これで、どのブックからもユーザー定義関数が使えるようになりました。
ユーザー定義関数でできないこと(注意点)
ユーザー定義関数では、VBAが使えるので何でもできちゃう気がしますよね。
しかし、セル内の数式から呼び出されるユーザー定義関数では次のことはできません。
- スプレッドシートでのセルの挿入、削除、または書式の設定。
- 別のセルの値の変更。
- ブックでのシートの移動、名前の変更、削除、または追加。
- 計算方法や画面表示など、環境オプションの変更。
- ブックへの名前の追加。
- プロパティの設定およびほとんどのメソッドの実行。
こんな記事も書いています