【VBA】For Each使い方の基本とは?初心者が必ず覚えたい4つのパターン

【VBA】For Each使い方の基本とは?初心者が必ず覚えたい4つのパターン

 

1行目から100行目まで編集する作業を自動化したい。。。毎日処理している同じような繰り返し作業を自動化したい。。。

 

こんな問題はVBAのFor Each分を使えばすぐに解決できます。

 

業務内容に合わせてFor Each文を導入すれば、今まで何時間もかかっていた繰り返し作業をほんの数秒で完了させることが可能です。

この記事では、

配列操作からセル範囲処理、コレクション操作まで、実際に動かせるコードと共に段階的にFor Each文の使い方を解説

しています。

 

大量のデータをまとめて処理するマクロを作ってエクセル業務の効率をアップさせましょう。

 

広告

【VBA】For Each文とは?基本の構文と仕組みを理解しよう

For Each文は、VBAでオブジェクトやデータを効率的に処理するための繰り返し処理文です。

 

For Each文と似たような処理をするFor Next文と比べて、

インデックス番号を気にせずに配列や集合データを扱えるためコードが簡潔で読みやすくなる

という特徴があります。

 

エクセル作業の効率化に欠かせない機能なので自由に扱えるようにしましょう。

 

For Each文の基本構文

For Each文の基本的な書き方は、変数とオブジェクトを指定するだけの簡単な構文です。

 

For Eachの基本構文がこちら

For Each 変数 In オブジェクト
処理
Next

 

始まりを「For Each 変数 In オブジェクト」の形で記述し、処理が終わったら「Next」で閉じます。

 

ワークシートのセル範囲をFor Each文で処理するサンプルコードがこちら

Sub BasicForEach()
Dim cell As Range
For Each cell In Range("A1:A5")
cell.Value = "処理済み"
Next cell
End Sub

 

上記のコードは、

A1からA5までの各セルに「処理済み」というテキストを入力する

という内容です。

 

変数cellが各セルを順番に参照し、自動的に次のセルへ移動していきます。

 

For Next文との違いとメリット

For Each文とFor Next文の最大の違いは、

インデックス番号の管理が不要なこと

です。

 

For Next文では「i=1 to 5」のように数値を指定する必要がありますが、For Each文では対象オブジェクトを直接指定するだけ。

これにより、配列の要素数を事前に調べる手間が省け、コードの可読性が向上します。

 

For Each文とFor Next文を比較するサンプルコードがこちら

' For Next文の例
For i = 1 To 5
Cells(i, 1).Value = "データ"
Next i
' For Each文の例
For Each cell In Range("A1:A5")
cell.Value = "データ"
Next cell

 

上記のコードはどちらも

A1セルからA5セルに「データ」というテキストを入力する

という内容です。

 

For Each文を使った方が、「処理対象が明確になる」「バグの発生リスクが軽減される」というメリットがあります。

 

For Each文が使える対象オブジェクト

For Each文は、Excelの様々なオブジェクトコレクションに対応しています。

主な対象オブジェクトコレクションがこちら

  • Rangeオブジェクト
  • Worksheetsコレクション
  • Workbooksコレクション
  • 配列
  • Dictionaryオブジェクト

 

これらのオブジェクトは全て「コレクション」と呼ばれる複数の要素を持つデータ構造で、For Each文による反復処理が可能です。

 

' ワークシートコレクションの例
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = ws.Name
Next ws

 

上記のコードは

マクロを設定しているブックの全てのワークシートのA1セルにシート名を入力する

という内容です。

 

このように、For Each文は単純なセル範囲から複雑なオブジェクト階層まで、幅広い対象に適用できる柔軟性を持っています。

 

【パターン1】配列操作でのFor Each使い方

配列操作でのFor Each文は、データ処理の基本中の基本です。

配列の各要素を順番に処理する際、インデックス番号を意識せずに済むため、コードが直感的になります。

 

配列とFor Each文の組み合わせは処理速度が速いので大量のデータを扱うようなブックへの導入がおすすめです。

 

一次元配列での基本的な使い方

一次元配列でのFor Each文は、最もシンプルで理解しやすい形です。

