• ベストアンサー

エクセルVBAのコピーについて

初心者です。 表を別のシートにコピーしたいのですが、列と行の幅がコピーされません。どうすれば列と行のコピーができるのでしょうか。 pastespecial で引数を指定するのでしょうが、formats ではないでしょう? copy destination:= で別のシートにコピーをしても罫線の行と列の幅が元の幅と異なってしまいます。教えて! エクセルで形式を選択してコピーで、すべてをコピー、でも同じ現象が起きます。列をコピーしてから、すべてをコピーするとうまく行くのですが、VBAではどう書けばいいのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

表を別のシートにコピーペーストしても、列幅と行の高さがコピーされないのは手動でやっても同じですよね。列幅と行高は表以外の部分まで影響しますからただのコピーペーストでは無理なんです。 列幅だけなら、PasteSpecial Paste:=xlColumnWidths を使うとか。 行高もなら、For Nextでまわすか、いっそシート自体をコピーしたらどうですか?

muku2arby
質問者

お礼

解決しました。ありがとうございました。 色々な方法があるのですね。 今までワードに貼り付けていました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

セルの幅(列幅)はColumnWidth、高さ(行高さ)はRowHeightです。(自動調整の場合はAutoFitを指定します。) シートSourceがコピー元で、シートDestがコピー先とすれば、行の場合の例として  Dest.Rows(n).RowHeight = Source.Rows(n).RowHeight などとすれば行の高さがコピーできるはず。 (nは行番号) 面倒な場合はANo1さんが回答されているように、シートのコピーかな?

muku2arby
質問者

お礼

色々方法があるようで勉強になりました。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A