| 
    
     |  | ▼Hirofumi さん: >手動でCopyしても列幅と行高さはCopyされないと思いますが?
 >如何しても、Copyでしたいなら、こんな風に成るのかな?
 >
 >Public Sub Sample2()
 >
 >  Dim objSheet    As Worksheet
 >  Dim i As Long
 >  Dim strTop As String
 >  Dim wksPaste As Worksheet
 >
 >  '画面更新を停止
 >  Application.ScreenUpdating = False
 >
 >  'ActiveSheetの参照を保存
 >  Set objSheet = ActiveSheet
 >  '追加したBookの参照を保存
 >  Set wksPaste = Workbooks.Add.Worksheets(1)
 >
 >  With objSheet.UsedRange
 >    '使用範囲の先頭位置を保存
 >    strTop = .Cells(1).Address
 >    '元となるExcelのデータをコピー
 >    .Copy Destination:=wksPaste.Range(strTop)
 >    'データの有る列の列幅を設定
 >    For i = 1 To .Columns.Count
 >      wksPaste.Range(strTop).Offset(, i - 1).ColumnWidth _
 >          = .Cells(1, i).ColumnWidth
 >    Next i
 >    'データの有る行の行高さを設定
 >    For i = 1 To .Rows.Count
 >      wksPaste.Range(strTop).Offset(i - 1).RowHeight _
 >          = .Cells(i, 1).RowHeight
 >    Next i
 >  End With
 >
 >  '画面更新を再開
 >  Application.ScreenUpdating = False
 >
 >  Set wksPaste = Nothing
 >  Set objSheet = Nothing
 >
 >End Sub
 
 ご回答ありがとうございます。
 シートの表示なんですが、列幅はすべて2、で背景色は値があるところ以外は
 全て白にしています。
 手動でコピーすると出来ますが、マクロはできないみたいです。
 ですので一度シートを作成し、そこにコピーしてそのシートを新規ブックに
 コピーという方法で対処してみたいと思います。
 
 親切にご教示にありがとうございました。
 
 
 |  |