目標
サンプルプロシージャを利用して配列を利用してみる
配列の概要と利用方法
配列とは
配列とは複数の値を順番に保管することのできるデータ構造です。保管されるひとつひとつのデータの型は共通となります。配列には静的配列と動的配列の二つがあります。静的配列と動的配列については以下を参考にしてください。
![](https://howahowablog.com/wp-content/uploads/2022/12/EXCEL-VBA-配列(静的な配列)-320x180.jpg)
Excel VBA の 配列(静的配列)| 現役エンジニア&プログラミングスクール講師Excel VBA の配列(静的な配列)について解説しています。3部構成としている配列の記事の最初の記事となります。...
![](https://howahowablog.com/wp-content/uploads/2022/12/EXCEL-VBA-配列(動的な配列)-320x180.jpg)
Excel VBA の 配列(動的配列)| 現役エンジニア&プログラミングスクール講師Excel VBA の配列(動的配列)について解説しています。3部構成としている配列の記事のふたつめの記事となります。...
配列の利用に重要なステートメント、キーワード、関数
Dimステートメント
ReDimステートメント
Preserveキーワード
Array関数
Variant型
LBound関数
UBound関数
Eraseステートメント
サンプルプロシージャ
ワークシートの準備
サンプルプロシージャを利用するために任意のブックに次のようなシートを準備します。
Sheet1
![](https://howahowablog.com/wp-content/uploads/2022/12/配列サンプルプロシージャシート1.png)
Sheet2
![](https://howahowablog.com/wp-content/uploads/2022/12/配列サンプルプロシージャシート2.png)
Sheet3
![](https://howahowablog.com/wp-content/uploads/2022/12/配列サンプルプロシージャシート3.png)
Sheet4
![](https://howahowablog.com/wp-content/uploads/2022/12/配列サンプルプロシージャシート4.png)
以上のシートをを利用して複数のシートや複数のセルを配列を使って操作してみようと思います。
サンプルプロシージャ1
このプロシージャでは複数のシートを配列で取得して印刷プレビューを確認しています。
'まずオブジェクト型でシートオブジェクトを利用できる変数を準備します。
'これはFor Each文の中で利用します。
Dim st As Object
'Sheetsプロパティを利用して配列に入った複数のシートを取得します。
Sheets(Array("sheet1", "sheet2", "sheet3")).Select
Sub DynamicArray()
Dim st As Object
Sheets(Array("sheet1", "sheet2", "sheet3")).Select
For Each st In ActiveWindow.SelectedSheets
With st.PageSetup
.PrintArea = "C3:H6"
.Orientation = xlLandscape
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
End With
Next st
Sheets("sheet1").Activate
ActiveWindow.SelectedSheets.PrintOut Preview:=True
End Sub
実行結果
一枚目の印刷プレビューが表示されます。
![](https://howahowablog.com/wp-content/uploads/2022/12/実行結果1-1配列サンプルプロシージャ-1-1024x526.png)
右のスクロールバーを下へスクロールすると配列で指定した三枚のシートのプレビューが確認できます。
サンプルプロシージャ2
このプロシージャでは二次元配列を利用してC3:H6の範囲のセルの値を順番に取得しています。
'二重For文にあるLBound関数とUBound関数の引数の解説をすると
'いずれの関数も第一引数で「配列」を指定します。
'第二引数では「次元」を指定します。
'「1次元目」はシートの行です。今回はC3:H6なので3,4,5,6の4行です。
For i = LBound(cl, 1) To UBound(cl, 1)
'「2次元目」はシートの列です。今回はC3:H6なのC,D,E,F,G,Hの6列です。
For j = LBound(cl, 2) To UBound(cl, 2)
Sub cellsArray1()
Worksheets("sheet1").Select
Dim cl As Variant
cl = Range("C3:H6")
Dim i As Integer, j As Integer, bun As String
For i = LBound(cl, 1) To UBound(cl, 1)
For j = LBound(cl, 2) To UBound(cl, 2)
MsgBox cl(i, j)
bun = bun + cl(i, j)
Next j
Next i
MsgBox bun
End Sub
実行結果
![](https://howahowablog.com/wp-content/uploads/2022/12/配列実行結果2-1024x576.jpg)
サンプルプロシージャ3
このプロシージャでは二次元配列を利用してC4:H6の範囲のセルの値を取りだして個別の処理を行わせています。
Sub cellsArray2()
Worksheets("sheet4").Select
Dim cl As Variant
cl = Range("C4:H6")
Dim i As Integer, j As Integer, bun As String
Range("C4:H6").ClearFormats
For i = LBound(cl, 1) To UBound(cl, 1)
If i > 1 Then
Exit For
End If
For j = LBound(cl, 2) To UBound(cl, 2)
If cl(i, j) > 3000000 Then
Cells(i + 3, j + 2).Font.Bold = True
End If
Next j
Next i
For i = LBound(cl, 1) To UBound(cl, 1)
If i > 1 Then
Exit For
End If
For j = LBound(cl, 2) To UBound(cl, 2)
If Cells(i + 4, j + 2) / Cells(i + 3, j + 2) > 0.25 Then
Cells(i + 3, j + 2).Font.Color = RGB(255, 0, 0)
End If
Next j
Next i
End Sub
実行結果
それぞれの計算結果によってセルの書式を変化させています。
![](https://howahowablog.com/wp-content/uploads/2022/12/実行結果3-1配列サンプルプロシージャ.png)
今回は以上となります。
![](https://howahowablog.com/wp-content/uploads/2022/09/EXCEL-VBA-おすすめ書籍5選-320x180.jpg)
初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。
![](https://howahowablog.com/wp-content/uploads/2022/04/Google-Chrome-:ブックマー-Microsoft-Edge:お気に入り-登録・削除方法-320x180.jpg)
「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
![](https://howahowablog.com/wp-content/uploads/2022/12/パソコン選び-320x180.jpg)
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...