subではなく、Function()を使ったマクロをご紹介いたします。もっとも簡単な例を紹介します。計算式で帰ってくるものは、一つであることを認識してください。
構文
subマクロの中で、計算式に渡す数字を Functionで引き渡し、結果をsubマクロに戻す内容となってます。
変数の設定
私は、マクロが動くことが重要であったので、変数の形の定義を今までしてきませんでしたが、この場合には、変数の定義が必要でした。この説明はするつもりはなかったのですが、残念です。
Dim の次に変数を入れて、As を挟んで、変数の種類を入れます。
Dim 変数 As データの型(種類)
データの型(種類)
Integer | 整数型 | -32,768 ~ 32,767 |
Long | 長整数型 | -2,147,483,648 ~ 2,147,483,647 |
Single | 単精度浮動小数点数型 | -3.402823E38 ~ -1.401298E-45(負の値) 1.401298E-45 ~ 3.402823E38(正の値) |
Double | 倍精度浮動小数点数型 | -1.79769313486232E308 ~ -4.94065645841247E-324(負の値) 4.94065645841247E-324 ~ 1.79769313486232E308(正の値) |
String | 文字列型 | 最大約20億文字まで |
Date | 日付型 | 西暦100 年1月1日~西暦9999年12月31日までの日付と時刻 |
Object | オブジェクト型 | オブジェクト |
例
Sub 数字を2倍にして返す() 'ファンクションを使ったマクロ 'A1に入れた数字を、B2に2倍にして返す。 '元の数字変数を、数字であると定義 Dim 元の数字 As Integer 元の数字 = Range("A1").Value 結果 = 計算(元の数字) Range("B1").Value = 結果 End Sub Function 計算(元の数字 As Integer) 'ここで、計算式を定義する。 計算 = 元の数字 * 2 End Function
上記の説明
Dimで「元の数字」は、整数と定義しました。
A1セルに入っている数字を、変数「元の数字」に入れました。
計算という Functionに飛んでおります。この時に変数「元の数字」をいっしょに持って行ってます。
Functionでは、元の数字を2倍して、変数「計算()」に入れて、返します。
変数「計算()」は、変数「結果」に引継ぎ、
B1に変数「結果」の内容を入れて、終了です。
コメント