- ベストアンサー
オートフィルタ時に非表示にした列を含めてコピー、貼り付け
シートのいくつかの列を非表示にしています。 オートフィルタをした状態でコピーして別シートに貼り付けるマクロ を作りましたが、非表示の列が貼り付けられません。非表示の列の内容も貼り付けたいのです。 一度非表示列を表示させてコピー、貼り付けするしかないのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 簡単な方法としては、数式を貼り付けて、それを値コピーしてしまってもよいと思います。 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
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
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が無いのが残念。
お礼
解答ありがとうございました。