VBAの2次元配列の作成方法【業務効率化を目指すあなたへ】

こんにちは!大阪市住之江区に拠点を置く会社『縁紡ぐ』の稲垣です。

当社は、Excel、ACCESS、RPAなどのシステム開発や既存ツールを使った業務効率化の提案、また、ITスキルアップのための教育に力を入れています。効率的なビジネス運営を目指している企業様、ITスキルの向上を図りたい企業や個人の方に、最適なご提案をさせていただきます。業務プロセスの改善とITスキルアップをサポートし、共に成長するパートナーでありたいと考えています。

目次

2次元配列の基本的な作成方法

ExcelVBAでは2次元配列を使わずに、何度もセルにアクセスしていると、めっちゃ遅くなります。そこで今回は2次元配列の作り方を紹介します。

配列を繰り返し処理したい場合の方法は、下の記事で紹介しています。

シートから配列を作成する方法

Excelシートの範囲からデータを取得し、2次元配列に格納する方法を紹介します。これは、一番よく使われているパターンだと思います。

Sub ArrayFromSheet()
    Dim array As Variant
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' シート名を指定

    ' シートの範囲を配列に読み込む
    array = ws.Range("A1:B3")' A1からB3の範囲を配列に格納
End Sub

固定サイズの配列を宣言する方法

Sub FixedSizeExample()
    Dim myArray(1 To 3, 1 To 2) As Variant
End Sub
Sub VariantArrayExample()
    Dim myArray(1 To 3, 1 To 2) As Variant
    myArray(1, 1) = 1
    myArray(1, 2) = ":1です"
    myArray(2, 1) = 2
    myArray(2, 2) = ":2です"
    myArray(3, 1) = 3
    myArray(3, 2) = ":3です"

    Debug.Print myArray(1, 1)
    Debug.Print myArray(1, 2)
    Debug.Print myArray(2, 1)
    Debug.Print myArray(2, 2)
    Debug.Print myArray(3, 1)
    Debug.Print myArray(3, 2)
End Sub

実行例

ReDimを使った方法

ReDimは、配列の大きさを変更することができる方法です。

Sub CreateEmptyArrayReDim()
    Dim myArray() As Variant ' 動的配列の宣言
    Dim rows As Integer
    Dim cols As Integer

    ' 行数と列数を指定
    rows = 3
    cols = 2

    ' 配列のサイズを指定
    ReDim myArray(1 To rows, 1 To cols)

    Debug.Print myArray(1, 1)
    Debug.Print myArray(1, 2)
    Debug.Print myArray(2, 1)
    Debug.Print myArray(2, 2)
    Debug.Print myArray(3, 1)
    Debug.Print myArray(3, 2)

End Sub

これで配列の作成はできています。ReDimを使った2次元配列の使い方は、下の記事で紹介しています。

まとめ

必要に応じて、これらの方法を使い分けてください。配列はVBAで高速化するためには、必須ですのでぜひ使ってみてくださいね!

記事を書いた人

稲垣

  • Excel、ACCESSでのシステム開発が得意
  • ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
  • 自家焙煎するほどのコーヒー好き
  • 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
  • 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
  • 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
  • お客様にとって本当に良いことかを第一に考える人
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次