変数・定数
「固定セルを定数で扱いたい!」という場面は結構多いです。データシートの上部に固定された、「対象月」や「更新日」のセルとかですね。常に同じRangeオブジェクトをくれる定数がほしいのですが、Constではできませんので、別の方法を使います。
VBAの変数の型である「Long型」と「Integer型」の違いを解説します。両者とも整数を扱いますが、箱の大きさが違います。使うのは常にLong型でOKです。Integerの方がメモリを使わなくて地球にやさしそうですが、気にするレベルではありません。
Cells(i, 1)をもうやめて、Cells(R, 1)こうしませんか?という話です。複数のオブジェクトを扱う場面が多いExcelVBAにおいて「カウンタ変数は何のカウンタかわかるように命名する」ことは、とても重要なコーディング規約なんじゃないかと思います。
セルの文字色・背景色を設定するとき、色コードやRGBを調べなくてはいけません。初回はしょうがないのですが、何度も使う色は定数などで持っておきたいところです。この色の記憶に列挙型変数(Enum)がとても便利なので、ぜひ活用してみてください。
列挙型変数(Enum)の基本構文の書き方と、主な使い方について解説します。列挙型変数は数値(Long)の定数をまとめて定義するしくみです。根本的な使用目的は定数と同じです。直打ちの数字を無くすことで、読みやすくて、変更に強いコードを書くために使います。
定数(Const)の基本構文の書き方と、主な使い方について解説します。例えば「消費税」が変更になったとき、プログラム中のすべての「0.08」を「0.1」にするのはとても大変です。これを定数にすることで、最初の宣言部だけ変更すればよくなります。
アプリケーションハンガリアンと日本語変数はとっても相性が良くて、区切りと役割がはっきり分かれて読みやすい上に、キーボードの日本語入力をOFFのままで日本語変数を使えるよ。というお話です。最終目的のgifアニメを張りますので見てみてください。
データを扱うマクロで、セルの指定をCells(R, 4)やRange("D" & i)のように書いていませんか?列の挿入や削除に対応するのが、すごい面倒と感じている方は必見です。定数を使えば、このマクロを劇的に「読みやすく、変更に強く」することができます。
変数名・関数名などの識別子は、英語を使う明確な理由がない限り、なるべく日本語で命名するべきです。日本語変数を使うことで、翻訳に労力を割かなくなり、コードが読みやすくなり、全体の流れに集中できるようになり、プログラミングの上達が早くなります。