Excel(エクセル)マクロ作成のコツ4選|VBAコードを見やすく書く方法

Excel(エクセル)でマクロ(VBA)を使いこなすには、実際に手を動かしてコードを書きながら経験を積むことが一番の近道です。とはいえ、ただ動けばよいというわけではありません。後から自分や他の人が見返したときに「何をしている処理なのか」がすぐに分かるように書くことも、マクロ作成では大切なポイントです。

この記事では、VBAでマクロを作成するときに意識しておきたい4つのコツを、サンプルコードとあわせて紹介します。これからマクロを書き始める方はもちろん、すでにある程度VBAを使っている方も、コードを見やすく整理するヒントとして参考にしてください。

スポンサーリンク

VBE(Visual Basic Editor)を開く

マクロのコードを確認・編集するには、まずVBE(Visual Basic Editor)を開きます。リボンに「開発」タブが表示されている場合は、「開発」タブ>「Visual Basic」をクリックすると起動できます。

「開発」タブが表示されていない場合は、リボンを右クリックして「リボンのユーザー設定」を選び、右側の一覧で「開発」にチェックを入れると表示されるようになります。もっと手軽に起動したい場合は、ショートカットキー「Alt + F11」を押すだけでVBEを開くことができます。

今回サンプルとして使用するマクロを実行すると、下記のようにセルに色が付き、罫線が引かれます。実際にコードを書き換えながら、動作の違いを確認してみてください。

マクロ実行後にセルに色が付き罫線が引かれた状態のExcel画面

Excel(エクセル)マクロ作成のコツ4選

ここからは、VBAでマクロを書くときに役立つ4つのコツを、コード例とともに紹介します。いずれもすぐに実践できる内容なので、普段のマクロ作成にぜひ取り入れてみてください。

コツ①:コメントアウトでメモを残す

VBAのコードは英単語の羅列なので、慣れないうちは何をしている処理なのか分かりにくいことがあります。そこで役立つのが「コメントアウト」です。コードの行に日本語でメモを残しておけば、後から見返したときに処理内容をすぐに思い出せます。

コメントアウトをするには、メモを書きたい位置にシングルクォーテーション「’」を入力します。「’」より後ろの文字はすべてコメントとして扱われ、プログラムの実行に影響しません。ただし、コメントは1行ごとに有効なので、改行した行にもメモを残したい場合は、その行の先頭にあらためて「’」を入力する必要があります。

Sub セルに色を塗り罫線を引く()
    Range("A1:B2").Borders.LineStyle = xlContinuous '罫線を引きます
    Range("A1:B2").Interior.Color = RGB(200, 200, 200) '色を塗ります
End Sub

コツ②:長い一文は「 _」で改行する

VBAのコードを書いていると、条件やプロパティの指定が増えて一行がどんどん長くなってしまうことがあります。横に長いコードは画面の外にはみ出してしまい、可読性が下がる原因になります。

このようなときは、コードの途中で改行して見やすく整理しましょう。ただし、文章のように好きな位置で改行するとエラーになってしまいます。改行したい位置に「半角スペース+アンダーバー( _)」を入力すれば、見た目は複数行でも1つの命令として実行されます。単語の途中で区切ると読みにくくなるため、区切りの良い位置で改行するのがポイントです。

Sub セルに色を塗り罫線を引く()
    Range("A1:B2").Borders.LineStyle _
    = xlContinuous '罫線を引きます
    Range("A1:B2").Interior.Color _
    = RGB(200, 200, 200) '色を塗ります
End Sub

コツ③:短い処理は「:」で1行にまとめる

コツ②とは逆に、1行ずつのコードが短く、内容的にもまとまりがある場合は、複数行を1行に結合したほうがすっきり見えることがあります。

複数の命令を1行にまとめるには、命令と命令の間にコロン「:」を入力します。下記の例では、罫線を引く処理と色を塗る処理をコロンでつなぎ、1行で記述しています。

Sub セルに色を塗り罫線を引く()
    Range("A1:B2").Borders.LineStyle = xlContinuous: Range("A1:B2").Interior.Color = RGB(200, 200, 200)
End Sub

コツ④:Withステートメントで重複をまとめる

同じセルやオブジェクトに対して複数の処理を行う場合、毎回「Range(“A1:B2”)」のように対象を指定すると、コードが長くなり重複も増えてしまいます。そこで使いたいのが「Withステートメント」です。

Sub セルに色を塗り罫線を引く()
    With Range("A1:B2")
        .Borders.LineStyle = xlContinuous '罫線を引きます
        .Interior.Color = RGB(200, 200, 200) '色を塗ります
    End With
End Sub

「With 対象」と書いてから、対象に対する処理を「.(ピリオド)」から始めて記述し、最後に「End With」で締めくくります。こうすることで対象の指定を省略でき、コードがすっきりと整理されます。同じセルやシートに対する処理が複数ある場合は、積極的にWithステートメントを活用しましょう。

マクロがうまく動かないときは

コードを書いていると、入力ミスや構文の誤りによって「コンパイルエラー」が表示されることがあります。エラーメッセージには修正のヒントが含まれているので、慌てずに該当箇所を確認することが大切です。コンパイルエラーの具体的な原因と対処法は、別記事で詳しく解説していますので、あわせてご覧ください。

また、作成したマクロをボタンクリックで実行できるようにしておくと、毎回VBEを開かなくてもワンクリックで処理を実行できて便利です。マクロをボタンに割り当てる手順はこちらの記事で紹介しています。マクロの記録機能を使ってコードの基本形を作りたい方はマクロの記録の使い方もあわせてご確認ください。

まとめ

Excel(エクセル)のマクロは、自分だけでなく他の人が見ても理解しやすいように書くことが基本です。今回紹介した「コメントアウト」「改行」「行の結合」「Withステートメント」の4つのコツを意識するだけでも、コードの見た目と可読性は大きく変わります。きれいで読みやすいコードを書く習慣は、そのままVBAのスキルアップにもつながりますので、ぜひ日々のマクロ作成に取り入れてみてください。

このテーマの関連記事はこちら