健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ 命令の種類
一つの命令に全てを入れてしまうと、後で訳が判らなくなりますよね。
見通しが悪くなります。
あと、同じような処理が何度も出てくるようであれば、切り分けて別のプログラムに処理させたほうが、修正時なども一箇所を見るだけで良く、効率的になってきます。
命令にはいくつかの種類があります。
基本となるのはSubプロシージャ。
メインとなるものであってもサブ、本家Visual BasicではSub main()などとします。
VBAでは、特にメインというものはなく、Excelが既に動いている状態ですので、イベント待ちということになります。
Sub test()
・・・
End Sub
途中でExit Subを入れることで、任意の場所で強制終了させることができます。
関数はFunctionプロシージャ。
戻り値を持たせることにより、部分的な計算などを実現します。
Function test(a as Integer) as Integer
・・・
End Function
途中で Exit Function と設定しておけば、任意のタイミングで呼び出し元へ戻ります。
戻り値は、関数の途中で
test=1
などとします。(testが関数名)
関数は、Excelのシートからも呼び出せますので、標準で搭載されていない複雑な計算や、普通とは違った使い方もできます。
変わった使い方(参考) ⇒レジストリ使用サンプル
途中でメッセージボックスやインプットボックス、フォームなども表示させることができます。
Classファイルの活用やAPIの呼び出しなどもありますが、そこは後日手があいたらということで。
どこから呼び出されるのか
作成したプログラムがどこから呼び出されるのか明確である場合、プロシージャの先頭で属性を設定できます。
Private Sub(Function) ・・・
そのプログラムが書かれたモジュール内のプログラムから呼び出すことができます。
Public Sub(Function) ・・・
他のモジュールからも呼び出されることが可能です。
Friend Sub(Function) ・・・
クラスモジュールから使用する、一般公開しない特別なモード
Static Sub(Function) ・・・
プロシージャ内のローカル変数が、次にプロシージャが呼び出されるまで保持されます。
指定しない場合は、Publicとなります。
引数のいろいろ
Sub test(intA as Integer , strA as String)
上の場合、intAが第一引数、strBが第二引数
呼び出す場合には、
test(1,"テスト")
などとします。
引数には、「値渡し」と「参照渡し」があります。
Sub test(ByVal intA as Integer , ByRef intB as Integer)
ByVal が値渡し。そのものを渡します。
ByRef が参照渡し。参照(アドレス)を渡します。
渡した値を書き換えられては困るような場合であれば値渡し、逆に書き換えられることを期待する場合などは参照渡しが良いです。
文字列を渡すのに速度優先であれば参照渡し。
引数に初期値を設定しておくこともできます。
Sub test(intA as Integer , Optional intB as Integer = 1)
Optionalと付けて、初期値を設定しておきます。
この場合、呼び出し時に引数を省略すると、「1」を入れたこととなります。
引数に予め候補を設定しておくには
Enumを使います。
間違いにくい&判りやすいです。
※登録順には表示されません。(a-z)
関数の戻り値の型
Function fnc99(intA as Integer , intB as Integer) as Integer
関数の最後のIntegerは、戻り値の型を指定しています。
戻り値は、関数の途中で
fnc99=81
などと指定してやれば良いです。
月~土曜日(10:00am~5:00pm) 日祝定休日
・ 当サイトにて随時(24時間)受付しております。
・ お電話、ファックス、メールでのご注文も随時受付しております。
・ 午後3時までのご注文分につきましては即日発送いたします。
※日曜、祝日のご注文分につきましては翌営業日発送となります。
なお、在庫の状況によって発送が遅れる場合もございますのでご了承願います。
~当サイトからのご注文~
※ 取り扱い商品一覧画面の画像をクリックすることにより各商品の詳しい説明画面に移ります。
~配達日及び配達時間帯のご指定~
・お届けの日及びお届け時間帯につきましては、ご都合の良い日時をお選びいただけます。
[午前中] [14~16時] [16~18時] [18~20時] [19~21時]
~配送料~
・1回のお買い上げ金額が5,000円(税込み)以上の場合には、配送料は日本全国無料とさせていただきます。
・1回のお買い上げ金額が5,000円(税込み)に満たない場合には、配送料650円(税込み)をご負担願います。(一部例外もございます。)
~代金引換手数料~
・代金引換手数料につきましては、全額当方で負担させていただきます。
~代金引換のお客様~
・現金、クレジットカード、デビットカードのいずれかでのお支払いとなります。
![]()
~クレジットカード決済サービス~
<直接決済は終了しました>
![]()
・お客様登録画面(ご希望商品選択後)にて簡単決済
![]()
~銀行振込のお客様~
・お振込確認後直ちに発送いたします。(お振込手数料はご負担願います)
お振込先:PayPay銀行 (0033) ビジネス営業部 (005)
(普通) 1 5 1 8 4 1 7 ヤマモトケンコウドウヤマモトマサハル