配列の各要素を順番に取り出して処理を行うことができます。

 

配列とFor Each文を組み合わせた基本的なサンプルコードがこちら

Sub Array1DExample()
Dim fruits As Variant
Dim item As Variant
fruits = Array("りんご", "バナナ", "オレンジ", "ぶどう")

For Each item In fruits
Debug.Print "果物: " & item
Next item
End Sub

上記のコードは、

果物の名前を格納した配列を作成し、各要素をメッセージボックスで表示する

という内容です。

 

実行結果がこちら

配列とFor Each文を組み合わせた基本的なサンプルコードの実行結果

 

配列の要素数を事前に知る必要がないため、動的にデータが変化する場面でも安心して使用できます。

 

二次元配列での活用方法

二次元配列でのFor Each文は、表形式のデータ処理に威力を発揮します。

セル範囲から取得したデータを配列として処理することが可能です。

 

二次元配列を作成し、各要素を順番に処理するサンプルコードがこちら

Sub Array2DExample()
Dim data As Variant
Dim item As Variant
data = Array(Array("A1", "B1", "C1"), Array("A2", "B2", "C2"))

For Each item In data
Debug.Print "行データ: " & Join(item, ", ")
Next item
End Sub

 

上記のコードは、

二次元配列の各行を順番に処理し、イミディエイトウィンドウに行データを表示する

という内容です。

 

実行結果がこちら

二次元配列を作成し、各要素を順番に処理するサンプルコードの実行結果

 

業務内容に合わせて応用すれば複雑な表データも効率的に処理できます。

 

動的配列での実践例

動的配列は、実行時にサイズが決まる配列で、ReDim文と組み合わせて使用します。

For Each文を使用することで、配列のサイズを気にせずに全要素を処理することが可能です。

 

動的配列とFor Each文を組み合わせたサンプルコードがこちら

Sub DynamicArrayExample()
Dim numbers() As Integer
Dim i As Integer
ReDim numbers(1 To 5)
For i = 1 To 5
numbers(i) = i * 10
Next i
For Each item In numbers
Debug.Print "値: " & item
Next item
End Sub

上記のコードは、

ユーザーの入力に基づいて動的配列を作成し、For Each文で繰り返し結果を表示する

という内容です。

 

実行結果がこちら

動的配列とFor Each文を組み合わせたサンプルコードの実行結果

 

動的配列でもFor Each文を使用することで、柔軟なデータ処理が可能になります。

 

【パターン2】Rangeオブジェクトでの For Each使い方

エクセル業務の効率化において、RangeオブジェクトでのFor Each文の活用は必須ともいえるくらい重要です。

 

セル範囲を指定して各セルに対して同じ処理を実行できるため、データの一括処理や条件付き書式設定などに広く活用されます。

手動では時間のかかる作業もFor Each文を使えば瞬時に完了させることができるので、大量のデータを扱う業務への導入は必須です。

 

セル範囲を順次処理する方法

セル範囲の順次処理は、For Each文の最も基本的な使い方です。

指定した範囲内の各セルに対して、同じ処理を自動的に実行します。

 

指定するセル範囲をFor Each文で繰り返し処理するサンプルコードがこちら

Sub ProcessCellRange()
Dim cell As Range
For Each cell In Range("A1:A10")
If cell.Value = "" Then
cell.Value = "未入力"
cell.Interior.Color = RGB(255, 255, 0) ' 黄色に着色
End If
Next cell
End Sub

上記のコードは、

A1からA10までの範囲で、空白セルに「未入力」というテキストを入力するし背景色を黄色にする

という内容です。

 

実行結果がこちら

指定するセル範囲をFor Each文で繰り返し処理するサンプルコードの実行結果

 

空白セルを視覚的に識別しやすくなり、データ入力の漏れを防げます。

 

大量にあるデータから空欄セルを検索し目立たせる処理の完全自動化が可能です。

 

複数セル範囲での一括操作

複数のセル範囲を同時に処理する場合、Unionメソッドを使用して適切にセル範囲を結合しましょう。

これにより、

飛び飛びのセル範囲でも効率的な処理が可能

