[[20150216132101]] 『表の体裁を保持して貼り付けしたい』(sinzou) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『表の体裁を保持して貼り付けしたい』(sinzou)

マクロによる表の貼り付けを頻回に行っております。

 (シート名は仮です)
 Sub 最終行()
 Sheets("テンプレート").Select
    Range("A1:F25").Select
    Selection.Copy
    Sheets("来月").Select    
 n = Cells(Rows.Count, "B").End(xlUp).Row + 1
      Range("A" & n).Select
      ActiveSheet.Paste
 End Sub

 これで、貼り付けた場合、テンプレートの行・列の幅がリセットされて
 しまいますが、体裁を保持したままで
 貼り付ける方法はあるでしょうか?
 よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


テンプレートシート自体をコピーしてリネームしては?
(パオ〜〜ン) 2015/02/16(月) 13:40

行のほうはうまくいかなかったのですが
ActiveSheet.Pasteの前に
Selection.PasteSpecial Paste:=xlPasteColumnWidths
を追加すると列は幅もコピーしてくれますよ

Sub 最終行()

    Dim n
    Worksheets("テンプレート").Range("A1:F25").Copy
        Sheets("来月").Select
    n = Cells(Rows.Count, "B").End(xlUp).Row + 1
        Range("A" & n).Select
        Selection.PasteSpecial Paste:=xlPasteColumnWidths
        ActiveSheet.Paste
End Sub

(とらねこ) 2015/02/16(月) 15:57


追記:もし行の高さが全て同じならあらかじめ高さを揃えておくのがいいと思いますよ
(とらねこ) 2015/02/16(月) 16:37

パオ〜〜ンさん、とらねこさんへ
 表は必要数分を小刻みに増やして調整するので
 運用上、シートごと…という訳にはいきません。
 (説明が足りず申し訳ありません)
 とらねこさんの教えて下さったマクロ、使用してみます。
 表を体裁ごとコピーするのは
 意外と難しいんですね…

(sinzou) 2015/02/16(月) 17:03


 運用がわかりませんが、テンプレートの中に複数の表があるのならテンプレートを分けて
 コピーして使えるようにはできないでしょうか。

 テンプレートが増えるのが嫌なら、別ファイルにするなり、非表示にするなり対応方法は
 あるように思います。
(Mook) 2015/02/16(月) 17:06

Sub 最終行()
    Dim r As Range
    Dim i As Long
    Dim n As Long
    Set r = Worksheets("テンプレート").Range("A1:F25")
    n = Worksheets("来月").Cells(Rows.Count, "B").End(xlUp).Row + 1

    r.Copy Worksheets("来月").Range("A" & n)
    For i = 1 To r.Rows.Count
        Worksheets("来月").Range("A" & n).Offset(i - 1).RowHeight = r.Cells(i, 1).RowHeight
    Next i
    Set r = Nothing
End Sub

何度もすみません。
これでご希望に添えるものになったかと…
(とらねこ) 2015/02/17(火) 08:34


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.