<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97 VBAの森>縦のものを横に



(5)

9.コメントを付けて、後で見ても分かりやすく・・・。

今回の処理、結構長い構文になりましたね・・・。後でこの構文見て、わけわかんなくなっちゃいそうですよね・・。
それに、何人かのグループで共同で開発したりしてるときって、こういうの、人が書いたのって見る気しなくなっちゃうんですよね・・。

こういう時のために

★処理はわかりやすく入れ子にする。

★なるべくコメントを付ける。

と、いうことをすこーし取り入れるとよいかもしれません。

Public Function BBB()
Dim db As Database
Dim d1, d2 As Recordset
Dim m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12 As Integer '---集計用変数
Set db = CurrentDb
Set d1 = db.OpenRecordset("売上テーブル")
Set d2 = db.OpenRecordset("売上集計")

'----変数の初期化
m1 = 0
m2 = 0
m3 = 0
m4 = 0
m5 = 0
m6 = 0
m7 = 0
m8 = 0
m9 = 0
m10 = 0
m11 = 0
m12 = 0

'----売上集計テーブルの、前回のレコードを削除
Do Until d2.EOF
  d2.Delete
  d2.MoveNext
Loop

'----変数に代入。集計処理開始。
Do Until d1.EOF

 Select Case DatePart("m", d1![売上日])
 Case 1
  m1 = m1 + d1![売上金額]
 Case 2
  m2 = m2 + d1![売上金額]
 Case 3
  m3 = m3 + d1![売上金額]
 Case 4
  m4 = m4 + d1![売上金額]
 Case 5
  m5 = m5 + d1![売上金額]
 Case 6
  m6 = m6 + d1![売上金額]
 Case 7
  m7 = m7 + d1![売上金額]
 Case 8
  m8 = m8 + d1![売上金額]
 Case 9
  m9 = m9 + d1![売上金額]
 Case 10
  m10 = m10 + d1![売上金額]
 Case 11
  m11 = m11 + d1![売上金額]
 Case 12
  m12 = m12 + d1![売上金額]
 End Select

 d1.MoveNext
Loop

'----売上集計テーブルに追加
d2.AddNew
 d2![1月] = m1
 d2![2月] = m2
 d2![3月] = m3
 d2![4月] = m4
 d2![5月] = m5
 d2![6月] = m6
 d2![7月] = m7
 d2![8月] = m8
 d2![9月] = m9
 d2![10月] = m10
 d2![11月] = m11
 d2![12月] = m12
d2.Update

End Function

入れ子というのは、タブキーとか使って、行の左端を整えて入力するってことです。
左端が全部一直線だと、どこからどこまでがループで、If文はどこまで関わっていて・・・という、処理の一塊がわかりにくくなるんですよね。
なので、うまく工夫して、ぱっと見てどこからどこまでが関連するひとつの処理か、わかりやすく書いて残そう、ということです。

まあ、やったからどうなるってわけじゃないんですけどね。

コメントとは、左端にシングルコーテーション ' を付けた行のことで、処理には直接関わらず、何を入力しても問題のない注釈行になります。
ここから下、何をやるのか、どういう意味なのか、チョコっと書き記しておくと、後で何かと便利ですよ。


ふむ。。。今回は少々長丁場でしたか。でも、段取りつかめるとけっこうオモシロイですよね。

VBAってのも含めて、プログラムを書くということは作文を書くのと同じことです。

何にしても、処理の段取りをしっかりつかまないとイケナイですよね。
構文自体はそんなに難しいもんじゃないですけど、希望どおりの処理を形にしていくのが、なかなか一筋縄じゃいかない・・・。
VBAが難しそう・・と思っちゃうのは、そういうところかな、と思ったりしたりなんかしてる今日このごろです。

ここまで抵抗なく進むことができたと、手応えを感じた方は、いけてるかもしれないですね。
でも、やっぱりいろいろ気を付けなくちゃいけないこととか、知っておかないといけない知識とかありますから、それは少しずついろいろな角度から習得していくようにしましょう。

いやー、でもね、こういう風に1行1行入力したものが思ったように動いたときって、結構うれしいんですよ。
どんなにへんちくりんな処理でも。。。ね。

んじゃあ、またお会いしましょう。さよなら、さよなら、さよなら・・・。
(といいつつ、次のコーナーへ・・・)