訪問して頂きありがとうございます。まさふくろーです。
この記事では使用例を使って、値を返すプロシージャを作成する方法をご紹介します。
目次
使用例
「値1」「値2」に数値を入力。「演算子」を選択。
書式
値を返すプロシージャを作成するには、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 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Function RetCalc(calKbn As String, x As Integer, y As Integer) As Integer Select Case calKbn Case "1" RetCalc = x + y Case "2" RetCalc = x - y Case "3" RetCalc = x * y Case "4" RetCalc = Round(x / y) End Select End Function |
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub 計算するボタン_Click() Dim value1 As Integer Dim value2 As Integer Dim calKbn As String Dim result As Integer value1 = Range("A2").Value value2 = Range("B2").Value calKbn = Mid(Range("C2").Value, 1, 1) result = RetCalc(calKbn, value1, value2) Range("B11").Value = result End Sub |
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)」を選択⇒③「保存」ボタンをクリックします。
最後まで読んでいただき、ありがとうございました!