Mutable_Yunの業務改善ブログ

業務改善や生産性向上のブログです。自動化の手段として、VBAやRPAの勉強に役立つ解説をしています。

VBAのコーディングで自分なりのルールを作る 自分だけのコーディング規約のメリット3つ

VBAで自動化のツールを作る時、変数名を決めるときに迷ったり、途中で中断したときにどこから作業再開するか探すのに手間取ったりしたことはありませんか。

今回は自分なりのルールを作る事でこういった手間を防ぎ、プログラミング作業を効率化する方法を私の体験を元に紹介します。

  1. 変数や定数、プロシジャ名をつける時に名前で迷わない
  2. デバッグが楽になる
  3. 中断、再開が楽になる

変数や定数、プロシジャ名をつける時に名前で迷わない

最終行や列の名前、取得するファイルの保存場所を入れるための変数はよく出てくる変数です。これらの変数の名前の付け方を決めておくと、変数名で悩むことが無くなります。よく出てくる場面のため、ここで自分の中でルール化しておくと効率化できます。

VBAは全角文字の変数名を使うことができるため、分かりやすい変数名を日本語でつけることができます。
私の場合は以前はこのように書いていました。

例>

  • 最終行の行番号を入れる変数:最終行rw
  • 最終列の列番号を入れる変数:最終列clm
  • フォルダのフルパス:ファイル名fp

rwは行の意味のrow、clmは列の意味のcolumn、fpはフルパスの意味のfull pathを使っています。
変数名で変数の型が分かりづらい場合は型を変数名に入れるのもおすすめです。

例>

自分の中で一貫性があれば、自分だけが使う便利ツールを作る上で細かなコーディング規約(プログラミングをするときのお約束)を意識する必要はありません。職場で人に使ってもらう、将来的に他の人がメンテナンスする可能性がある、と言った場合は話し合いで決めていきましょう。

ちなみに現在は他言語も書くようになり、そちらの自分のルールに一本化するため、コードの中に日本語は書かなくなりました。VBAしか書かない場合は日本語で問題なしです。

デバッグが楽になる

変数名や定数名にルールを作るとデバッグが楽になります。

なにかエラーが出たときに、そのエラーが発生した原因がそのエラーがでて実行できないコードでは無く、
そのコードの引数の変数に狙い通りの値が入っていないと言う事があります。

そしてその原因がさらに前の課程にあったりします。そう言った時に例えば行番号ならrwをつけるといったルールがあると、Ctrl + fで検索ウィンドウを開き、rwで検索することができます。

大切なのは自分のルールは何でもいいのですが、一度決めたらそのプロジェクトの中では無理しない程度に一貫性を保つことです。

中断、再開が楽になる

作業を中断した時にどこから作業を再開したか分から無くなることはありませんか?

あるいは作業中はデバッグの効率化のために一旦、ユーザーに入力ファイルを選ばせるべきところを、
指定したフルパスからデータを取り込むようにしておく、実際に使うときに変更する、と言った箇所があると言った事も考えられます。

そのようなときはプログラミングそのものでは絶対に使わない文字をコメントとして挿入しておくとよいです。

私の場合は 「'★」を入れています。ユーザーテストの時まで残しておいて、合格したらリリースの時に★を検索して全部★が無くなっていたらリリースするというルールを作ったからです。

このルールが無いときはデバッグのために入れていたStopがコードの中に残ったまま人に渡したりしていました。恥ずかしい。

このように自分なりのルールを決めることで効率化をはかることができるだけで無く、凡ミスを減らして品質を向上させることもできます。

少し書けるようになってきたらこの自分ルールを考えてみると良いと思います。