【EXCEL VBA】値を返すプロシージャを作成する方法

訪問して頂きありがとうございます。まさふくろーです。

この記事では使用例を使って、値を返すプロシージャを作成する方法をご紹介します。

使用例

  1. 「値1」「値2」に数値を入力。「演算子」を選択。

  2. 「計算する」ボタンをクリック。
  3. 「計算結果」に値を設定。

書式

値を返すプロシージャを作成するには、Functionステートメントを使ってプロシージャを宣言します。

Function 関数名(引数1 As データ型[,引数2 As データ型,・・・]) As データ型

    関数名に関係する処理を記述

    関数名 = 戻り値

End Function

プログラムでは、文字や数値など様々な種類のデータを扱います。このデータの種類をデータ型と言います。

 

例えば、プログラムでは、文字データはString型、数値データはInteger型として扱います。

 

データ型の主な種類は以下のものがあります。

データ型 使用メモリ 変数に格納できるデータの種類
Byte バイト型 1バイト 0~255の整数
Boolean
ブーリアン型 2バイト TrueまたはFalse
Integer 整数型 2バイト -32,768~32,767の整数
Long 長整数型 4バイト -2,147,483,648~2,147,483,647の整数
Single 単精度
浮動小数点型
4バイト 負の値:
-3.402823×10^38~-1.401298×10^-45
正の値:
1.401298×10^-45~3.402823×10^38
Double
倍精度
浮動小数点型
8バイト 負の値:
-1.79769313486231×10^308~
-4.94065645841247×10^-324
正の値:
4.94065645841247×10^-324~
1.79769313486232×10^308
Currency 通貨型 8バイト 整数15桁、少数4桁の数値
Date 日付型 8バイト 西暦100年1月1日~西暦9999年12月31日の日付と時刻
String 文字列型 プラットフォームに依存 文字列
Object
オブジェクト型 4バイト すべてのオブジェクトを参照する場合はObject、セルやワークシートなど固有のオブジェクトを参照する場合はRangeやWorksheetをデータ型として使用する。

ボタンの作成

「開発」タブの確認

リボンに「開発」タブが表示されているかの確認をします。

 

 

「開発」タブが表示されていない場合は、「開発タブの表示」をご覧ください。

ボタンの作成

①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。

シート上にカーソルを移動し、ポインターを「+」の状態にします。

 

左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。

 

「マクロの登録」画面が表示されます。

 

①「マクロ名」を変更⇒②「新規作成」ボタンをクリックします。

 

ボタンの名前を変更する

エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「」マークに切り替わります。

 

右クリックでショートカットメニューを表示し、「テキストの編集」を選択します。

 

ボタンの名前を変更します。

 

サンプルプログラム

VBAコードの入力(値を返すプロシージャの作成)

VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。

1 計算結果を返す関数を宣言。戻り値は、整数型。
第1引数:「calKbn」は、演算子の区分
第2引数:「x」は、値1の入力値
第3引数:「y」は、値2の入力値
3 演算子の区分が、
4 「1」だった場合、
5 足し算した結果を関数:RetCalcに設定
6 「2」だった場合、
7 引き算した結果を関数:RetCalcに設定
8 「3」だった場合、
9 掛け算した結果を関数:RetCalcに設定
10 「4」だった場合、
11 割り算して四捨五入した結果を関数:RetCalcに設定

VBAコードの入力(計算するボタンをクリックした場合の処理)

VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。

1 「計算する」ボタンがクリックされたときに動くマクロ
3 A2セル(値1)用の変数を用意
4 B2セル(値2)用の変数を用意
5 C3セル(演算子)用の変数を用意
6 Functionプロシージャ:RetCalcの戻り値用の変数を用意
8 A2セル(値1)の値を取得し、変数:value1に格納
9 B2セル(値2)の値を取得し、変数:value2に格納
10 C3セル(演算子)の値を取得し、1文字目のみを変数:calKbnに格納
12 Functionプロシージャ:RetCalcを呼び出し、戻り値を変数:resultに格納 
14 12で格納した変数:resultの値をB11セル(計算結果)に設定する

VBAコードの保存

「ファイル」タブをクリックします。

 

 

「名前を付けて保存」を選択し、ファイル保存画面を起動します。

 

 

①ファイル名を入力⇒②「Excel マクロ有効ブック(*.xlsm)」を選択⇒③「保存」ボタンをクリックします。

 

最後まで読んでいただき、ありがとうございました!