全体制御 | ここでは「前処理」「主処理」「後処理」をどのように呼び出すかだけを記述します。 何かの判断によるのか、または何かの条件で繰り返すのかということです。 判断や繰り返しがないなら、 ①「前処理」を行なう。 ②「主処理」を入力データの終了まで繰り返し行なう。 ③「後処理」を行なう。 だけの処理になります。 |
前処理 | 「制御」の中の先頭の方で1回だけ呼ばれる処理です。 主に初期化、初期値のセットなどをこの段階で行ないます。 |
主処理 | データの件数分、1件あたり1回ずつ呼び出される処理です。 呼び出し回数を決めるのは、「制御」が行なう仕事であり、「主処理」自体は単純に1件分の処理を行なうだけの作業です。 |
後処理 | 「制御」の中の最後の方で1回だけ呼ばれる処理です。 主に処理結果の通知(表示)を行ないます。 |
全体制御 | ①「前処理」を行ないます。 ②「主処理」を集計対象行全てに繰り返して行ないます。 ③「後処理」を行ないます。 |
前処理 | ①「合計」の変数を初期化します。 ②これから加算していく一覧の行カウンタに1行目の行番号をセットします。 |
主処理 | ①現在行の数量と単価を乗算して、結果を「合計」に加算します。 ②行カウンタに次の行の行番号をセットします。つまり、行カウンタに1を加えます。 |
後処理 | ①「合計」を最終行の次の行にセットします。 |
'***************************************************************************************************
' 単純合計のサンプル
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
Option Explicit
'===================================================================================================
' 変数の宣言(引数などを説明から除外するためモジュール変数を使います)
Private g_lngRow As Long ' 行
Private g_crnKingaku As Currency ' 金額
'***************************************************************************************************
' ■全体制御
'***************************************************************************************************
Sub 単純合計のサンプル()
'-----------------------------------------------------------------------------------------------
' 前処理(最初に1回だけ)
Call 前処理
' 主処理は11行まで繰り返す
Do While g_lngRow <= 11
Call 主処理
Loop
' 後処理(最後に1回だけ)
Call 後処理
End Sub
'***************************************************************************************************
' ■前処理
'***************************************************************************************************
Private Sub 前処理()
'-----------------------------------------------------------------------------------------------
g_crnKingaku = 0 ' 合計を初期化
g_lngRow = 2 ' 集計先頭行をセット
End Sub
'***************************************************************************************************
' ■主処理
'***************************************************************************************************
Private Sub 主処理()
'-----------------------------------------------------------------------------------------------
' B列の値を合計に加算
g_crnKingaku = g_crnKingaku + Cells(g_lngRow, 2).Value
' 行を加算
g_lngRow = g_lngRow + 1
End Sub
'***************************************************************************************************
' ■後処理
'***************************************************************************************************
Private Sub 後処理()
'-----------------------------------------------------------------------------------------------
' 行を加算(間1行空けるため)
g_lngRow = g_lngRow + 1
' 合計をセット
Cells(g_lngRow, 1).Value = "合計" ' 見出し
Cells(g_lngRow, 2).Value = g_crnKingaku ' 合計額
End Sub
'------------------------------------------<< End of Source >>--------------------------------------