「奇数行全て 選択 vba」
という検索でアクセスがありました。
奇数行を選択するサンプルマクロ
以下のExcelマクロを実行すると、1行目から10行目までの奇数行のみが選択されます。
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
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文を入れています。
- Newer:Word VBAでヘッダー文字列から1文字ずつ取得する
- Older:奇数の和をPythonで計算する
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 奇数行をExcel VBAで選択する