になります。

 

Unionメソッドを活用した複数セル範囲を一括操作するサンプルコードがこちら

Sub ProcessMultipleRanges()
Dim cell As Range
Dim targetRange As Range

Set targetRange = Union(Range("A1:A5"), Range("C1:C5"))

For Each cell In targetRange
cell.Font.Bold = True
cell.Value = cell.Value & " (処理済み)"
Next cell
End Sub

上記のコードは、

A列とC列の特定の範囲をUnionメソッドで結合し、For Each文で同時に処理する

という内容です。

 

実行結果がこちら

Unionメソッドを活用した複数セル範囲を一括操作するサンプルコードの実行結果

 

このように、不連続なセル範囲でも一つのFor Each文で処理できるため、コードの簡潔性が保たれます。

 

条件分岐と組み合わせた実用例

条件分岐とFor Each文を組み合わせることで、より実用的な処理が可能になります。

 

IF関数とFor Each文を組み合わせて条件によって背景色を変化させるサンプルコードがこちら

Sub ConditionalProcessing()
Dim cell As Range
For Each cell In Range("B2:B20")
If IsNumeric(cell.Value) Then
If cell.Value >= 100000 Then
cell.Interior.Color = RGB(0, 255, 0) ' 緑色
ElseIf cell.Value >= 50000 Then
cell.Interior.Color = RGB(255, 255, 0) ' 黄色
Else
cell.Interior.Color = RGB(255, 0, 0) ' 赤色
End If
End If
Next cell
End Sub

上記のコードは、

B2セル~B20セルの範囲で数値が100000以上なら緑、5000以上なら黄色、5000未満なら赤色にする

という内容です。

 

実行結果がこちら

IF関数とFor Each文を組み合わせて条件によって背景色を変化させるサンプルコードの実行結果

 

 

このコードは、売上金額に応じて自動的に色分けを行い、データの可視化を実現します。

 

【パターン3】コレクション操作でのFor Each使い方

コレクション操作でのFor Each文は、Excel内の複数のオブジェクトを効率的に管理する手法です。

 

ワークシートやワークブック、図形オブジェクトなど、同じ種類のオブジェクトが集まったコレクションを一括処理できます。

これにより、複数のファイルやシートに対する操作の自動化が可能です。

 

ワークシートコレクションの処理

ワークシートコレクションの処理では、ワークブック内の全てのシートに対して同じ処理を実行できます。

シート数が多いワークブックでも、いちいちシートを切り替えることなく効率的に複数シートの処理が可能です。

 

ワークシートコレクションとFor Each文を組み合わせたサンプルコードがこちら

Sub ProcessAllWorksheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = "更新日: " & Date
ws.Range("A1").Font.Bold = True
ws.Range("A1").Interior.Color = RGB(200, 200, 200)
Next ws
End Sub

上記のコーどは、

全てのワークシートのA1セルに現在の日付を表示する

という内容です。

 

ワークブック内の全シートに統一した書式で日付が表示されるので、いちいちシートを切り替えて編集する必要はありません。

 

業務内容に合わせてアレンジすれば確実にエクセル業務の効率化に繋ります。

 

ワークブックコレクションの活用

ワークブックコレクションの処理では、現在開いている全てのワークブックに対して操作を行えます。

 

「個人スケジュールブックの編集内容を職場スケジュールに反映させる」「請求書ブックの編集内容を領収書ブックに反映させる」、などのような活用方法があります

 

 

ワークブックコレクションとFor Each文を組み合わせたサンプルコードがこちら

Sub ProcessAllWorkbooks()
Dim wb As Workbook
Dim fileList As String

For Each wb In Application.Workbooks
If wb.Name <> ThisWorkbook.Name Then
wb.Save
fileList = fileList & wb.Name & vbCrLf
End If
Next wb

MsgBox "保存したファイル:" & vbCrLf & fileList
End Sub

上記のコードは、

現在のワークブック以外の全てのワークブックを保存し、処理結果を表示する

という内容です。

 

大量のファイルを同時に扱う際の作業効率が大幅に向上します。

 

