資料請求番号: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を登録するわね。

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

初めて使うプログラミング言語でやることと言えばこれよね!
つづきはこちら
[blogcard url=”http://shimaphoto03.com/program/macro_for_if/”]
コメントを残す