Excel

【Excel-VBA活用集】誰でも簡単に数行プログラミング

皆さんはエクセルのマクロで作業を自動化した経験はあるでしょうか。

今まで苦労して作業していたものが、たった数行で自動化できると仕事が一気に楽になります。

数が少なければ一つ一つ処理していけば良いですが、長時間にわたる単純作業は非常に非効率です。

少しでもマクロを使ったり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
Mickey@コーヒー好きエンジニア

【製造業×プログラミング×AI】Python/VBAを活用した業務改善、Streamlit/Plotlyを活用したWebアプリ開発について初心者向けに発信中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信|ココナラではプログラミングに関する相談,就職/転職やコーヒーに関する相談などのサービスをやっています