01-VBA

Excel VBA の イベント編(Part.2)Functionプロシージャ | 現役エンジニア&プログラミングスクール講師

目標

Functionプロシージャを理解して利用できる

Functionプロシージャの概要と利用方法

Functionプロシージャの概要

Functionプロシージャとは

Functionプロシージャは他のプロシージャに呼び出されて実行されるプログラムです。Subプロシージャもサブルーチンとして呼び出して実行できますが、Functionプロシージャの特徴は戻り値(処理が動いた後に生成された値を返す機能)を利用できることです。FunctionプロシージャはVBAプログラムとして動かす以外にワークシート関数としても利用ができます。

「Functionプロシージャ」は「フォームコントロールボタン」への「マクロの登録」はできません。

Functionプロシージャの利用方法

Functionプロシージャの構文

Functionプロシージャの特徴は戻り値が利用できることです。戻り値はFunctionプロシージャの「関数名」を関数内に設置することで利用できます。

Function 関数名(引数1,引数2,引数3…)
処理
処理
処理
関数名 = 値(処理の結果)
End Function

SubプロシージャFunctionプロシージャ
マクロの登録×
他プロシージャからの呼び出し
引数の利用
戻り値の利用×
ワークシート関数として利用×

Functionプロシージャの作成(サンプルプロシージャ)

Option Explicit
'--------------------------------------------------------------------------------------------
Sub CallFunction()

    Dim bottom As Integer
    Dim height As Integer
    
    bottom = InputBox("底辺の長さを入力してください", "三角形の面積を求めます")
    height = InputBox("高さを入力してください", "三角形の面積を求めます")
    
    MsgBox areaOfTriangle(bottom, height)

End Sub
'--------------------------------------------------------------------------------------------
Function areaOfTriangle(ByVal bottom As Integer, ByVal height As Integer)

    areaOfTriangle = bottom * height / 2

End Function
'--------------------------------------------------------------------------------------------

実行結果

CallFunctionプロシージャを動かすと次のように実行されます。

ユーザー定義関数としてのFunctionプロシージャ呼び出し

ユーザー定義関数としての呼び出し方法と実行結果

Functionプロシージャの記述を完了するとワークシート関数のひとつとしてユーザー定義関数で呼び出すことができます。以下は呼び出し方と実行結果です。

今回は以上となります。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

ExcelVBAの変数 (Part.2) オブジェクト変数編 | 現役エンジニア&プログラミングスクール講師

2022年9月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAのActiveCellプロパティ | 現役エンジニア&プログラミングスクール講師

2022年8月15日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

初めてのExcelVBA:プロシージャの記述と実行 | 現役エンジニア&プログラミングスクール講師

2022年8月7日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

演算子|Excel VBA (Part.5)【論理演算子】| 現役エンジニア&プログラミングスクール講師

2022年10月29日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の イベント編(Part.4)イベントプロシージャ | 現役エンジニア&プログラミングスクール講師

2022年12月31日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の「デバッグ」(Part.2)「ステップモード」「ブレークポイント」| 現役エンジニア&プログラミングスクール講師

2022年12月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site