和風スパゲティのレシピ

日本語でコーディングするExcelVBA

2019-12-01から1ヶ月間の記事一覧

アプリケーションハンガリアン+日本語は最強の変数名だ

アプリケーションハンガリアンと日本語変数はとっても相性が良くて、区切りと役割がはっきり分かれて読みやすい上に、キーボードの日本語入力をOFFのままで日本語変数を使えるよ。というお話です。最終目的のgifアニメを張りますので見てみてください。

定数を使って読みやすく変更に強いマクロを書く

データを扱うマクロで、セルの指定をCells(R, 4)やRange("D" & i)のように書いていませんか?列の挿入や削除に対応するのが、すごい面倒と感じている方は必見です。定数を使えば、このマクロを劇的に「読みやすく、変更に強く」することができます。

オートフィルターで数値の条件・区間を抽出する

「10以上」や「15以上20以下」など、オートフィルターによる数値の条件・区間での絞り込みを、コピペして使えるユーティリティ関数にしたものを紹介します。お忙しい方は、ソースコードをコピーして、使い方のように呼び出すだけでOKです。

単セル.SpecialCellsはシート全体から実行とみなされる

知らずに落ちると抜け出せなくなるVBAの落とし穴です。SpecialCellsを使ったらバグった。急にシート全体の値が書き換わった。SpecialCellsでセルを絞ったつもりが、元のRangeよりなぜか広くなった。あたりにお悩みの方は、この落とし穴を疑ってください。

オートフィルターで抽出中の件数をカウントする

オートフィルターで抽出中のレコードを数えるユーティリティ関数を紹介します。レコードが抽出されているかどうかは、その行が表示されているかを調べればわかるので、「見えている行の数 ⇒ どこか1列の見えているセルの数」を数えることで計算します。

オートフィルターをクリアして全て表示する

オートフィルターのクリア(すべての抽出をリセットして、すべての行を表示する)を、コピペして使えるユーティリティ関数にしたものを紹介します。お忙しい方はソースコードをコピーして、呼び出すだけでOKです。コードをしっかり読みたい方は、解説をどうぞ。

オートフィルターでデータを抽出する

オートフィルターで一番基本となる「データの抽出」を、コピペして使えるユーティリティ関数にしたものを紹介します。オートフィルターはとても便利な機能で、しかも高速なので、使いこなせば読みやすくて速いマクロを作ることができます。

変数を日本語にすればプログラミングが上達する

変数名・関数名などの識別子は、英語を使う明確な理由がない限り、なるべく日本語で命名するべきです。日本語変数を使うことで、翻訳に労力を割かなくなり、コードが読みやすくなり、全体の流れに集中できるようになり、プログラミングの上達が早くなります。