「CurrentRegion.SpecialCells(xlCellTypeVisible).Copy」
といった検索で時折アクセスがあります。
Excel VBAのコードの意味を調べていらしたのでしょう。
結論をお伝えすると、
「CurrentRegion.SpecialCells(xlCellTypeVisible).Copy」
は、アクティブセル領域の可視セルのみをコピーするコードです。
CurrentRegion.SpecialCells(xlCellTypeVisible).Copyを確認するサンプルマクロ
簡単なExcelマクロを実行してみましょう。
上図のようなワークシートを用意し、下図のように2行目を非表示にしておいてから、
以下のExcelマクロを実行してください。
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Range("A6").PasteSpecial
End Sub
A1:C3セルの可視セルのみがコピーされてA6:C7セルに貼り付けられます。
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)を読解しよう
上記の
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
で使われているプロパティやメソッドは、いずれもRangeオブジェクトを返します。
最初の
Range("A1")
はもちろんA1セルです。次の
Range("A1").CurrentRegion
はA1セルのアクティブセル領域であるA1:C3セルです。
つづく
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
は、A1セルのアクティブセル領域であるA1:C3セルの、可視セルであるA1:C1セルとA3:C3セルです。
以下のExcelマクロを実行すると、
Debug.Print _
Range("A1").Address(False, False)
Debug.Print _
Range("A1").CurrentRegion.Address(False, False)
Debug.Print _
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Address(False, False)
End Sub
イミディエイトウィンドウに
A1
A1:C3
A1:C1,A3:C3
と出力され、
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
のプロパティ・メソッドで取得できているRangeがどこなのかを確認できます。
「CurrentRegion.SpecialCells(xlCellTypeVisible).Copy」の最後の「.Copy」は、Rangeオブジェクトに用意されているCopyメソッドです。
- Newer:pywin32・win32com.clientでExcel.Worksheet.Copyの引数Afterを指定するには
- Older:ExcelのConstants列挙型に定義されている定数一覧
Home » Excel VBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegion.SpecialCells(xlCellTypeVisible).Copyとは