皆さんはエクセルのマクロで作業を自動化した経験はあるでしょうか。
今まで苦労して作業していたものが、たった数行で自動化できると仕事が一気に楽になります。
数が少なければ一つ一つ処理していけば良いですが、長時間にわたる単純作業は非常に非効率です。
少しでもマクロを使ったりVBAを勉強する時間に当てて、いろいろ試してみて見ると長期的にみればお得かなと思います。
そこで、本記事ではエクセルマクロ、VBA初心者向けにいくつかサンプル例を紹介します。
If文を使った例文
多彩な条件を使ったIf文で複雑な処理も可能に!
メッセージボックスを活用して瞬時に情報を得る
条件を満たしたらメッセージボックスを表示
Dim sample as String
If Len(Cells(1,1))=0 Then
Msgbox “データがありません”
End if
★Andと組み合わせる
If Len(Cells(1,1))= 0 And Len(Cells,(2,1)) = 0 Then
Msgbox “データがありません”
End if
★Orと組み合わせる
If Len(Cells(1,1))= Empty Or Len(Cells,(2,1)) = Empty Then
Msgbox “データがあります”
End if
ifで使える記号
<>・・・等しくない
=・・・等しい
And・・・かつ
Or・・・または
Empty・・・未設定のデータ
Null・・・空のデータ
【使える関数】
Len()・・・文字列の長さを取得
For文を使った例文
自動化に必須!単純な繰り返し作業に効く
たった数行で効果は無限大
Dim sample as String
For i = 1 To 10
Cells(i,1).Value = Empty
Next
★間隔を指定する時はStepを使う
For i = 1 to 10
Step 2
★途中で中断したい場合
For i = 2 To 10
If Cells(i,1) = Null Then
Stop
End If
Next
Forで使える記号
Empty・・・未設定のデータ
Null・・・空のデータ
Go to 文を使った例文
自動化に必須!条件が成立したら終了する時に
For,Ifのお供に使える
Dim sample as String
For i = 1 To 10 Then
If sample =is Nothing Then
Goto Line1
End if
Cells(i,1).Value = Empty
Line1:
Next★データがない時を条件とする時
○○= is Nothing
名前の定義を使って楽々参照
参照位置の変更に対応できる
コードがシンプルになる
「名前の定義」を使ってセルに名前をつけて参照
Dim sample as String
sample=Range(“セルの名前”).value
★セルの座標を取得する
x=range(“セルの名前”).column
y=range(“セルの名前”).Row
時間短縮
エクセルの計算時間を早くする
画面のちらつきを防止する
待ち時間を短縮する
画面の更新を止める
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
画面の更新を再開する
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With