・変数名に半角の英数字や日本語(漢字やひらがなカタカナ)を使用できるが、 名前の中に、[!][@][&][$][#][.空白]等の記号文字は使用できません。 ・VBA関数、メソッド、プロパティで使用の文字は使用できません。 ・名前は255文字(半角)以内にする。 ・名前の先頭に数字や記号は使用できない。 |
正式にはPublic Subプロシージャですが正式ですが、普通Publicを省いてSubプロシージャと表示します。 その場合「開発」→「マクロ」で表示のマクロダイアログボックスの一覧に表示されますが、(Excel2003では メニューの「ツール」→「マクロ」→「マクロ」でマクロダイアログボックス表示)表示させたくない場合は、 Private Subプロシージャ名と記述します。 また、ユーザーフォームモジュールのPrivate Subプロシージャのプロシージャもマクロボックスに表示されません。 なお、下記例:(3)[3] Sub 消費税3(aaa As Long)のような、Sub(引数)プロシージャの引数指定のケースも マクロボックスにプロシージャ名が表示されません。 |
Dim gaku As Long '価格 Dim zei As Integer '消費税 ------------------------------------------------------------ Sub 範囲1() msg = "購入品の価格を入力してください。" gaku = Application.InputBox(msg, "価格の指定", , Type:=1) Call 消費税1 MsgBox "価格「" & gaku & "」の税込み価格は【" & gaku + zei & "】です」" End Sub ------------------------------------------------------------ Sub 消費税1() zei = Int(gaku * 0.05) End Sub |
Module1 |
Public gaku As Long '価格 Public zei As Integer '消費税 ------------------------------------------------------------ Sub 範囲2() msg = "購入品の価格を入力してください。" gaku = Application.InputBox(msg, "価格の指定", , Type:=1) Call 消費税2 MsgBox "価格「" & gaku & "」の税込み価格は【" & gaku + zei & "】です」" End Sub |
Module2 |
Sub 消費税2() |
Module1 |
Sub 範囲3() Dim gaku As Long '価格 msg = "購入品の価格を入力してください。" gaku = Application.InputBox(msg, "価格の指定", , Type:=1) Call 消費税3(gaku) End Sub |
Module2 |
Sub 消費税3(aaa As Long) Dim zei As Integer '消費税 zei = Int(aaa * 0.05) MsgBox "価格「" & aaa & "」の税込み価格は【" & aaa + zei & "】です」" End Sub |
Sub 範囲4() Dim gaku As Long '価格 Dim zei As Integer '消費税 msg = "購入品の価格を入力してください。" gaku = Application.InputBox(msg, "価格の指定", , Type:=1) zei = 消費税4(gaku) MsgBox "価格「" & gaku & "」の税込み価格は【" & gaku + zei & "】です」" End Sub ------------------------------------------------------------ Function 消費税4(bbb As Long) As Integer 消費税4 = Int(bbb * 0.05) End Function |
Sub 範囲5() Dim i As Integer For i = 1 To 3 Call 範囲5a Next End Sub ------------------------------------------------------ Sub 範囲5a() Dim tst1 As Integer Static tst2 As Integer tst1 = tst1 + 1 tst2 = tst2 + 1 MsgBox "tst1→" & tst1 & " tst2→" & tst2 End Sub |
Dim tst1 As Integer Dim tst2 As Integer Sub 範囲6() Dim i As Integer For i = 1 To 3 Call 範囲6a Next End Sub ------------------------------------------------------- Sub 範囲6a() tst1 = tst1 + 1 tst2 = tst2 + 1 MsgBox "tst1→" & tst1 & " tst2→" & tst2 End Sub -------------------------------------------------------- Sub 範囲7() End End Sub |
Public myaaa As Integer '整数型(共通の場合) Dim mybbb As Integer '整数型 Dim mybb As Integer,myff As Integer,mygg As String Dim myccc(上限値) As Integer '(配列の場合) Static myddd As Integer '整数型(静的変数) Private myeee As Integer '整数型 |
Public Const myfff As Integer = 567 '共通定数 Const myggg As Integer = 1234 '数値定数の例 Const fff As String = "http://kuiryo.web.fc2.com/photo/" '文字定数の例 |
一般的には使用目的によりデータ型の宣言を変えますが、宣言を忘れても、その場合は万能型の [バリアント型」になりマクロは問題なく実行できます。 しかし、整数型(Integer)の2バイトに対し、バリアント型は16バイト+αとメモリを多く使用するので、できる限り データ型宣言の省略は避けた方が良い。 |
最初の行に"Option Explicit"と記述しておけば宣言していない変数を使用した場合メッセ−ジが出ます。 |