VBA まとめ

11.サンプルプログラムの内容

処理フロー図

 前章までに作成したステップ1から3までのプロージャを一連の処理としてまとめれば、「株価チャート作成プログラム」が完成しますが、各ステップ内ではエラーチェックをしていますので、エラーがない場合のみ、次のステップに進む処理フロー図にします。
サンプルプログラム全体の処理フロー図

[標準モジュール]・[Module4]の表示

プロシージャ[標準モジュール]・[Module4]のプロシージャを表示させましょう。
上記フロー図でのVBAの他に、次の通り[2行目]、[11~14行目]に処理を追加しています。

  1. Sub サンプル_株価チャート作成()
  2. ' Application.ScreenUpdating = False
  3.  サンプル_ステップ1
  4.  If pbError = 0 Then
  5.   サンプル_ステップ2
  6.  End If
  7.  If pbError = 0 Then
  8.   サンプル_ステップ3
  9.  End If
  10. ' Application.ScreenUpdating = True
  11.  Sheets("メニュー").Select
  12.  If pbError = 0 Then
  13.   MsgBox "正常に株価チャートを作成しました"
  14.  End If
  15.  End Sub
  • 1行目:「Subプロシージャ」の開始
  • 2行目:Application.ScreenUpdating = False (コメント行)
  • 3行目:サブルーチン[サンプル_ステップ1]の処理
  • 4~6行目:エラーがない場合は、サブルーチン[サンプル_ステップ2]の処理
  • 7~9行目:エラーがない場合は、サブルーチン[サンプル_ステップ3]の処理
  • 10行目:Application.ScreenUpdating = True (コメント行)
  • 11行目:シート[メニュー]の選択
  • 12~14行目:エラーがない場合は、「正常終了」のメッセージ表示
  • 15行目:「Subプロシージャ」の終了

【Application.ScreenUpdating】
「Application」とはExcel、「ScreenUpdating」とは画面の描画・更新のことです。
上記のままではコメント行のため動作しませんが、['](シングルコーテーション)をはずすと、False(画面更新しない)、True(画面更新する)が有効になります。
最初に「画面が少しちらつくような状態が続いた後に、・・・」と説明しましたが、2・10行目の[']を外せば、1).ちらつく状態がなくなり、2).処理速度も向上します。

【サブルーチン】
プロシージャは単体で実行するだけでなく、他のプロシージャからも呼び出して実行することができ次のメリットがあります。

  1. プロシージャを呼び出す側(メインルーチンという)と呼ばれる側(サブルーチンという)に分けることにより、プログラム全体が分かりやすくなる。
  2. 同じ処理を複数回行う場合、一つのサブルーチン(プロシージャ)にしておけば、同じ処理を複数回書く必要もなく、修正も容易になる。

ここでは、メインルーチン:[サンプル_株価チャート作成]、サブルーチン:[サンプル_ステップ1・2・3]に分けています。
メインルーチンから引数(ひきすう)として値をサブルーチンに渡すこともできますが、この株価チャート作成プログラムでは引数は使用せず、パブリック変数を使っています。

 

それでは、[標準モジュール]・[実習用_株価チャート作成]を使い実習を行いましょう。
以上で、株価チャート作成プログラムが完成しました。

 

 
  このエントリーをはてなブックマークに追加

 

スポンサーリンク