目次
目的
Excel VBA のマクロで一行全体を選択したい。
選択した行の値、書式を変更したい。
題材
Excel ワークシートの 3 行目を選択します。
3 行目全体に「VBA」の文字を入力します。
3 行目全体の背景色を黄色に変更します。
その方法の一例
Excel VBA のソースコード例:
Sub 方法_002547() ActiveSheet.Rows(3).Select '3 行目全体を選択します。 ActiveSheet.Rows(3).Value = "VBA" '3 行目全体に「VBA」の文字を入力します。 ActiveSheet.Rows(3).Interior.ColorIndex = 6 '3 行目全体に黄色(カラーインデックス 6 番)の背景色を設定します。 End Sub
上記のマクロを実行すると以下のようになりました。 3 行目全体が選択された状態になっています。「VBA」の文字が 3 行目の全てのセルに入力されているようです。背景色の設定も行われています。
「 ActiveSheet.Rows(3).Select 」の行で、セルの選択を行っています。 Rows(3) は、ワークシートの 3 行目全体を示しています。セルの選択を行わないでも、値の設定、セルの着色を行えますが、例として選択状態にしています。
「 ActiveSheet.Rows(3).Value = "VBA" 」の行で、「 VBA 」の文字を入力しています。 Rows(3) で 3 行目全体を対象にしているので、 3 行目の全てのセルに文字が入力されます。
「 ActiveSheet.Rows(3).Interior.ColorIndex = 6 」の行で、セルの背景色を設定しています。 ColorIndex は、番号で指定するようになっていて、 3 が「赤」、 5 が「青」、 6 が「黄」など、番号が決まっています。
以下のように With ステートメントでひとくくりにして実行することもできるようです。上記のコードでは ActiveSheet.Rows(3) を 3 回書いていますが、 With ~ End With を使用することで ActiveSheet.Rows(3) の記述が 1 回で済みました。
Excel VBA のソースコード例:
Sub 方法_002547_001()
With ActiveSheet.Rows(3) 'With ステートメントを使用しています。
.Select
.Value = "VBA"
.Interior.ColorIndex = 6
End With 'With ステートメントを使用しています。
End Sub
今回のサンプルでは 3 行目を操作していますが、それを 10 行目に変更したい場合も、以下のように 1 箇所の修正で済むと思うので便利です。
Excel VBA のソースコード例:
Sub 方法_002547_001()
With ActiveSheet.Rows(10) '変更した部分
.Select
.Value = "VBA"
.Interior.ColorIndex = 6
End With
End Sub
テスト環境
- Windows 10
- Microsoft Office Excel 2003
あとがき
ワークシートの複数行を対象にした操作方法も調べていきたいと思います。
本投稿、間違ってないと良いですが。
以上、閲覧ありがとうございました。