VBAでプログラミングをする時、変数名のつけ方や処理の流れに関してルールがあると迷わずに済み、開発効率が向上します。コーディング規約という考え方を取り入れて、開発効率を高めていきましょう。
この記事は自分の職場の業務改善の為にVBAについて調べている事務職の方を読者に想定しています。
目次
自分だけのコーディング規約を作って開発効率を向上させる
コーディング規約とは
コーディング規約とは、プログラミングをする際の決まり事です。決まり事と言ってもプログラミングの文法ではなく、約束事というようなニュアンスです。プロのエンジニアは一人で作業するのではなくいろいろな人が作業を分担してプログラミング作業を遂行します。その時に、それぞれのエンジニアが好き勝手なルール、例えば変数名の付け方をしたりすると全体として見づらいプログラムになってしまいます。
このようにチームで作業する場合はコーディング規約というお約束を作るのが基本ですが、非エンジニアの私たちがVBAでちょっとした自動化ツールを開発するだけでも、自分だけのコーディング規約を作っておくとメリットがあります。そのメリットと具体的な例を解説していきます。
コーディング規約を作るメリットと規約の具体例
自分だけのコーディング規約を作るメリットは下記の通りです。
- 変数や定数、プロシジャ名をつける時に名前で迷わない
- デバッグが楽になる
- 中断、再開が楽になる
以下、メリットについて解説しつつ、自分だけのコーディング規約の例を紹介していきます。
変数や定数、プロシジャ名をつける時に名前で迷わない
最終行や列の名前、取得するファイルの保存場所を入れるための変数はよく出てくる変数です。これらの変数の名前の付け方を決めておくと、変数名で悩むことが無くなります。よく出てくる場面のため、ここで自分の中でルール化しておくと効率化できます。
VBAは全角文字の変数名を使うことができるため、分かりやすい変数名を日本語でつけることができます。私も以前は日本語の変数名をつけていました*1。
例>
- 最終行の行番号を入れる変数:最終行rw
- 最終列の列番号を入れる変数:最終列clm
- フォルダのフルパス:ファイル名fp
rwは行の意味のrow、clmは列の意味のcolumn、fpはフルパスの意味のfull pathを使っています。変数名で変数の型が分かりづらい場合は型を変数名に入れるのもおすすめです。
例>
- 仕入れ先コード_str
自分の中で一貫性があれば、自分だけが使う便利ツールを作る上で細かなコーディング規約(プログラミングをするときのお約束)を意識する必要はありません。職場で人に使ってもらう、将来的に他の人がメンテナンスする可能性がある、と言った場合は話し合いで決めていきましょう。
デバッグが楽になる
変数名や定数名にルールを作るとデバッグが楽になります。デバッグというのは意図しない結果が出力されたり、エラーでプログラムの実行が中断してしまう現象を探し出して解決する作業です。
何かのエラーが出たときに、そのエラーが発生した原因がエラーで実行できない行より前にある場合が存在します。多くの場合、実行できない命令の引数に使われている変数に意図した値が入っていない事が原因です。そう言った時に例えば行番号ならrwをつけるといったルールがあると、Ctrl + fで検索ウィンドウを開き、rwで検索することができます。
大切なのは自分のルールは何でもいいのですが、一度決めたらそのプロジェクトの中では無理しない程度に一貫性を保つことです。
中断、再開が楽になる
作業を中断した時にどこから作業を再開したか分から無くなることはありませんか?
あるいは作業中はデバッグの効率化のために一旦、ユーザーに入力ファイルを選ばせるべきところを、
指定したフルパスからデータを取り込むようにしておく、実際に使うときに変更する、と言った箇所があると言った事も考えられます。
そのようなときはプログラミングそのものでは絶対に使わない文字をコメントとして挿入しておくとよいです。
私の場合は 「'★」を入れています。ユーザーテストの時まで残しておいて、合格したらリリースの時に★を検索して全部★が無くなっていたらリリースするというルールを作ったからです。
このルールが無いときはデバッグのために入れていたStopがコードの中に残ったまま人に渡したりしていました。恥ずかしい。
このように自分なりのルールを決めることで効率化をはかることができるだけで無く、凡ミスを減らして品質を向上させることもできます。
自分だけのコーディング規約を作るメリットまとめ
以上の内容をまとめると下記の通りです。
- 変数や定数名などで悩む時間が節約できる
- デバッグが楽になる
- 中断、再開が楽になる
自分だけのコーディング規約を作るととても楽になります。将来、人に使ってもらうプログラムを作成するときは、メンテンナンス性を高めることを考えなくてはなりません。その時はコーディング規約はとても大切な考え方となりますので、今のうちにコーディング規約に従う、という考えを取り入れてみてはいかがでしょうか?
*1:Pythonというプログラミング言語を学んでからは日本語の変数名をつけるのが気持ち悪くなったため、現在は変数名は英子文字を使っています。