Excel VBAはなぜ必要?

Excelは100万×6万

Excelの上下方向の番号を「行⁠」⁠、左右方向のアルファベットを「列」と呼ぶのは皆さんご存じと思います。では、この「行」と「列」はどれくらいの数が用意されているかご存じでしょうか?

最大の行数は1,048,576で、100万行超え。列数は最大で65,536です。ちなみに、一昔前のExcel 2003やExcel 2000では、最大行数は65,536で、最大列数は256でした。

「ビッグデータ」「⁠情報爆発」などの言葉を耳にすることがありますが、Excelで取り扱えるデータの量も、文字どおり桁違いになっているわけです。そんな途方もない量のデータを人力だけで何とかしようとすると、おのずと限界にぶち当たってしまいます。

手作業だけでは終わりません

そこでExcelユーザーに人気なのがExcel VBAです。Excelの操作を「マクロ」と呼ばれるコードでコントロールするものです。「⁠コントロール」というと抽象的ですが、簡単にいえば、「⁠合計しなさい」「⁠掛算しなさい」「⁠求めた値を別のExcelシートに書き込みなさい」「⁠その操作を〇〇行まで繰り返しなさい」などの操作に関する「命令」をExcelに与えるものです。Excel VBAは、プログラミング言語の一種と考えてもらって差しつかえありません。

Excel VBAの例をご覧いただきましょう。「⁠Excel VBAのコードの例」を見てください。

Excel VBAのコードの例
Sub InsertNextRow()
    Dim i As Long
    For i = 3 To _
      Range("A1").CurrentRegion.Rows.Count * 2 Step 2
        Cells(i, 1).EntireRow.Insert
    Next i
End Sub

このコードが何をするかというと、表に1行おきに行を挿入していきます。たとえば「表1」のような表があったとします。この「表1」に対して、先ほどのExcel VBAのコードを実行すると「表2」のようになります。

表1 元の表
表1 元の表
表2 Excel VBA 実行後の表
表2 Excel VBA 実行後の表

こういったExcel操作を、人に代わってミスなく、スピーディに実行してくれるのがExcel VBAです。

「こんなことくらいならExcel VBAを知らなくたって自分の手ですぐできるよ」と思った方もいらっしゃるでしょう。たしかに、今回の例のような小さな表であれば手作業で行を挿入してもあっという間に終わります。

ですが思い出してください。Excelの行数は最大で100万以上、列数だって6万以上です。「⁠データはお金になる」といわれる昨今、どこの会社でもデータを膨大に抱え込んでいます。そのおびただしいデータを活用しようと、Excelで整形したり集計したり加工したりの必要性が生じたらどうでしょう。手作業だけではいつまでたっても終わりません。Excel VBAを学ぶことの意味は、そんなところにあります。

ちなみに、「⁠行を挿入する操作」は必要なかったとしても、「⁠行を挿入するExcel VBA」を知っていれば、「⁠〇行おきにセルに背景色を塗る」「⁠〇行おきに罫線を引く」などの類似の操作を実現することはそれほど難しくありません。

業務でしたいこと、しなければならないことに応じて、Excelのあらゆる操作を「命令」に置き換えて自動的に実行してくれるのがExcel VBAです。