Home » Excel VBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegion.SpecialCells(xlCellTypeVisible).Copyとは

CurrentRegion.SpecialCells(xlCellTypeVisible).Copyとは

動作検証バージョン:Windows 11 Home + 64bit Excel(バージョン2307 ビルド16610.20000 クイック実行)

「CurrentRegion.SpecialCells(xlCellTypeVisible).Copy」
といった検索で時折アクセスがあります。
Excel VBAのコードの意味を調べていらしたのでしょう。

結論をお伝えすると、
「CurrentRegion.SpecialCells(xlCellTypeVisible).Copy」
は、アクティブセル領域の可視セルのみをコピーするコードです。

[スポンサードリンク]

CurrentRegion.SpecialCells(xlCellTypeVisible).Copyを確認するサンプルマクロ

簡単なExcelマクロを実行してみましょう。

上図のようなワークシートを用意し、下図のように2行目を非表示にしておいてから、

以下のExcelマクロを実行してください。

Sub CurrentRegionの可視セルをコピペする()       
 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マクロを実行すると、

Sub CurrentRegionの可視セルを取得するコード()
 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メソッドです。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegion.SpecialCells(xlCellTypeVisible).Copyとは

「CurrentRegionプロパティ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.
.