脱・入門者のExcelVBA を読んでみる
自力でプログラミングする極意を学ぶ
本書は脱入門者を目的に書かれています。第3章では「VBEのデバッグ機能」の解説に力点が置かれています。例題ではCSV売上データを取り込み、エリア営業所別のエクセルファイルに分けて売上明細データを書き込むプログラムを作成するというものでした。
プログラミング上達のための「3つの力」について
巻末にあるプログラミング上達のための「3つの力」について考えてみたいと思います。3つとは
- プログラムの問題点を見つけて修正する力
- 処理が速いプログラムを書く力
- 状況の変化に対応しやすいプログラムを書く力
です。内容は理解できたのですが「状況の変化に対応しやすいプログラム・・・」であれば、コンスト(定数)で設定値をプログラム内に持たせるよりもワークシートにオペレーターが任意に値を設定・管理したほうが汎用性が高いと思いました。もし、本番用に運用するのであればCSV売上データ取り込みフラグを設けて二重取り込みを防止する機能が必須かと思いました。(そこまでの機能をココでは求めていませんが)
ソースリストの変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Sub データ取込() Const WR_BGN As Long = 2 'エリア一覧の開始行 Const WC_AR As Long = 1 'エリア一覧の列 Const W_SNM As String = "作業用" 'エリア一覧のワークシート名 Const OR_BGN As Long = 2 '転記元CSVファイルの開始行 Const OC_DT As Long = 1 '転記元CSVファイルの日付の列 Const OC_AR As Long = 2 '転記元CSVファイルのエリアの列 Const OC_BRNC As Long = 3 '転記元CSVファイルの営業所の列 Const OC_CSTM As Long = 4 '転記元CSVファイルの顧客の列 Const OC_ITM As Long = 5 '転記元CSVファイルの品目の列 Const OC_PRC As Long = 6 '転記元CSVファイルの単価の列 Const OC_QTY As Long = 7 '転記元CSVファイルの数量の列 Const DC_DT As Long = 1 '転記先エリア別ブックの日付の列 Const DC_CSTM As Long = 2 '転記先エリア別ブックの顧客の列 Const DC_ITM As Long = 3 '転記先エリア別ブックの品目の列 Const DC_PRC As Long = 4 '転記先エリア別ブックの単価の列 Const DC_QTY As Long = 5 '転記先エリア別ブックの数量の列 以下略 |
まとめ
自力でプログラミングする極意が本書に記載されています。デバッグ機能など様々な機能やツールが紹介されています。脱・入門者を目指すには一読に値すると思います。