[Excel VBA] たった2種類の組み合わせで誰でもプログラミング

プログラミングは難しくない!

プログラミングと聞いただけでどこか別の世界のお話で自分とは全く縁の無いものって思う人がたくさんいると思うけど、実はプログラミングはおおざっぱに言えばたった2種類の組み合わせで出来ているんだ。

 1つは条件分岐といって、例えばエクセルの表にお客さんの情報が入っているとして、株式会社だったらセルをオレンジ、そのほかだったらセルを水色にする、みたいな感じ。

 もう一つは繰り返し。さっきの例で言えば、セルの色を変えるのはその表にある全ての行に対して行うとしたら、データのある全ての行に対して色づけの処理を繰り返して行うということ。

 もう基本的にはこれだけ出来れば何でもできちゃう!

 条件分岐はもしかしたら使ったことがあるかもしれないけど、Excelの関数では iif という関数があるよ。Excelのプログラミング言語のVBAでは if と記述します。繰り返しは For とか Do とかいくつか書き方があるけど、とにかく決まった回数処理を繰り返すってこと。

 ↓こんなデータがあるとして、もしこれの顧客名に上のような条件で色づけした場合は、

プログラムのコードはこんな感じになるよ。

Sub ColoringCells()

'行数カウンター
Dim RowCounter As Integer
RowCounter = 2

'1列目が空白になるまでループ
Do Until Cells(RowCounter, 1) = ""

    '株式会社が名前についていたら、セルをオレンジ。ついてなければ白
    If InStr(1, Cells(RowCounter, 2), "株式会社") > 0 Then
        Cells(RowCounter, 2).Interior.ColorIndex = 45
    Else
        Cells(RowCounter, 2).Interior.ColorIndex = 2
    End If

    RowCounter = RowCounter + 1

Loop

End Sub

ここでは内容の詳しい説明はしないけど、たったこれだけのコードでセルの色づけが出来るんだ。

 途中にDo とか Ifとかあるのがわかるかな。そこで繰り返したり、条件分岐したりしているよ。

 実はこの内容が理解できるようになれば、あとは全てこれを応用するだけで、色々なことが出来ちゃうよ!

 例えば「株式会社」だったらオレンジの代わりに、数値が100以上だったら黄色にするとか、電話番号のところに文字が入っていたら保存させないとかね。

 Excelでやるプログラミングは大抵これみたいに、データを上から下まで全ての行をチェックして、何々だったら何々するみたいなのがほとんどだから、これさえわかってればもうExcelのVBAは70%はマスターしたも同然だよ。

 それでは詳しい説明はまた今度。

前回の投稿↓でプログラミングがいかに誰でも出来て簡単かを説明したけど、今回は実際にプログラミングをExcelの中に入れて、動かしてみよう!...