まとめて複数のブックを開いてエクセル業務をこなすことがある方におすすめです。

 

グラフオブジェクトなどの操作

グラフオブジェクトや図形オブジェクトのコレクションも、For Each文で効率的に処理できます。

 

グラフオブジェクトとFor Each文を組み合わせたサンプルコードがこちら

Sub ProcessAllCharts()
Dim cht As ChartObject
For Each cht In ActiveSheet.ChartObjects
cht.Chart.HasTitle = True
cht.Chart.ChartTitle.Text = "月次売上推移 - " & Date
cht.Chart.ChartTitle.Font.Size = 12
cht.Chart.ChartTitle.Font.Bold = True
Next cht
End Sub

 

上記のコードは、

アクティブシート内全てのグラフオブジェクトのタイトルを統一する

という内容です。

 

このように、シート内の全てのグラフに対して統一した書式設定を一括で行えるため、資料作成の効率化に大きく貢献します。

 

【パターン4】実践的なFor Each使い方と組み合わせ技

実践的なFor Each文の使用では、単体での処理よりも他の制御構造との組み合わせが重要です。

条件分岐、ネスト処理、エラーハンドリングなどと組み合わせることで、より複雑で実用的な処理が可能になります。

 

これらの組み合わせ技術が処理の精度と安定性を大幅に向上させ、どんなエクセル業務にも対応できるマクロになります。

 

If文との組み合わせによる条件処理

If文とFor Each文の組み合わせは、データの条件付き処理で最も頻繁に使用されます。

特定の条件を満たすデータのみを抽出したり、条件に応じて異なる処理を実行することが可能です。

 

If文とFor Each文の組み合わせて売上データの分析をするサンプルコードがこちら

Sub ConditionalDataProcessing()
Dim cell As Range
Dim totalSales As Double

For Each cell In Range("C2:C100")
If IsNumeric(cell.Value) And cell.Value > 0 Then
If cell.Offset(0, -1).Value = "東京" Then
cell.Interior.Color = RGB(0, 255, 0) ' 緑色
totalSales = totalSales + cell.Value
ElseIf cell.Offset(0, -1).Value = "大阪" Then
cell.Interior.Color = RGB(255, 255, 0) ' 黄色
End If
End If
Next cell

Range("E1").Value = "東京合計: " & totalSales
End Sub

上記のコードは、

地域別の売上データを色分けし、東京地域の合計を計算する

という内容です。

 

 

複数のFor Each文のネスト処理

ネストしたFor Each文を使用することで、多次元的なデータ処理が可能になります。

たとえば、

全てのワークシートの全セルを処理する、開いているワークブックの特定にセル範囲を処理する、

といった複雑な処理が可能です。

 

全てのワークシートの特定のセル範囲を処理するサンプルコードがこちら

Sub NestedForEachExample()
Dim ws As Worksheet
Dim cell As Range

For Each ws In ThisWorkbook.Worksheets
For Each cell In ws.Range("A1:J10")
If cell.Value = "検索対象" Then
cell.Offset(0, 1).Value = "発見 - " & ws.Name
cell.Interior.Color = RGB(255, 0, 0)
End If
Next cell
Next ws
End Sub

上記のコードは、

全てのワークシートを対象とし、A1セルからJ10セルの範囲で「検索対象」というテキストを検索し、ヒットした場合は1つ右のセルに「発見-シート名」を入力する

という内容です。

 

実行結果がこちら

全てのワークシートの特定のセル範囲を処理するサンプルコードの実行結果

 

このネスト処理により、いちいちシートを切替せずにワークブック全体から特定の値を検索することができます。

 

エラーハンドリングとの組み合わせ

エラーハンドリングとFor Each文の組み合わせは、安定したプログラム実行に不可欠です。

予期しないデータや処理エラーに対応することで、プログラムの信頼性が向上します。

 

エラーハンドリングとFor Each文を組み合わせたサンプルコードがこちら

Sub ErrorHandlingExample()
Dim cell As Range
Dim errorCount As Integer

On Error Resume Next

