#author("2016-08-06T12:33:02+09:00","default:Miyashita","Miyashita")
#author("2016-09-10T19:42:17+09:00","default:Miyashita","Miyashita")
*基本方針 VBA [#z3d8c070]
Excelでの作業効率化・VBAの可読性向上・誤りを防止するためのメモ.
VBAのコーディングは好みが分かれるため,他人が参考にするものでもないかも.

こちらも  [[基本方針 fortran>http://hydrocoast.jp/index.php?fortran/%E5%8F%AF%E8%AA%AD%E6%80%A7%E5%90%91%E4%B8%8A%E3%83%BB%E8%AA%A4%E3%82%8A%E9%98%B2%E6%AD%A2%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%96%B9%E9%87%9D%28fortran%E7%89%88%29]]
こちらも  [[基本方針 Fortran>http://hydrocoast.jp/index.php?fortran/%E5%8F%AF%E8%AA%AD%E6%80%A7%E5%90%91%E4%B8%8A%E3%83%BB%E8%AA%A4%E3%82%8A%E9%98%B2%E6%AD%A2%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E5%9F%BA%E6%9C%AC%E6%96%B9%E9%87%9D%28fortran%E7%89%88%29]]

***Option Explicitを使用する [#q76e30fd]
-fortranのimplicit noneと同様にスペルミスを防ぐ.型を明示したほうが整理しやすい.宣言しない場合はVariant型になるというのもスマートな感じがしないし,メモリの無駄遣いだと思われる.
-Fortranのimplicit noneと同様にスペルミスを防ぐ.型を明示したほうが整理しやすい.宣言しない場合はVariant型になるというのもスマートな感じがしないし,メモリの無駄遣いだと思われる.
-ただし,VBAでがっつり解析を行うという人は滅多にいない(と思う)ので,短いSubでは必要ないのかもしれない.

***変数名をわかりやすく,1文字にしない [#f56e2aef]
-1文字はループで使うi,j,kくらい.
-大文字小文字の区別をうまく利用する.単語区切りで頭文字を大文字にするとか,特定の型だけ大文字で始まる,とか.コミュニティ内でルールを統一させる.
-他人が見ても,自分が久しぶりにいじることになっても,何のことかわかるようなネーミングを心掛ける.

***VBAを実行するファイルと,I/Oファイルを同一にしない [#ke8d80fb]
-処理実行をするファイルは,データ元のExcelファイル(ブック)と別にする.
-コードを書いて制御する.xlsmファイル(マクロ有効ブック)からデータが格納されているファイルを開き,さらに別のoutput用ファイルを開いて出力,という構成が基本.
-他の言語だと当たり前のように思えるが,なぜかExcelになるとその考えに至らない人もいる.

***グラフ描画は雛形を作成しておく [#l676abeb]
-Excelで最初から思い通りのグラフが描けることはまずない.
-軸のフォントや線の太さ,マーカーのサイズなどの体裁を一通り整えたグラフを,ダミーデータを使用して事前に(手動で)作成しておく.その後,VBAのコードでコピーして参照範囲を変更して描く,という手順がVBAでは最も楽で効率的.
-似たような形式のデータでグラフを大量生産する場合にも大きさが統一されるし,雛形グラフのコピーのため,体裁を整えるコードの行を最小限に抑えられる.
-コードでグラフを作成して体裁を整えようとなると相当手間がかかる.MATLAB慣れしているとなかなかこの思考から抜け出せなかった.

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes