関数を作成する際に、プログラムで利用できるさまざまな関数が用意されています。
また、Excel上で利用できる関数もプログラムの中で利用することができます。
下記と同じプログラムを記載し、関数名を少し変えて動くかどうかを確認してみましょう。
・「Len(文字データ)」は文字データの文字数を返す関数です。
・「Vlookup」はExcelのワークシート関数。利用する場合には、Application.関数名として利用可能(利用できない関数もあり)です。利用の際には引数に入れるデータについて考慮が必要な場合があります。
・今回の引数はRangeデータ形式です。Excelシートのセル(もしくは複数セル)を引数としています。Rangeというデータ形式はExcel独特のデータ形式です。
【IF関数の処理】
Excelの関数でもプログラム的な動きをするものがあります。
左記のIF関数は条件が真(True)の場合、偽(False)の場合で処理を変更することが可能です。ただし、複雑なものを記述しようとすると複雑になり、何の処理をしているのかが混乱し、わかりにくくなってしまいます。
ユーザー関数やマクロ等ではこれと同じようなことをプログラムを記述して実現します。ただし、より複雑な処理をわかりやすく記載することができます。
【複雑なユーザー関数(条件分岐処理)】
より複雑なユーザー関数を作成するためには少しプログラム的な記述を行う必要があります。
その際の基本となるのは、
条件分岐処理(特定の条件毎に違う処理を行う)
反復処理(複数回、反復して処理を行う)
になります。
まず、条件分岐処理ですが、例えば、ある数字が奇数であれば、奇数、偶数であれば偶数という文字を返す関数を作成します。
If 「条件」 then
「処理を記載」
Else
「処理を記載」
End IF
【複雑なユーザー関数(反復処理)】
反復処理(For Each x in y)
例えば、引数としてある範囲のデータを与えて、各データを2乗して、すべて足した答えを返します。
処理順序として
aがセル”E3”の場合
kotae=0
0+28の2乗=784
aがセル”E4”の場合
kotae=784
784+58の2乗=4,148
・
・
・
aがセル”E14”の場合
kotae=22,847
22,847+38の2乗=24,291
ここまで反復して、処理が終了します。