VBA 値の操作 最終行・最終列

【VBA】columnsの基本的な使用方法・複数列を指定(数字・変数)・最終列取得

columnsプロパティとは

columnsはExcelの列を操作するプロパティです。列の参照、削除、幅調整など自動化する時にしようするプロパティになります。

基本的な使用方法

【列の参照】
特定の列を参照するには、Columns("列名")またはColumns(列番号)を使用します。

Columns("A").Select ' 列Aを選択
Columns(1).Select ' 1列目(列A)を選択

【複数列の選択】
複数の列を選択する場合は、列範囲を指定します。
複数列を列名または数字で指定する方法です。

Columns("A:C").Select ' 列AからCを選択
Columns("1:3").Select ' 1列目から3列目を選択

【列の操作】
列の表示・非表示、指定の幅に設定や自動調整します。

Columns("C").Hidden = True 'C列を非表示
Columns("C").Hidden = False 'C列を表示
Columns("D").ColumnWidth = 20 'D列の幅を20に設定します。
Columns("E").AutoFit 'E列の幅を自動調整します。

【列の挿入と削除】
新しい列の挿入や削除をします。

Columns("F").Insert 'F列に新しい列を挿入します。
Columns("G").Delete 'G列の列を削除処理します。

【ループ処理】
複数の列にわたって同じ操作を行うには、Forループを使用します。

For i = 1 To 5 Columns(i).AutoFit
Next i

【フィルタリングとソート】
特定の条件で列をフィルタリングすることができます。
VBAを使って列を特定の基準でソートすることも可能です。

オートフィルター(AutoFilter)の設定・解除

【VBA】フィルター結果を新しいbookに保存する方法

Range("A1:D100").AutoFilter
' 列B(例)に特定の条件を設定してフィルタリング
' ここでは、"Test"というテキストを含む行のみを表示
Range("A1:D100").AutoFilter Field:=2, Criteria1:="Test"

' 列B(例)に基づいてデータを昇順にソート
Range("A1:D100") .Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlYes

複数の列を変数に格納する方法とは

特定の列(例えば、B列とD列)をRangeオブジェクトを使用して変数に格納します。格納した変数を利用して、列の色を塗りつぶします。

Sub StoreMultipleColumns()
Dim ws As Worksheet
Dim rng As Range

' 使用するワークシートを設定
Set ws = ThisWorkbook.Sheets("Sheet1")

' B列とD列をrng変数に格納
Set rng = ws.Range("B:B,D:D")

' 以降、rng変数を使用して操作を行う
' 例: rng列の全てのセルの色を変更
rng.Interior.Color = RGB(255, 255, 0) ' 黄色に設定
End Sub

最終列を特定する方法とは

特定のワークシート上で使用されている最終列の列番号を取得します。最終使用列をメッセージボックスで表示します。
ただし、結合されている列が最終列で使用されている場合は認識しないサンプルコードです。

【VBA】最終行を求める方法を4つ紹介

Sub FindLastColumn()
Dim ws As Worksheet
Dim lastCol As Long

' 使用するワークシートの設定
Set ws = ThisWorkbook.Sheets("Sheet1")

' ワークシートの最終列を探す
' xlByColumnsは列単位で検索、xlPreviousは最終列から前方向への検索
lastCol = ws.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

' 最終列の番号を表示
MsgBox "最終列の列番号は " & lastCol & " です。"
End Sub

【ポイント解説】
Find("*"):
Findメソッドは、指定した値や条件に一致するセルを検索します。
ここでの"*"はワイルドカードを意味し、任意の値を含むセルを検索します。つまり、何らかのデータ(文字、数値、式など)を含むセルを探します。

SearchOrder:=xlByColumns:
SearchOrderは検索の順序を指定します。
xlByColumnsは列単位で検索します。つまり、ワークシートを列ごとに検索し、各列の最初の行から最後の行までを順にチェックします。

SearchDirection:=xlPrevious:
SearchDirectionは検索の方向を指定します。
xlPreviousは逆方向(この場合は右から左へ)の検索を意味します。通常、Excelではセルは左上から右下へと数えられますが、xlPreviousを使用すると、右下のセルから逆順に検索を行います。これにより、使用されている最後のセルを見つけることができます。

スポンサーサイト

-VBA, 値の操作, 最終行・最終列