VBAの機能で関数を作成できる
VBAを使ってVBAの中や、Excelのシートの中で使える関数を作成することができます。
あらかじめ関数を作っておくと複雑な処理も簡単なコードで実行できるようになります。
今回はあらかじめ作っておくことで便利になるユーザー定義関数についてお伝えします。
ユーザー定義関数の作り方
ユーザー定義関数は標準モジュール内にFunctionプロシージャとして作成することで使用できるようになります。
FunctionとSubの違いは返り値があるかどうかの違いです。(詳細をわかっていなくても使用できるのでややこしければ気にせずに作成してみましょう。)
Functionプロシージャの形式はおおよそこのような形になります。
Function 関数名(a As Variant)
~
~
関数名 = ~~
End Function
~
~
関数名 = ~~
End Function
まずFunction ~で関数名を決めます。
その後必要な処理を記入して、最後に使いたい関数がこういう結果を表すようにしてくださいと記載することで関数を使用できるようになります。
ユーザー定義関数の使用方法
私が今まであまりたくさんユーザー定義関数を考えたわけではありませんが、仕事の都合上、氏名か姓のどちらかが表示されているセルから姓だけを抽出したいことがあり、ユーザー定義関数を作ったことがあります。
(姓と名の間は半角の空白が入っているとします。)
その際は以下のVBAコードで関数を定めました。
Function myouji(a As Variant)
If InStr(a, ” “) <> 0 Then
myouji = Left(a, InStr(a, ” “) – 1)
Else
myouji = a
End If
End Function
If InStr(a, ” “) <> 0 Then
myouji = Left(a, InStr(a, ” “) – 1)
Else
myouji = a
End If
End Function
VBAの条件分岐を関数に使用できるのが大きな特徴です。
空白があれば空白の前の文字を取り出し、空白がなければ全体を表示する関数です。
VBAのコードの中でも使用できますし、他のワークシート関数と同じようにシートの中でも使用できます。
以下の画像はA列に人の名前(氏名もしくは姓のみ)、B列には「=myouji(A~)」の関数を入力しています。
ユーザー定義関数をシートでも使用できるようにした例です。
おすすめ書籍 (広告)
Amazon 楽天 Yahoo検索 |
---|
Amazon 価格:¥2,420円 |
楽天Kobo電子書籍ストア 価格:2,574円 |
楽天Kobo電子書籍ストア 価格:2,574円 |
bookfanプレミアム 価格:2,420円 |
bookfanプレミアム 価格:2,200円 |
コメント