選択範囲はSelection

セル範囲を扱う場合に1セルずつループして処理を行いたい場合があります。

選択セル範囲は「Selection」プロパティで表します。

Selection自体は同じですが、ループの書き方で必要になるSelectionの子プロパティも変わってきます。

そこでFor Each、For、Do、の各ループの書き方を紹介します。

Selectionループの書き方

各ループの書き方の見本になります。

ループ内ではセルの文字列をa→A→あ→aの順に置換しています。

 

コード説明

1. For Eachでの書き方

For Eachは一番使いやすく簡単に書ける方法です。私もほとんどこの書き方で書いてます。

利点として、1行でセルのRangeオブジェクトを取得できることと、ループの終了条件を書く必要がないことが挙げられます。

2. Forでの書き方

Forで書く場合はループカウンタが必要になります。

そのループカウンタの初期値は1にしています。この理由はSelectionの場合はItemプロパティが1から開始するためです。配列などの一般的なループの場合に0に初期化するのと異なります。

3. Doでの書き方

終了条件をループ内に書くことになります。その際にセル数をSelection.Countプロパティで取得します。あとはForでの書き方と考え方は同じです。

実行結果

上のコードを実行した場合の移り変わりは以下になります。

0. 対象セル範囲を選択します。

1. For Eachでの変換後(”a” → “A”)

2. For での変換後(”A” → “あ”)

3. Do での変換後(”あ” → “a”)