データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
コピー元のシートはExcel365で作っていたことが原因でした。
主な原因はフォントと行の高さにありました。
Excel365で作ったシートのフォントは游ゴシックで、それをEXCEL2010で開くとやはり游ゴシックなのですが、
そのシートを新しいブックにコピーした途端に、フォントがMS Pゴシックに変わってしまいます。
行の高さがデフォルト値だと、フォントの種類によって高さが決定されるようで、
行の高さが18から13.2に変わってしまっていました。
対策として、コピー元のシートで特に何も指定していなかった行高や列幅を全部指定しました。
中央揃えなどの書式やフォント指定もです。
それでも新しいブックにコピーしたらフォントがMS Pゴシックに変更されてしまうので、
VBAでシートをコピーしたときに、
Cells.Font.Name = "游ゴシック"
としました。
(EXCEL2010のオプション設定でデフォルトのフォントを游ゴシックにしてもだめです)
これでほぼほぼそのままコピーできるようになりました。
しかし、それでも改ページ位置がずれますので、
Public Sub copyPageBreaks(fromWs As Worksheet, toWs As Worksheet)
Dim pb As HPageBreak
toWs.ResetAllPageBreaks
For Each pb In fromWs.HPageBreaks
toWs.Rows(pb.Location.Row).PageBreak = xlPageBreakManual
Next
End Sub
を使ってコピー元シートの改ページ位置を、コピー先にコピーするようにしました。
(改ページ位置を手動で設定しておかないとエラーになります。
自動で設定された改ページではだめです。Excel2010のバグだと思われます)
それでも改ページ位置が多少ずれますので、
それは手動で微調整しました。
以上です。