Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 奇数行をExcel VBAで選択する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2210 ビルド15726.20202 Microsoft Store)

「奇数行全て 選択 vba」
という検索でアクセスがありました。

奇数行を選択するサンプルマクロ

以下のExcelマクロを実行すると、1行目から10行目までの奇数行のみが選択されます。

Sub 奇数行を選択する()
 Dim rng As Range

 Dim i As Long
 For i = 1 To 10 Step 2
  If rng Is Nothing Then
   Set rng = Rows(i)
  Else
   Set rng = Union(Rows(i), rng)
  End If
 Next

 rng.Select
End Sub

奇数行を選択するサンプルで行っている処理

RangeオブジェクトのSelectメソッドが、

拙著『理解するExcel VBA/図形操作の基本』の「1-3. ShapesからShapeを1つ取得する」で解説している、ShapeオブジェクトのSelectメソッドのように引数Replaceを指定できたならば、

もっと簡単なコードで書けるのですが、Range.Selectメソッドには引数を指定できません。

そのため、Unionメソッドを使って、

オブジェクト変数rngで参照できる行をFor~Next文の中で順番に増やし、

For i = 1 To 10 Step 2
 Else
  Set rng = Union(Rows(i), rng)

最後にRange.Selectメソッドで選択するSubプロシージャにしています。

rng.Select

For~Next文に入った最初のみオブジェクト変数rngはNothingで、その状態で「Union(Rows(i), rng)」を実行すると実行時エラーが発生してしまいます。

そのため、

For i = 1 To 10 Step 2
 If rng Is Nothing Then
  Set rng = Rows(i)
 Else

とIf文を入れています。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 奇数行をExcel VBAで選択する

「行・列を表すRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.