スポンサーリンク

CALL を使って [呼び出す、纏めて実行する]

Call_00.jpg VBA
スポンサーリンク
スポンサーリンク

Callステートメントの利用

今回の簡単に取得したマクロ例(サムネイル例)

Option Explicit
''===============
Sub 一括実行()
    Call 部分実行1
    Call 部分実行2
End Sub
''===============
Sub 部分実行1()
  Dim xxx As String
      xxx = "あいうえお" 
    Range("A1") = xxx
End Sub
''===============
Sub 部分実行2(
  Dim yyy As String
      yyy = "かきくけこ"
    Range("A2") = yyy
End Sub

この記述状態で「Sub 一括実行()」を実行すると、
「Sub 部分実行1()」と、「Sub 部分実行2()」が、
上から順番に実行されます。

こんな記述はダメ

Call_01.jpg

「Sub 部分実行1()」プロシージャで宣言していた、変数「xxx」を読み込めません。

こんなのもダメ

Call_02.jpg

これも「Sub 部分実行1()」プロシージャで宣言していた、変数「xxx」が、
「 Sub 部分実行2() 」で読み込めない為のエラーです。

これは、この宣言の記述方法では、プロシージャを跨いで変数を使いまわす事ができないからです。もちろん、これを簡単に回避する方法もありますので、是非そちらをご覧になって下さい。
カテゴリ「宣言」でこれから公開していきます。

変数を使いまわす上での注意

今回の記述例

上記の2例は、宣言の方法によって、プロシージャを跨いで変数を使い回せなかった事が原因で出ていたエラーです。
この回避方法は別記事で説明します。

その他の注意

① 場合によっては宣言方法を回避して通常に動く様になっても、毎回不要な情報を取得しにいくコードになる可能性もあります。

② 不要なコードが重複しないように記述していければ最高です。

③ 毎回不要なコードを取得しに行っても、時間的に問題なく、且つ正常に動くのであればそれで良い場合も多々ありますので、記述の方法次第です。

利用用途が良い方向性

変数を引き継がず、ショートマクロを順番に実行すれば完結するコード集やプログラムなら、この方法だけで完結できると思います。

使い方の良し悪しを考えて、自分に(必要があれば他人にも)分かり易いコードを書いて行きましょう。

タイトルとURLをコピーしました