こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excelでシートコピーすると幅が変わる

閲覧ありがとうございます。

Excel 2019で「シートの移動またはコピー」で、シートを新しいブックにコピーすると、幅が変わってしまいます。
同じブック内だと変わらないようです。
どうやら、全くサイズを変更していないセルの幅も違うようです。
シートをコピーする作業はVBAで行っています。
解決方法が良くわからず、質問させていただきました。

・Excelのオプション変更で解決する方法
・違う環境で同じExcelブックのVBAを使っても、幅が変更されない方法
できればどちらもご教示いただきたいです。

よろしくお願いいたします。

投稿日時 - 2020-05-25 09:50:48

QNo.9752869

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

下記をやってみてどうですか?
A1:D5にデータを入れて、A-Dの列幅を極端に無理に伸縮して、下記実行してみる。
Sub test02()
ActiveSheet.Range("A1:D5").Copy
Range("G1").PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("G1").PasteSpecial xlValue
End Sub
列幅のコピー?
とデータのコピーと2段構えです。
ーー
列幅がコピー先で保存されないという苦情?は、エクセルでは有名で、MSのエクセルの仕組み的に「セルの値」と「表示形式」と、構成的体裁(=列幅)が別の部分で処理になっていると(私的に)想像。
貼り付け先の行高や列幅と、元データを大きくしたフォントサイズとの関連は、小生は不勉強です。

投稿日時 - 2020-05-25 18:38:19

ANo.5

シート全体をコピーして新しいブックのシートに貼り付けで、シートのコピーと同じ結果になると思いますので、貼り付けの際に「形式を選択して貼り付け」で「元の列幅を保持」にすればどうでしょう。VBAコードはマクロの記録で。

投稿日時 - 2020-05-25 16:34:03

ANo.4

添付画像のように、
複写元ブックの課題セルを選択し
フォントを選択するコンボボックスを選択したときに
赤囲みのように、
テーマのフォントの本文が指定したフォントを選んでいるものと思います。

これは、MSPゴシックを選択しているのではなく
そのブックが選択したテーマの本文に指定しているフォントを選択しており、
たまたまそれが、MSPゴシックだということです。

このような選択が行われている場合、
シートを複写したときには
複写先ブックが選択しているテーマに依存します。
最近のエクセルは、
新たなブックを開いたときにのテーマが「Office」なので、
その影響を受け、游ゴシックに変わってしまいます。

対策とすれば、
複写元ブックの課題セルが選択しているフォントを
添付画像の上のほうに表示される赤丸部分を選択するのではなく
下のほう、すべてのフォントの一覧から選べば
テーマに依存しなくなり、フォントが書き換わらなくなるはずです。

投稿日時 - 2020-05-25 13:56:13

補足

回答ありがとうございます。
フォントはコピー元の本文のフォントとしては「MSゴシック」を選択しておりまして、
コピー先では該当部分で確認できるフォントは「MSゴシック」で引き継げていますが、
セル幅が変わってしまうので、拡大縮小印刷の縮小率が変わってしまい、困っているという話でした。
ご協力ありがとうございます。

投稿日時 - 2020-05-25 14:10:30

ANo.3

>~コピー先の列幅は変わりませんでした。
標準フォントを変更した後の新規ブックではなく、既存のブックにコピーした時に列幅が元ファイルと異なったまま、という事ですよね。

これでできるかは分かりませんが、既存のブックの標準フォントを変更する方法として、以下のようなものがあるそうです。


既に作成したブックの標準のフォントを変更するhttps://www.officelabo.net/excel_qa/qa29.html

投稿日時 - 2020-05-25 13:16:07

お礼

回答ありがとうございます。
既存ブックでMS Pゴシックを規定フォントとして設定後(再起動し)、既存ブックからシートを「新しいブック」にコピーしたところ、列幅が異なっているままだった。ということを言いたかったのですが、伝わらない文章を書いてしまいました。すみません。
ご協力ありがとうございます。

投稿日時 - 2020-05-25 14:07:11

ANo.2

>コピーすると列幅が変わる
挙動を確認していないので違うかもしれませんが。


エクセルの列幅は「標準フォント何文字分か」で決まります。なので、標準フォントが変われば、同じ文字数でも列幅(ピクセル)は変わります。

エクセルのデフォルトの標準フォントは、Excel2016で、それまでのMS Pゴシックから游ゴシックに変わりました。
多分、異なるバージョンのエクセルで作成したブック同士でコピーしているのではないでしょうか?

列幅が変わらないようにするには、そのブックの標準フォントを変えてやれば大丈夫の筈です。
ただしその場合、標準フォントを変更したエクセルの元の列の幅が変わってしまうような気がしますが。
参考URL:http://officetanaka.net/excel/function/tips/tips83.htm

投稿日時 - 2020-05-25 10:55:27

補足

回答ありがとうございます。おそらくMathmi様のおっしゃる通りです。
コピー元のブックは、デフォルト標準フォントがMS PゴシックのExcelで作られたもので、現在自分のPCに入っているのがExcel2019のため、コピーするときの新規ブックとしてはデフォルト標準フォントが游ゴシックになっている、のだと思います。

試しに、コピー先で[ページレイアウト]>[テーマ]の[フォント]>[フォントのカスタマイズ]から、コピー元の設定と同じにしてみたのですが、列幅は同じになりませんでした。
コピー元で、オプションから「新しいブックの作成時」の「次を規定フォントとして使用」をMS Pゴシックにしてからコピーしても、コピー先の列幅は変わりませんでした。

全く同じにするのは無理なのでしょうか。

投稿日時 - 2020-05-25 11:34:50

ANo.1

一番左の一番上をクリックして、コピーすると同じになります。それは1ページ全部になります。

投稿日時 - 2020-05-25 10:21:39

補足

回答ありがとうございます。
私の質問が分かりにくかったでしょうか。
他の方の回答を待とうと思います。
ありがとうございました。

投稿日時 - 2020-05-25 10:37:41

あなたにオススメの質問