Excelマクロを書けるようになると、仕事の幅は広がります。 簡単なところから書いてみるのがおすすめです。(今日の記事はマクロに興味がある方向けの記事です。)
Excelマクロでできること
Excelには、マクロという機能があります。 まずは今日のテーマでもあるマクロについてカンタンにご説明します。
マクロって?
仕事でExcelを使うこと多いかと思います。 そのExcelで入力したり、コピペするということを何度もやるというのは、それなりに時間がかかりますし、手間もかかります。 そこでマクロの登場です。 Excelマクロというのは、その処理をExcelにお願いして自動化するためにプログラムを書いていくことです。 このExcelマクロ、壁が高いように感じるのではないかと思います。私がそうでした。 でも、基本的な処理ならすぐにでも体験できますので、興味ある方は実際に書いてみるのがおすすめです。 かくいう私も先日、VBAエキスパートの試験を受けてきました。 VBAエキスパートBasic(ベーシック)に合格するまでにやった勉強方法 | GO for IT 〜 税理士 植村 豪 Official Blog まずは、Excelの設定を変える必要があるので、こちらの記事を参考に準備をしておきましょう。 →Excel VBA超入門 マクロを書いてみたい人集合! 仕事ときどきアウトプットがおすすめ | GO for IT 〜 税理士 植村 豪 Official Blog
カンタンなマクロを書いてみる
準備ができたら、マクロを書いてみましょう。 まずは、Excelの画面を開いたまま、Alt+F11を押して、VBE(Visual Basic for Editor)を開きます。 さらにAlt→I→Mと順番に押していくと、白い画面が表示されます。と同時に左側のツリーに標準モジュールというのが増えています。 これがいわゆるノートのような意味合いで、ここにマクロを書いていきます。
書き方としては、「Sub 〇〇()」に始まり、最後は「End Sub」で締めます。 この〇〇というのは、タイトルの意味合いで自由に決めることができるのですが、ルールがあり、
- 数字を頭にすることはできない
- 記号を使うことはできない
というルールがあります。 「Sub sample」と書いてみると、「End Sub」が自動で表示されるはずです。 あと、SubとSampleの間にはスペースを入れます。Tabキーかスペースキーを押しましょう。私はTabキー派です。 ここで表示されないとなると、設定がうまくできていない可能性があります。 下記の記事から設定を確認してみましょう。 Excel VBA超入門 マクロを書いてみたい人集合! 仕事ときどきアウトプットがおすすめ | GO for IT 〜 税理士 植村 豪 Official Blog Sub〇〇とEnd Subの間にマクロでやってほしいことを書いていきます。 次のように書いてみましょう。大文字小文字は考えなくても動きますが、読みやすさからセルの列(アルファベット)は大文字にしています。
1 |
Sub sample() Range("A3").Value = 1 Range("C3").Value = Range("A3").Value Range("C3").Font.Color = vbRed End Sub |
1行目に書いた「Range(“A3”).Value = 1」でA3セルに数字「1」が入力されます。
- 「.」→「の」
- 「Value」→「値」
- 「=」→「は」
と考えるとわかりやすいです。 同じように2行目以降もどうなるか予想して「実行」をしてみましょう。
Cells(行,列)を使った書き方
Rangeではなく、Cellsを使った書き方もあります。 Cellsを使う場合には、Cells(行,列)という感じで、Rangeを使って書くのとは、書き方が逆になるのと数字で表示する点が違います。 例えば、セルD5であれば、Cells(5,4)と書きます。4というのは「A,B,C,D…」で4番目だからです。 先ほどのRangeのケースと同じ動きをさせるには、次のように書きます。
1 |
Sub sample() Cells(3, 1) = 1 Cells(3, 3) = Cells(3, 1) Cells(3, 3).Font.Color = vbRed End Sub |
こちらのCellsだと列を数字にすることもあり、一瞬考えちゃうんですよね。(私は) 同じようにわかりにくい方は、列の数字部分を「”A”」のようにアルファベットに変えて書いても同じように動きます。ちゃんと「””」で囲まないとエラーになります。
1 |
Sub sample() Cells(3, "A") = 1 Cells(3, "C") = Cells(3, "A") Cells(3, "C").Font.Color = vbRed End Sub |
マクロでしかできない繰り返し処理
マクロでしかできないことの1つは繰り返し処理。 この繰り返し処理をやってみましょう。 繰り返し処理には「For〜Next」構文と変数を使います。 変数のイメージは箱。 この箱にデータを入れて、その値を増減させます。 ここでは変数を「i」として、「Dim i」で宣言し、次の「For i=」以下で「i」が3から12まで変わるよと言っています。 繰り返ししたい処理をForとNextで囲います。Nextを書き忘れるとやっぱりエラーになります。 この記述でどうなるか?を考えた上で「F5」を押してみましょう。
1 |
Sub sample() '■変数の宣言 Dim i '■繰り返し処理 For i = 3 To 12 Range("C" & i).Value = Range("A" & i).Value Range("C" & i).Font.Color = vbRed Next End Sub |
先ほどはセルC3でやっていたことが、セルC12まで繰り返し処理されます。本当に一瞬です。 この繰り返し処理はマクロ でないとできないことです。 私自身はマクロをやってよかった、特にひとりしごとには合っていると感じるので、興味のある方はこれを機に始めていただければ。 会計処理の効率化などにも応用できるものです。 節税か?お金か? Excelマクロを使った法人税のシミュレーション | GO for IT 〜 税理士 植村 豪 Official Blog
【編集後記】 昨日は午後からお客様訪問。新しいMacbookProの発表をよそにあるものを購入。到着が楽しみです。 【昨日の1日1新】 ※「1日1新」→詳細はコチラ みず穂の和み