Articles

VBA – 行や列を選択する – Automate ExcelAutomate Excel

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

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

行または列全体の選択

単一の行の選択

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

Rows(5).Select

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

Range("B5").EntireRow.Select

または

Cells(5,1).EntireRow.Select

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

Range("5:5").Select

単一カラムの選択

Rowsオブジェクトの代わりにColumnsオブジェクトを使用してカラムを選択します。

Columns(3).Select

または、引用符で囲まれた文字「C」

Columns("C").Select

EntireRowの代わりに、RangeオブジェクトまたはCellsオブジェクトと共にEntireColumnを使用して、列全体を選択します。

Range("C5").EntireColumn.Select

または

Cells(5,3).EntireColumn.Select

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

Range("B:B").Select

複数の行や列を選択する

複数の行や列を選択する方法は、EntireRowやEntireColumnを使用する場合と全く同じです。

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

or

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

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

Rows("1:3").Select

or

Columns("B:C").Select

ActiveCellの行または列の選択

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

ActiveCell.EntireRow.Select

or

ActiveCell.EntireColumn.Select

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

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

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

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

Workbooks("Book6.xlsm").ActivateSheets("Sheet2").SelectRows(3).Select

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

行や列の選択は必要か

しかし、実際に行や列を選択する必要は (ほとんど?) ありません。 行や列を操作するために、それらを選択する必要はありません。 その代わり、メソッドやプロパティを行や列に直接適用することができます。 次のいくつかのセクションでは、適用できるさまざまなメソッドやプロパティを紹介します。

上記のどのメソッドを使っても、行や列を参照することができます。

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

行または列全体の削除

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

Rows("1:4").Delete

または:

Columns("A:D").Delete

行または列の挿入

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

Rows("1:4").Insert

または:

Rows("1:4").Insert

Columns("A:D").Insert

コピー & 行または列全体を貼り付ける

既存の行または列に貼り付ける

行や列全体をコピーして貼り付ける場合、既存の行や列の上に貼り付けるのか、それとも新しい行や列を挿入してデータを貼り付けるのかを決める必要があります。

以下の最初の例では、既存の行や列の上にコピーして貼り付けます:

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

or

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

Insert & Paste

以下の例では、新しく挿入された行や列に貼り付けます。

これは、1行目をコピーして5行目に挿入し、既存の行を下にずらします:

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

これは、C列をコピーしてE列に挿入し、既存の列を右にずらします。

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

行と列の表示/非表示

行や列を非表示にするには、その非表示プロパティを True に設定します。

'Hide RowsRows("2:3").EntireRow.Hidden = True'Unhide RowsRows("2:3").EntireRow.Hidden = False

または

'Hide ColumnsColumns("B:C").EntireColumn.Hidden = True'Unhide ColumnsColumns("B:C").EntireColumn.Hidden = False

行と列のグループ化/グループ化解除

行(または列)をグループ化したい場合は、以下のようなコードを使用してください。

'Group RowsRows("3:5").Group'Group ColumnsColumns("C:D").Group

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

'Ungroup RowsRows("3:5").Ungroup'Ungroup ColumnsColumns("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

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

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

アクティブな行や列の取得

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

MsgBox ActiveCell.Row

または

MsgBox ActiveCell.Column

これはRangeオブジェクトでも動作します:

MsgBox Range("B3").Column

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です