次の方法で共有

EXCEL2010でシートを新しいブックにコピーしたら行の高さが変わる

Anonymous
2018-12-04T01:17:02+00:00

とても困ってまして、なんでもアドバイスいただけましたら助かります。

EXCEL2010で、シートを新しいブックにコピーすると

行の高さが変わってしまい、レイアウトが崩れて困っています。

やり方は、

1.シートのタブを右クリック

2.移動またはコピー をクリック

3.移動先ブック名を(新しいブック)を選択

4.コピーを作成する にチェック

5.OKを押す

わかっていることは

・同じブック内でのコピーなら崩れない。

・EXCEL2013でも発生するらしい。

・Office365では発生しない。

・全選択でのコピー・ペーストでも崩れる。

実際やりたいことは、

VBAマクロを使って、あるシートを他のブックのシートとしてコピーしたいと

思っています。

どうぞよろしくおねがいします。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-12-06T08:50:29+00:00

    コピー元のシートは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のバグだと思われます)

    それでも改ページ位置が多少ずれますので、

    それは手動で微調整しました。

    以上です。

    この回答は役に立ちましたか?

    7 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません