初めてのExcelマクロVBA

資料請求番号:SH45

Excelマクロの始め方 まとめ

本記事では、まだ一度もExcelマクロに触れたことのない人向けに、Excelマクロの始め方と
Excelマクロを使用する上での最低限の知識と文法を記したいと思います。

マクロを始めよう

ストーク

なぁ、シママ、最近・・・っーつか、研究室にいたころから、ずーっと「マクロ使えるようになったら便利やろうな」思ていたんやが・・・。
実際に便利なん?

シママ

うん!すごく便利よ!今までチマチマと同じことを何回も繰り返す作業がワンクリックでできるようになったりするからね!

ストーク

そうなんか・・・・。俺な、最初、マクロやってみよう思たときに、「マクロの記録」で作業記録させて、いざ同じ作業をマクロでやってみようと思って走らせてもバグっちまって、それでVBAの画面開いたら書いてあることワケ分からんくて、もうそれからやってられんくなっちゃって・・・・。

シママ

あ~・・・。「マクロの記録」を使って録画と再生みたいなやり方しているとそうなっちゃうよね・・・・。
違うのよ。マクロはね、自分でコード書くものなのよ。

ストーク

え~。そんな簡単に言うなよな。

シママ

まぁまぁ。マクロの始め方と簡単なプログラム教えてあげるから、マクロアレルギーをとりあえず克服しなよ♪

VBAの立ち上げ

シママ

マクロを始めるのはVisual Basic Application略してVBAを立ち上げなければいけないの。そのために、Excel画面の「表示」を選択し、「マクロの表示」をクリック。

ストーク

空白のボックスが出てきたたい。

シママ

そこにね、自分の書きたいマクロの名前を記入するのよ。今回は「test」としましょうか。それで作成ボタンを押してごらん。

ストーク

あ~せやせや。この画面たい。マクロの記録をし終わった後、この画面にワケ分からん文字いっぱい出て来てな。

シママ

マクロの記録をするとね、記録中にユーザーがやった操作をコード化してVBAに残すのよ。

シママ

それでね・・・・そのコードはハッキリ言って汚い・読みづらい・使いづらい。
だから、マクロの記録を録画再生するんじゃなくて、自分でコードを書いた方がいいのよ。

シママ

今、凄くシンプルにSub test()とEnd Subがあるでしょ?この間にコードを書いていくのよ。
testは自分で決めた名前ね。

セルに値を入れる

シママ

簡単な操作をやってみましょう。

シママ

そうね・・・

シママ

セルに値を入れるだけ。とか。こんなプログラムでどう?

※サンプルプログラムここから※

Sub test()

With Worksheets(“Sheet1”)
.Cells(2,3) = 1
End With

End Sub

※サンプルプログラムここまで※

ストーク

あ、これなら解読できそうだぞ・・・。
まずWith Worksheetsの後ろの(” ”)に対象とするワークシートを書くたいね。

シママ

そうそう!これでWith Worksheets~EndWithの間はそのワークシートでの作業になるわね。
一応、3行目を「Worksheets(“Sheet1”).Cells(2,3) = 1」と書いても同じ作業ができるのよ。

ストーク

なるほど。
.Cell(2,3)の前のドットはWorksheets(“Sheet1”)を省略した跡なんやな。この方がスッキリしていて読みやすい。

ストーク

.Cell(2,3)ってのは、2行目3列目・・・か。なんか、タテヨコこんがらがりそうたい。

シママ

そうね~。私もたまに間違えるんだけど、Cell(2,3)はC2セルに相当するのよ。
だから、アルファベット+数字の表記の反対と覚えればいいわね。
C2セルはCell(2,3)、D3セルはCell(3,4)、G8セルはCell(8,7)って具合にね。

ストーク

これ、Cell(2,3)に1を代入するプログラムなんやな。

シママ

そう。すご~く簡単。上の再生ボタン見たいなの押したら、C2セルに1と表示されるはずよ。

ストーク

おおっ!できたできた!

変数を定義して、セルの数値を変数に入れる

シママ

CとかC++とか、pythonとかrubyとか、他のプログラミング言語触ったことある?

ストーク

Cを一応一般教養課程で少し。

シママ

そっか。なら、変数を宣言するとか、代入するって言うのはわかるよね。
VBAでは「Dim num As Double」の様に変数を宣言するのよ。

ストーク

Dim [変数名] As [変数型]か?

シママ

そう!その通り!

シママ

そして・・・
num = .Cells(2,3)
って書いたら、numの値は?

ストーク

さっき、Cells(2,3)に1を代入したけん、今度はnumにそれを代入するから、
numの値は1たいね!

シママ

そう!その通り!じゃあ、このコードでnumに1が代入されているか確かめてみましょ♪

※サンプルプログラムここから※

Sub test()

With Worksheets(“Sheet1”)
.Cells(2,3) = 1
Dim num As Double
num = .Cells(2,3)
.Cells(4,3) = num*10
End With

End Sub

※サンプルプログラムここまで※

ストーク

これを動かしたら・・・・
.Cells(4,3) = num*10やから・・・。C4セルに10が入るはずや。

ストーク

おっ!ホンマに入った!

マクロの実行

シママ

マクロを作るとね、マクロのリストに作成したマクロの名前が表示されるのよ。

シママ

ここで実行ボタンを押して実行させてもいいんだけど、いちいち「表示」→「マクロ」ってやるのは面倒でしょう?だから、ワンクリックで実行できるようにするの。

ストーク

ふぅ~ん。

マクロボタンを作ろう

シママ

オートシェイプで四角とか丸とか作れるでしょ?

ストーク

ああ、よく研究プレゼンで使うやつな。

シママ

そうそう。それを作って右クリックすると「マクロの登録」って言うのを選べるのよ。これをクリックすると・・・

シママ

登録するマクロはどれか聞いてくる。testを登録するわね。

シママ

そしたら、登録したオートシェイプをクリックするだけでマクロが実行できるのよ。

おまけ

シママ

初めて使うプログラミング言語でやることと言えばこれよね!

つづきはこちら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です