• ベストアンサー

オートフィルタ時に非表示にした列を含めてコピー、貼り付け

シートのいくつかの列を非表示にしています。 オートフィルタをした状態でコピーして別シートに貼り付けるマクロ を作りましたが、非表示の列が貼り付けられません。非表示の列の内容も貼り付けたいのです。 一度非表示列を表示させてコピー、貼り付けするしかないのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 簡単な方法としては、数式を貼り付けて、それを値コピーしてしまってもよいと思います。 VBAらしくすると、以下のような方法があります。 ただし、書式などはコピーされません。 Sub TestCopy()   Dim ar As Variant   Dim ur As Long   Dim uc As Integer      If ActiveSheet.AutoFilterMode = False Then    MsgBox "オートフィルタかありません。", vbInformation    Exit Sub   End If      ar = ActiveSheet.AutoFilter.Range.Value   ur = UBound(ar, 1) '行   uc = UBound(ar, 2) '列      Worksheets("Sheet2").Range("A1").Resize(ur, uc).Value = ar End Sub

nihonjinn
質問者

お礼

解答ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

http://www.moug.net/tech/exvba/0050114.htm にある Range("A1").CurrentRegion.Copy _ Destination:=Worksheets("集計結果").Range("A1") とした場合、非表示になっている行も一緒にコピーされてしまいます。とありますが、コピーされませんでした。 しかし 編集ージャンプーセル選択ーアクチブセル領域を選び その状態で Sub test02() Dim cl As Range For Each cl In Selection MsgBox cl.Address Next End Sub を実行すると、非表示列のセルも捉えました。 私には良くわかりません。 何かご参考になれば。 xlCellTypeのVisibleはあっても、Allが無いのが残念。