Return to VBA Code Examples

VBA – 行や列全体を選択する(操作する)

このチュートリアルでは、VBAで行または列全体を選択し、操作する方法を紹介します。

まず、行と列全体を選択する方法を説明し、次に行と列を操作する方法を説明します。

行または列全体の選択

単一の行を選択する

Rowsオブジェクトを使うと、次のように行全体を選択することができます。

Rows(5).Select

また、RangeオブジェクトやCellsオブジェクトと一緒にEntireRowを使うこともできます。

Range("B5").EntireRow.Select

または

Cells(5,1).EntireRow.Select

また、Range オブジェクトを使用して、特定の行を参照することもできます。

Range("5:5").Select

単一の列を選択する

Rowsオブジェクトの代わりに、Columnsオブジェクトを使って、列を選択することができます。ここでは、列番号3を選択します。

Columns(3).Select

文字 “C “を引用符で囲んで指定することもできます。

Columns("C").Select

EntireRowの代わりに、EntireColumnと Range オブジェクトやCellsオブジェクトを使って、列全体を選択することもできます。

Range("C5").EntireColumn.Select

または

Cells(5,3).EntireColumn.Select

Range オブジェクトを使用して、特定の列を参照することもできます。

Range("B:B").Select

複数の行や列を選択する

複数の行や列を選択することも、EntireRowやEntireColumnを使用して全く同じようにできます。

Range("B5:D10").EntireRow.Select

または

Range("B5:D10").EntireColumn.Select

ただし、RowsオブジェクトやColumnオブジェクトを使う場合は、行番号や列文字を引用符で囲んで入力する必要があります。

Rows("1:3").Select

または

Columns("B:C").Select

ActiveCellの行または列を選択する

ActiveCellのRowまたはColumnを選択するには、以下のコードのいずれかを使用します。

ActiveCell.EntireRow.Select

または

ActiveCell.EntireColumn.Select

他のワークシートの行と列を選択する

他のワークシートの行や列を選択するには、まずワークシートを選択する必要があります。

Sheets("Sheet2").Select
Rows(3).Select

他のワークブックの行や列を選択する場合も同様です。

Workbooks("Book6.xlsm").Activate
Sheets("Sheet2").Select
Rows(3).Select

注意:目的のワークブックをActivateする必要があります。Sheetsオブジェクトとは異なり、Workbooksオブジェクトには Selectメソッドがありません。

行と列を選択する必要はあるのか?

実は、行や列を選択する必要は、ほとんどありません。行や列を操作するために、メソッドやプロパティを直接行や列に適用することができるからです。次のセクションでは、適用可能なメソッドとプロパティを説明します。 行や列を参照するには、上記のどの方法でもかまいません。

行と列のメソッドとプロパティ

行全体または列全体を削除する

行や列を削除するには、Deleteメソッドを使用します。

Rows("1:4").Delete

または

Columns("A:D").Delete

行または列を挿入する

行や列を挿入するには、Insertメソッドを使用します。

Rows("1:4").Insert

または

Columns("A:D").Insert

行や列の全体をコピーして貼り付ける

既存の行や列への貼り付け

行や列を丸ごとコピーして貼り付ける場合、既存の行や列の上に貼り付けるのか、それとも新しい行や列を挿入してデータを貼り付けるのかを決める必要があります。 この例では、既存の行または列の上にコピー&ペーストします。

Range("1:1").Copy Range("5:5")

または

Range("C:C").Copy Range("E:E")

挿入と貼り付け

次の例は、新しく挿入された行または列に貼り付けます。 この例では、1行目をコピーして5行目に挿入し、既存の行を下にずらします。

Range("1:1").Copy
Range("5:5").Insert

これは、C 列をコピーして E 列に挿入し、既存の列を右に移動させます。

Range("C:C").Copy
Range("E:E").Insert

行と列を非表示にする/非常時を解除する

行や列を非表示にするには、その非表示プロパティをTrue に設定します。行や列の非常時を解除するには、False を使用します。

'行を非表示にする
Rows("2:3").EntireRow.Hidden = True

'行の非表示を解除する
Rows("2:3").EntireRow.Hidden = False

または

'列を非表示にする
Columns("B:C").EntireColumn.Hidden = True

'列の非表示を解除する
Columns("B:C").EntireColumn.Hidden = False

行と列をグループ化する/グループ化を解除する

行や列をグループ化したい場合は、次のようなコードを使います。

'行をグループ化
Rows("3:5").Group

'列をグループ化
Columns("C:D").Group

グループ化を解除するには、次のコードを使用します。

'行のグループ化を解除
Rows("3:5").Ungroup

'列のグループ化を解除
Columns("C:D").Ungroup

これで「グループ化」されたアウトラインレベルがすべて展開されます。

ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8

で、これはすべてのアウトラインレベルを折りたたみます。

ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1

行の高さや列の幅を設定する

の幅を設定するには、次のコードを使用します。

Columns("A:E").ColumnWidth = 30

行の高さを設定するには、次のコードを使用します。

Rows("1:1").RowHeight = 30

行の高さ/列の幅を自動調整する

列の幅を自動調整するには、次のようにします。

Columns("A:B").Autofit

行の高さを自動調整するのも同様です。

Rows("1:2").Autofit

他のワークシートやワークブックの行と列

他のワークシートの行と列を操作するには、Sheetsオブジェクトを定義する必要があります。

Sheets("Sheet2").Rows(3).Insert

同様に、他のワークブックの行と列を操作するには、Workbookオブジェクトも定義する必要があります。

Workbooks("book1.xlsm").Sheets("Sheet2").Rows(3).Insert

アクティブな行と列を取得する

アクティブな行や列を取得するには、ActiveCellオブジェクトRow プロパティと Columnプロパティを使用します。

MsgBox ActiveCell.Row

または

MsgBox ActiveCell.Column

これは、Rangeオブジェクトでも使えます。

MsgBox Range("B3").Column

 

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples