|
青朝顔 さん、おはようございます。
>>行高や列幅もペーストされるはずですが。
>この方法でやってみましたが行高や列福はコピーできず巨大な
>表ができてしまいました。
行/列全体で選択していれば、大丈夫なはずなんですけどねぇ。
上の手順をマクロにするとこんな感じです。複製したいシートを表示して実行してください。念のため、行列サイズ調整を入れたシートも作りますので、1と2で比較してみてください。
Sub test()
Dim ws1 As Worksheet, ws2 As Worksheet, II&
'
Set ws1 = ActiveSheet
ws1.Unprotect '保護解除
'コピペのみ(普通はこれで大丈夫のはず)
Set ws2 = ws1.Parent.Worksheets.Add(before:=ws1)
ws2.Name = ws1.Name & "の複製その1"
ws1.Cells.Copy
With ws2.Cells(1)
.PasteSpecial Paste:=xlPasteFormulas
.PasteSpecial Paste:=xlPasteFormats
.Select
End With
Application.CutCopyMode = False
'コピペ後、行/列調整
Set ws2 = ws1.Parent.Worksheets.Add(before:=ws1)
ws2.Name = ws1.Name & "の複製その2"
ws1.Cells.Copy
With ws2.Cells(1)
.PasteSpecial Paste:=xlPasteFormulas
.PasteSpecial Paste:=xlPasteFormats
.Select
End With
Application.CutCopyMode = False
With ws1.UsedRange
'行高調整
For II& = .Cells(1).Row To .Cells(.Count).Row
ws2.Rows(II&).RowHeight = ws1.Rows(II&).RowHeight
Next
'列幅調整
For II& = .Cells(1).Column To .Cells(.Count).Column
ws2.Columns(II&).ColumnWidth = ws1.Columns(II&).ColumnWidth
Next
End With
Set ws1 = Nothing: Set ws2 = Nothing
End Sub
|
|