Excel VBA入門シリーズの第4日目です。今日は関数の活用とカスタム関数の作成について学びます。関数を使うことで、より高度な計算や処理が可能になります。さらに、自分自身でカスタム関数を作成することで、独自の処理や計算を実現できます。
・Excelの組み込み関数だけでは必要な計算や処理ができない。
・複雑な計算や特定の処理を自動化したいな~。
・カスタム関数の作成方法や応用例について学びたいけど難しい。
【このブログの対象者】
・Excelの組み込み関数を一通り使いこなせる初級者の方。
・より高度な計算や処理を行いたい中級者の方。
・カスタム関数の作成に興味のある方。
Excelの組み込み関数の構文
【関数の活用と構文】
関数はExcelの標準的な機能であり、以下のような構文で使用します。
結果 = 関数名(引数1, 引数2, ...)
SUM関数を活用した組み込み関数の具体例
SUM関数はセル範囲の値の合計を計算するための関数です。
今回は下記のプログラムを使用して、CalculateTotal()という関数を作成します。
この関数では、C2~C9のセルの足し合わせを行い、MsgBoxに合計値を表示するプログラムになります。
Sub CalculateTotal()
Dim total As Double
' C2からC9までのセル範囲の合計を計算
total = Application.WorksheetFunction.Sum(Range("C2:C9"))
MsgBox "合計値: " & total
End Sub
実際にプログラムを実行すると、このように、MsgBoxに53000と足しあわされた数字が表示されるのがわかります。このように、自由に関数を作ることができます。今回は、CalculateTotal()という関数で名づけましたが、名前はなんでもOKです。
カスタム関数を使ったオリジナルの関数
カスタム関数を作成することで、自分自身の特定の処理や計算を関数として利用できます。以下は、簡単なカスタム関数の作成例です。MultiplyByTwoという関数を作成します。こちらの関数は値を2倍にする関数を作成します。
今回は、C2~C9を入力セルとして、D2~D9に出力セルを設定します。
先ほど作成(上の3行)で作成した関数(MultiplyByTwo)を使って、これらのセルに対して、2倍の値を出力します。
Function MultiplyByTwo(ByVal value As Double) As Double
MultiplyByTwo = value * 2
End Function
Sub MultiplyRangeByTwo()
Dim rng As Range
Dim cell As Range
' 元のデータ範囲と出力範囲を指定
Set rng = Range("C2:C9")
Set outputRange = Range("D2:D9")
' カスタム関数を使ってデータを2倍にして出力
For Each cell In rng
outputRange.Cells(cell.Row - 1, 1).value = MultiplyByTwo(cell.value)
Next cell
End Sub
この例では、与えられた数値を2倍にして返すカスタム関数「MultiplyByTwo」を作成しています。
マクロを実行すると、右の図のようになり、セルの数値を2倍にした値が表示されるようなVBAを作成することができました。
まとめ
今日は関数の活用とカスタム関数の作成について学びました。組み込み関数を使うことで便利な計算や処理を行えますし、カスタム関数を作成することで独自の処理を実現できます。これらの機能を組み合わせて利用することで、より高度な操作や自動化が可能になります。関数はExcel VBAの強力なツールであり、データの処理や分析において重要な役割を果たします
次回以降も、さらに高度なExcel VBAの機能や応用例を学んでいきますので、お楽しみに!もしExcel VBAの更なる学習を望むのであれば、Excelの公式ドキュメントや参考書籍もご検討ください。