2018年7月10日火曜日

【マクロ】エクセルの行列幅のみコピペ

通常では形式の貼り付けで列幅だけは貼り付けられるが、
行幅だけはコピペ出来ない。

まずは貼り付けたい箇所を選択し下記のマクロを実行する。
貼り付け先を指定するインプットボックスが出るので
直接入力するか、貼りたい場所をクリックする。
A1:G50を選択し、貼り付け先をB1にする。
この時は行幅だけ反映される。
A1:G50を選択し、貼り付け先をB列を指定する。
これで行、列幅共に反映される。

※貼り付け先を別ブックでも指定できるが行幅だけしか反映されないので
 貼り付け後に形式を選択して貼り付けで列幅を貼ればよい。

Sub 列幅も行高もコピー()
    'コピーする範囲を選択してから実行
    Dim i As Long
    Dim gyosu As Long
    Dim myRange As Range
    Dim doko As Range
    Dim saki As Range
    Set myRange = Selection
    gyosu = myRange.Rows.Count
    ActiveSheet.Select
    Set doko = Application.InputBox("コピー先の先頭セルを選択", Type:=8)
    Set saki = doko.Resize(gyosu, myRange.Columns.Count)
    myRange.Copy
    Range(doko.Address).Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteColumnWidths
    Application.CutCopyMode = False
    For i = 1 To gyosu
        saki.Rows(i).RowHeight = myRange.Rows(i).RowHeight
    Next
End Sub


0 件のコメント:

コメントを投稿