For Each cell In Range("A1:A50")
If IsNumeric(cell.Value) Then
cell.Value = Round(cell.Value / 1000, 2)
If Err.Number <> 0 Then
errorCount = errorCount + 1
cell.Interior.Color = RGB(255, 0, 0)
Err.Clear
End If
End If
Next cell

On Error GoTo 0

If errorCount > 0 Then
MsgBox "エラーが発生したセル数: " & errorCount
End If
End Sub

上記のコードは、

数値の変換処理でエラーが発生した場合に、に処理を継続しエラー箇所を記録する

という内容です。

 

関連記事「エラーを無視する方法」では、On Error Resume Nextの使い方と注意点が詳しく紹介されています。

 

For Each文と For Next文の使い分け方法

似たような処理をするFor Each文とFor Next文ですが、それぞれに「得意な処理」「苦手な処理」があります。

適切な使い分けにより、コードの可読性と実行速度の両方を向上させることが可能です。

どんなエクセル業務にも対応できるよう、それぞれの特徴をしっかり把握しておきましょう。

 

処理速度の比較と選び方

繰り返し処理をするVBAで重要なポイントは処理速度の速さです。

For Each文とFor Next文ではどちらの方が処理速度が速いのか検証してみました。

 

 

For Each文とFor Next文の処理速度が比較できるサンプルコードがこちら

Sub SpeedComparison()
Dim startTime As Double
Dim i As Integer
Dim cell As Range

' For Next文での処理
startTime = Timer
For i = 1 To 10000
Cells(i, 1).Value = i
Next i
Debug.Print "For Next: " & (Timer - startTime) & "秒"

' For Each文での処理
startTime = Timer
For Each cell In Range("B1:B10000")
cell.Value = cell.Row
Next cell
Debug.Print "For Each: " & (Timer - startTime) & "秒"
End Sub

上記のコードは、

タイマー関数を使ってFor Each文の処理にかかる時間、For Next文の処理にかかる時間をイミディエイト欄に表示する

という内容です。

 

実行結果がこちら

For Each文とFor Next文の処理速度が比較できるサンプルコードの実行結果

 

一般的にはFor Next文の方が処理速度が速い。とされているようですが検証結果ではFor each文の方が速いという結果になりました。

 

処理速度の違いはほとんど感じられないと思います。

 

逆順処理が必要な場合の対処法

逆順処理が必要な場合、For Each文では直接的な対応が困難です。

この場合はFor Next文を使用し、Step -1を指定して逆順処理を行います。

 

データの削除処理で逆順処理をするサンプルコードがこちら

Sub ReverseProcessing()
Dim i As Integer
Dim lastRow As Integer

lastRow = Range("A1").CurrentRegion.Rows.Count

' 逆順で行を削除(For Next文を使用)
For i = lastRow To 2 Step -1
If Cells(i, 1).Value = "削除対象" Then
Rows(i).Delete
End If
Next i
End Sub

上記のコードは

最終行から値が入力されているセルを検索し、A列に「削除対象」というテキストが入力されている場合、行を削除する

という内容です。

 

Forward方向での削除は、行番号がずれてしまい、正しい処理が行えないため逆順処理が必須です。

 

インデックスが必要な場合の代替案

For Each文でインデックスが必要な場合、カウンター変数を別途用意する方法があります。

 

For Each文を使用しながら、行番号を取得するサンプルコードがこちら

Sub IndexWithForEach()
Dim cell As Range
Dim rowNumber As Integer

rowNumber = 1
For Each cell In Range("A1:A10")
cell.Value = "行番号: " & rowNumber
cell.Offset(0, 1).Value = "データ" & rowNumber
rowNumber = rowNumber + 1
Next cell
End Sub

5行目から10行目のコードは、

For Each文の処理後に変数rowNumberの数値を1つ増やし繰り返す

という内容です。

 

For Each文で繰り返した回数、回数を数値としてセルに入力する、

といった処理が可能です。

 

また、Rangeオブジェクトの場合、Rowプロパティを使用してより直接的にインデックスを取得できます。

 

Rowプロパティを繰り返し取得するサンプルコードがこちら

Sub DirectIndexAccess()
Dim cell As Range
For Each cell In Range("A1:A10")
cell.Value = "行: " & cell.Row & ", 列: " & cell.Column
Next cell
End Sub

上記のコードは、

A1セルからA10セルの範囲で「行数と列数」を表示する

という内容です。

 

実行結果がこちら

Rowプロパティを繰り返し取得するサンプルコードの実行結果

 

このように、For Each文でも工夫次第でインデックス情報を活用できます。処理の目的に応じて最適な方法を選択することが重要です。

 

 

VBA初心者が『For Each文を使った繰り返しVBA』を導入する方法

VBA初心者が『For Each文を使った繰り返しVBA』を導入する方法

 

VBAなんて扱ったことないけど、業務内容に合わせた『繰り返し処理をするVBA』を導入したい!

 

こんな問題を解決する方法がこちら

  • マクロの開発を外注に依頼する
  • マクロが設定されたエクセルファイルをダウンロードする
  • 参考書やネットでVBAスキルを身に付ける

 

VBAスキルを身に着ける前は、「マクロ開発の外注」で対応していましたが、

今では自分で効率化マクロをサクッと導入しちゃいます。

 

完成されたマクロを使ってエクセル業務を処理する

作業効率が2倍以上アップ!!

便利すぎて自分でもマクロを設定したいと考え始める

参考書やネットの情報でVBAスキルを身に付ける

マクロ開発を代行できる程のスキルを習得

 

 

VBAは

他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

という特徴があります。

 

外注した方が楽だけど、費用がかかる。自分で導入すれば費用は0円だけど時間がかかる。。

いずれにせよ、効率化マクロを導入できれば作業効率が飛躍的にアップするのは間違いありません。

 

あなたに合った方法で導入しちゃいましょう。

 

マクロ開発を外注に依頼する

マクロ開発を外注に依頼する方法は

VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法

です。

 

「こんなデータ抽出作業を自動化したい」「作った資料データ分析を自動化したい」「大量のデータから特定の数値だけを取得したい」

こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

 

Left Caption

ガッツポーズの人

完成まで本業に集中できるので効率的

 

 

デメリットは、費用がかかることだけ。

開発内容、依頼先によってかかる費用は大きく異なります。

私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

 

Left Caption

疑問がある人

ちょっと高くない。。。

 

ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。

開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、

費用が安い!スピード納期!!

でやらせてもらっています。

 

ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。

 

ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。

 

 

マクロが設定されたエクセルファイルをダウンロードする

VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』することで、

すぐに使っているエクセルにマクロを導入することができます。

 

VBA初心者でも形になっているマクロをゲットできる、費用が安い、

というメリットがあります。

しかし、

想定するマクロを見つけることが難しい、業務内容に合わせるためのアレンジが必要

というデメリットもあります。

 

Left Caption

ガッツポーズの人

お目当てのマクロが見つかればラッキー

 

個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。

 

今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。

 

 

 

参考書やネットでVBAスキルを身に付ける

先程も紹介しましたが、

VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

プログラミングです。

 

言い換えると、

情報量が豊富なので自分で勉強できちゃう

ということです。

 

私のVBAスキルはほとんど独学で身に付けたもので、

考えた処理のほとんどをVBAで表現できるレベルにまで到達した!

と思っています。

 

私の作ったマクロをプロのプログラマーが見れば、

お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!

と感じるはずです。

 

でも、

私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?

 

独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、

業務内容に合ったマクロを開発できるようになれます。

 

独学でVBAスキルを身に付けるコツは、

エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる

です。

 

とは言っても、全くの知識0の方は何をすればいいかわからないですよね。

 

VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。

 

VBAの知識0の方でもすいすい読み進められる内容になっています。

やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。

 

実際に私はこの参考書を読んでからVBAの勉強を始めました。

 

Left Caption

ひらめく人

VBA学習スタートのきっかけをくれた参考書


 

 

VBAの魅力を発見した後は、

ひたすら自動化したい内容のコードを書くだけ

です。

 

【VBAFor Each】【VBA 繰り返し庶路】でネット検索すれば知りたいコードをすぐにゲットできます。

 

実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると

自然といろんなマクロが作れるようになっているはずです。

 

VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。