エクセルVBA初心者が「マクロの記録」を使わなくても、
自力でマクロが書けるようになるための情報をまとめました。
マクロの記録のメリット・デメリット
メリット
マクロの記録とは、自分がExcelを操作する手順をVBAのプログラムに変換して記録してくれる機能です。
自分でVBAを書かなくても、マクロの記録で作成したマクロを使用することで
簡単に作業を自動化できるのがメリットです。
デメリット
一見、便利と思えるマクロの記録ですが、下記のようなデメリットもあります。
- 複雑な処理が出来ない
- 柔軟性が皆無
まず、マクロの記録で作成したマクロでは、条件分岐や繰り返し処理などを使った複雑な処理が出来ません。
そのため、マクロの記録で作成したプログラムは、
作業内容によっては、処理したいエクセルの内容が変わると正常に動かなくなったりします。
なので、誰かに自分が作成したマクロを渡して、それを使って仕事を進めたいなど、
本格的な業務改善を進めようとするにはちょっと力不足な感じです。
一方で、VBAを使ったプログラミングをきっちり覚えれば、
なかなか融通の利く自動化ツールを作成する作成することも可能です。
本格的に仕事の自動化をしようと思うのであれば、脱マクロの記録は必須。
自力でVBAを書くという道は避けては通れません。
自力でVBAを書くための基本まとめ
大まかな開発の進め方
- 自動化したい作業の明確化
- マクロ以外の解決策の検討
- 小さく試す
これはマクロ開発を始める際の心得のようなものです。
▼無理のないマクロ開発を初心者がやり遂げるための方法を提案しています。
マクロで仕事を自動化したい人が一番初めにやるべき事【Excel VBA入門】
VBAのはじめ方
- VBAを書くためのExcelの基本設定
- セルに文字列を入力する簡単なプログラムを書く
- 書いたプログラムを実際に実行してみる
▼マクロ開発に必要なエクセルの初期設定から、実際に初めてのマクロを動作させるまでの具体的な手順を紹介しています。
【Excel VBA入門】マクロ初心者が知識ゼロからセルにHello Worldと自動入力するまで【全手順を解説】
押さえておきたい基本的な機能や文法
自力でVBAを書くために最低限この辺は押さえておきたい!
という基本的な機能や文法を列挙します。
イミディエイトウィンドウ
書いたプログラムの出力をさっと確認したいときに便利な機能です。
▼Debug.Print というコマンドを使って、Hello Worldという文字列を出力するプログラム。
Debug.Print "Hello World"
赤枠部分がイミディエイトウィンドウにHello Worldを出力した実行結果になります。
こまめにプログラムが正しく動いているか確認しながら開発を進めたい時など、
毎回セルに出力して確認することもできますが、それだと毎回画面の切り替えが必要になって面倒…。
そんな時に役に立つ機能です。
▼使い方などの詳細はこちらに書きました!
イミディエイトウィンドウの表示方法・使い方を解説【Excel VBA入門】
変数
変数とは、データを入れておく箱のようなものです。
変数で大切なのは、変数名と変数の型です。
変数名は基本的に自分で好きな文字列で命名することができ、
変数の型は、その変数がどんなデータを入れる箱なのかを定義します。
例えば、下記のように
Dim money As Long
Dim name As String
moneyは整数型(Long)
nameは文字列型(String)として
Dim 変数名 As 変数の型
の形で変数を宣言することで、
moneyやnameをそれぞれの型のデータを入れる箱として使えるようになります。
変数の宣言をしたら、次は変数に具体的なデータを代入します。
money = 200
name = "げんじ"
moneyには200という整数が
nameには”げんじ”という文字列が格納されています。
これを、例えば、
Debug.Print name & "は" & money & "円拾った。"
のように、書くことで、
「げんじは200円拾った。」
という文字列をイミディエイトウィンドウに出力することが出来ます。
条件分岐
IF 条件式 Then
(条件式 = 真 の時の動作を書く)
Else
(条件式 = 偽 の時の動作を書く)
End If
条件分岐を使うことで変数に入っているデータによって、
プログラムの動作を変えることが出来ます。
例えば、下記のように変数moneyに入っている値によって
出力する文章を変えることができます。
If money >= 100 Then
Debug.Print "ジュースが買えます。"
Else
Debug.Print "ジュースが買えません。"
End If
▼money = 200 なので、「ジュースが買えます。」と出力されます。
繰り返し処理
1 + 2+ 3 + ・・・ + 999 + 1000
という計算をプログラムで書きたいとき、
1 ~ 1000までの足し算を地道に書いていっても良いですが、
けっこう骨の折れる作業になります。
そこで有効なのが繰り返し処理。
繰り返し処理で、1 + 2+ 3 + ・・・ + 999 + 1000 の計算をやると下記のようになります。
For i = 1 To 1000
sum = sum + i
Next i
メッセージボックス
メッセージボックスは、
下記のようなダイヤログボックスをポップアップさせるコマンドです。
プログラムの実行完了の通知などを、最後に出すことで
実行完了した事が分かりやすくなります。
これが無いと、いつマクロが完了したのか分かりづらいので、
地味に便利だったりします。
コメント