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

範囲の選択とコード
範囲の選択とコード

マクロ 90回

配列取得にCurrentRegionを使う理由

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

(サンプルファイルは、こちらから マクロ講義のサンプルデータ

空白のセルで囲まれた範囲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. 途中で止まってしまいますね。そういうことを考えると全体を取得してから、必要な列に縮小していくという方が安全です。


範囲の選択とコード11