【VBA】配列に格納したデータを別シートに貼り付け

【VBA】配列に格納したデータを別シートに貼り付け VBA
この記事は約3分で読めます。

Excel VBAで高速化を目指す時に役立つのが配列です。

最初はあまりイメージがつかめないかもしれませんが、何度も繰り返し使っていくとイメージができるようになっていくので諦めずに継続しましょう!

うめ
うめ

最初はコードのコピペでOKです~🙆


今回は配列にデータを格納して別シートに貼り付けるコードを紹介します。

スポンサーリンク
[ad01]

やりたいこと

今回は配列を使用して「Sheet1」の会社情報を「Sheet2」に貼り付けます。

コードはこちら

Sub Sample()

Dim Array1 As Variant
Dim Array2 As Variant

'配列に格納
Array1 = Worksheets("Sheet1").Range("A1").CurrentRegion

'Resizeで配列を別シートに貼り付ける
Worksheets("Sheet2").Range("A1").Resize(UBound(Array1, 1), UBound(Array1, 2)) = Array1

End Sub

配列格納は「CurrentRegion」が便利

CurrentRegionプロパティを使うことで値が入力されているセルのデータ範囲を自動取得することができます。

CurrentRegionプロパティを使わない場合は以下のように、格納する範囲を指定しないといけません。

小さな表であれば確認できますが、大きな表の場合はどこまでのセルを配列に格納するのか確認しないといけないので不便です。

Array1 = Worksheets(“Sheet1”).Range(“A1:E11”)

うめ
うめ

セル範囲を指定すれば配列の格納はできますが、個人的にはあまりオススメしません。

配列に表全体を格納=「CurrentRegion」と覚えておきましょう!

Array1 = Worksheets(“Sheet1”).Range(“A1”).CurrentRegion

CurrentRegionの注意点

空白行が含まれている表にCurrentRegionプロパティを使うとどうなるのか検証していきます。

空白行のある表にCurrentRegionプロパティを使用

Selectでどの部分が選択されるのか確認すると…

Worksheets("Sheet1").Range("A1").CurrentRegion.Select

空白行の手前のA1~E4セルまでが選択されていました。

空白行の手前までしか選択されない

CurrentRegionプロパティは空白行のないデータにしか使えないので注意しましょう。

貼り付けは「Resize」+「UBound」を使用

UBoundを使うと配列の最大インデックス数を取得できます。

Worksheets(“Sheet2”).Range(“A1”).Resize(UBound(Array1, 1), UBound(Array1, 2)) = Array1

Resize(UBound(Array1, 1), UBound(Array1, 2))にどのようなデータが入ってくるのか見て行きましょう。

UBound(Array1, 1)⇒インデックス11
データが11行あるため

UBound(Array1, 2)⇒インデックスが5
データが5列あるため

縦横のインデックス番号

配列を確認するとUBoundで取得した行と列のインデックスが設定されていることがわかります。

配列イメージ

さらに「Resize」と組み合わせることで配列の範囲を表の最大値に自動調整することができます!

まとめ

今回は配列に格納したデータを別シートに貼り付けるやり方を紹介しました。

まとめ
  • 配列に表全体を格納=「CurrentRegion」
  • 空白行があると「CurrentRegion」は使えない
  • 「Resize」+「UBound」で配列範囲を自動調整

「CurrentRegion」、「Resize」+「UBound」を使いこなして効率的に作業を進めましょう!

この記事が気に入ったら
いいね ! しよう

Twitter で

VBAを学習する時間が取れない人

VBAは我流で組むことができますが、初心者だと作業時間が多く掛かったり、間違った部分を見つけるのに苦労したります。

VBAが組めるようになれば便利なことも多いですが、仕事をしながら勉強するのは結構大変…。

もし時間に追われて思うようにいかないのであればココナラで「VBAを組める人」に依頼してみませんか?

個人で販売しているため価格も抑えらえれます
まずはこちらから無料会員登録をして依頼をしてましょう!


VBA
スポンサーリンク
[ad01]
うめをフォローする
梅屋ラボ
タイトルとURLをコピーしました