配列の範囲取得の選択とコード

配列選択とコーディングをマスター
範囲の選択とコード

マクロ 90回

配列取得にCurrentRegionを使う理由

今回からは、表から取得した配列を縮小するコードを考えていきます。
その際に、前回は、なぜわざわざRange("A1").CurrentRegion.Select
のようにCurrentRegionを使うのかという疑問を持つ方がいるので、ここでは、範囲選択とコードの関係を先に説明します。

この記事では、以下の内容について解説しています。

  • 1. テーブルから配列を取得してサイズ変更する方法。
  • 2. 範囲の選択に CurrentRegion を使用する利点。
  • 3. 範囲選択にショートカットと対応するマクロ コードを使用する方法。
  • 4.範囲選択に単一の列を使用することの制限。
  • 5. 空白セルが範囲選択とデータ取得に与える影響。

空白のセルで囲まれた範囲CurrentRegionを取得する

1. 表から取得した配列を縮小するコードを考えていきます。


範囲の選択とコード1

2. 2次元配列の行数はそのままで、列数は3列から2列にするというなケースです。


範囲の選択とコード2

範囲を取得するショートカットとマクロコードには対応がある

3.空白で囲まれた範囲全体を取得するには、Ctrl A で取得できます。


範囲の選択とコード3

4. A1セルをアクティブにして、A列だけを選択したければ、Ctrl
A1セルから下に降りて、セレクト。Range("A1").End(xlDown).Select


範囲の選択とコード4

5. 範囲を選択したければ、Ctrlにつづけて
さらに、Ctrlキーを押したまま→で右下セルに移動します。Ctrl


範囲の選択とコード5

6.そしてセレクトします。Range("A1").End(xlDown).End(xlToright).Select
このようにコードで書くとCtrl A と同様に、A1セルのCurrentRegionを選択できます。


範囲の選択とコード6

7. 上記のショートカットの使用例では下に先に下りましたが、先に右端に移動してから、下に降りても同じことです。 Range("A1").End(xlToright).End(xlDown).Select


範囲の選択とコード7

A列だけなら、CurrentRegioはいらない?

8. そうなると、A列だけなら、CurrentRegionを使う必要がない?のではないかという質問もいただきます。 確かにA列だけなら可能なことが多いです。


範囲の選択とコード8

9.B列だけの選択などもできますね。 わざわざCurrentRegionを使って、リサイズしたりオフセットしたりする必要はないのではないかという疑問です。


範囲の選択とコード9

10. ただ、完全にデータが埋まっているのなら大丈夫ですが、表の中に空白の部分があった場合に、列全体を選択できません。


範囲の選択とコード10

11. 途中で止まってしまいますね。そういうことを考えると全体を取得してから、必要な列に縮小していくという方が安全です。
それで、CurrentRegionを使うのです。


範囲の選択とコード11