- 締切済み
見やすい/保守が楽なコーディングについて(初心者)
会社の事務処理にVBAを利用しているのですが、数が増えるにつれ 「運用が変わったから修正よろしく」といった依頼を受けることが多くなりました。 しかし、自分が数カ月前に書いたはずのコードも、 忘れてしまうと読み返すだけで一苦労です。 そこで、自分なりに見やすく修正しやすいであろうと思う コーディングを考えてみたのですが、いかんせん素人判断なので 本職の方々の常識としてどうであるかを伺いたいです。 1.基本は全て変数(定数)化 workbooks("hoge.xls").sheets("Sheet1").cells... のような絶対指定は避ける。 例えhoge.xlsやテキストボックスの名前のような 原則変更がないものも出来る限り定数化しておく。 ちょっとした msgbox("処理を続行しますか",vbYesNo) みたいなのも変数に入れておく。 2.使用する変数は最初のうちに格納しておく aaa = "aiueo" <処理> bbb = "kakikukeko" のような場合は、行を空けずに連続して書く。 分岐処理でやむを得ない場合を除き、基本は最初に全て格納。 一番最後で使う変数でも最初に格納して、['最後の○○で使用]みたいなコメントを打っておく。 3.ifのネストは1回まで(出来れば無) 3回以上のifが必要な場合は、別に分岐判断のみをさせる subやFunctionをcallして、そっちでネストを組む。 メインのプロシージャでは極力減らす。 こんな感じでしょうか。 多分、これで問題ないように思うのですが、 自信が持てない面があるので…よろしくお願いします。 また、その他に「これだけは忘れずやっとけ」 「これやっとくとあとで便利」的なものがありましたら教えて下さい。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- maguro999
- ベストアンサー率21% (59/273)
機能ごとの関数(クラス)化。 その関数(クラス)の機能のコメント。 自分は大体どの言語でも 関数(クラス名): 機能: 引数: 返り値: の説明をコメントアウトで付けている。 ・変数名もわかりやすく意味が連想できるものを付ける。 ・ついでに変数定義のところでその変数の役割をコメントアウトする。 ・変数型の付け方の規約をつくる。 Integer(整数)型なら変数名の頭か穴にintを付けたり String(文字列)型ならstrを付けたり 例:Abcと言う変数名を文字列方で付けたければ strAbcとするとか これは変数名だけではなくてフォームや各種オブジェクトと(テキストボックスやラベルなど)にもいえる。
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 んと…きっちりやるなら ・構造化プログラミング ・オブジェクト指向 あたりが参考になるのですが。 そこまでがっつりやらないのであれば、とりあえず ・処理を関数化する だけでもずいぶんと違います。 ちなみに、ドキュメントなどは「大抵途中でメンテナンスしなくなる」ので、コメントで一通り全部memoしておくほうが実用的です。
- don_go
- ベストアンサー率31% (336/1059)
1) >aaa = "aiueo" >bbb = "kakikukeko" ↑の様に変数の内容が判らない様な変数名はつけない。 2) Sub() や Function() の先頭に処理内容をコメントで 記述する。 処理内容 引数 戻り値 特記事項 3) >2.使用する変数は最初のうちに格納しておく >...一番最後で使う変数でも最初に格納して これは好みの問題になりますが、あまり距離が離れ過ぎると 却って読みづらくなる様に感じます。 #最後の方でしか使わないのであれば、近くにおいた方が #モジュールを流用する時に、コピーし忘れる事を防げる #のでは? 3) 1つのモジュールはあまりステップ数を多くしない。 #上下1画面ずつスクロールする程度(100行前後) 4) 処理ブロック毎に改行・コメントを入れる。 他人が見て判りやすいコメントを入れる事 #数ヵ月先、数年先の自分も他人で有る事を忘れては #いけません。 5) ドキュメント・改定履歴は必ず作成する事。