Callステートメント
「Call」ステートメントの後にSubプロシージャ名を記述することでSubプロシージャを呼び出すことができます。「Call」を付けなくてもかまいませんが、Subプロシージャを呼び出していることがはっきりと分かります。
今回はプロシージャ間でのデータの受け渡しについては説明しませんが、グローバル変数を利用すると同じことが可能です。ただ、多用しないことです。でも、非常に便利です。
メリットは、同じ機能または処理を複数回プログラミングしなくてすむのでプログラムがすっきりし、読みやすく間違いを見つけやすいです。
「1プロシージャ1機能」をモットーにプログラミングすることをお勧めします。
【書式】
Call 呼び出すSubプロシージャ名
【練習問題10】
受け取った文字列を表示するだけの「Sample01」のプロシージャを作成して、それを呼び出すプログラムを作成します。
サンプルデータvba-exercises.xlsm「VBA練習問題」をダウンロードして保存しておいてください。
この問題を解く前に新規に「標準モジュール」シートを作成しておきましょう。
作成手順は、メニューバーの「挿入」から「標準モジュール」を選択すると新規の標準モジュールが作成されます。
名前は既存のモジュールの数に1を加えた名前になります。今回は名前は「Module2」になると思います。
【解答例】
- Sub 練習問題10()
- Dim s As String
- s = "呼び出しプログラム" '変数に"呼び出しプログラム"という文字を入れる
- Call Sample01(s) 'プロシージャ「Sample01」を実行する
- End Sub
- Sub Sample01(s)
- MsgBox s '変数sの値を表示する
- End Sub