Excel

【Excel】VBAマクロで可視セルのみ処理(繰り返し・コピー貼り付け・配列格納・削除・フィルタ)する方法

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、VBAマクロで可視セルのみ処理(繰り返し・コピー貼り付け・配列格納・削除・フィルタ)する方法について解説します。

特にポイントとしては、フィルタをかけた後の可視セルに対するコピー貼り付け、削除、配列格納の処理が重要です。

完全な初心者にもわかりやすいように、変数名を独特の表記で示していますので、実際にご利用の際には適切な英語の変数名に変更してください。

それでは詳しく見ていきましょう!

VBAマクロで可視セルのみコピー貼り付け処理を繰り返す方法

それではまず、可視セルのみのコピー貼り付け処理について解説していきます。この方法では、B列にフィルタをかけ、特定の条件(例えば「マウス」に該当するセル)を別シートにコピー貼り付けします。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub CopyVisibleCells()
    Dim ws As Worksheet
    Dim filterRange As Range
    Dim copyRange As Range
    Set ws = ThisWorkbook.Sheets("Sheet1")
    ws.Range("B:B").AutoFilter Field:=1, Criteria1:="マウス"
    Set filterRange = ws.Range("B1:B100").SpecialCells(xlCellTypeVisible)
    Set copyRange = ThisWorkbook.Sheets("Sheet2").Range("A1")
    filterRange.Copy Destination:=copyRange
End Sub

コードのAlt+F8を押し、マクロ選択画面でCopyVisibleCells関数を実行します。

このコードでは、シート1のB列をフィルタリングし、「マウス」に一致する可視セルをシート2にコピーします。

 

VBAマクロで可視セルのみの削除をする方法

続いては、可視セルのみの削除について解説していきます。

ここでは、C列にフィルタをかけ、特定の条件(例えば「ココア」に該当する)セルを含む行を削除します。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub DeleteVisibleRows()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    ws.Range("C:C").AutoFilter Field:=1, Criteria1:="ココア"
    ws.AutoFilter.Range.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End Sub

コードのAlt+F8を押し、マクロ選択画面でDeleteVisibleRows関数を実行します。

このコードでは、シート1のC列で「ココア」に一致する行を削除します。

 

VBAマクロで可視セルのみに繰り返し処理し配列に格納する方法

最後に、可視セルのみに繰り返し処理を行い、結果を配列に格納する方法を解説します。この処理は、データの分析や処理に非常に役立ちます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub ProcessVisibleCells()
    Dim ws As Worksheet
    Dim dataArray() As Variant
    Dim cell As Range
    Dim i As Integer
    i = 1
    Set ws = ThisWorkbook.Sheets("Sheet1")
    For Each cell In ws.Range("A1:A100").SpecialCells(xlCellTypeVisible)
        ReDim Preserve dataArray(i)
        dataArray(i) = cell.Value
        i = i + 1
    Next cell
End Sub

コードのAlt+F8を押し、マクロ選択画面でProcessVisibleCells関数を実行します。このコードでは、指定した範囲内の可視セルをループし、その値を配列に格納していきます。

 

まとめ VBAマクロで可視セルのみ処理(配列格納・削除・フィルタ)する方法

この記事では、ExcelのVBAマクロを用いて可視セルに対する異なる処理方法を学びました。これらの技術は、データの整理や分析に大変役立ちます。ご自身のニーズに合わせて、これらのコードを活用してください。