プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/07/07 00:06

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が無いのが残念。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています