Excel

【Excel】VBAマクロで数式・計算式コピー&貼り付け(最終行まで、別シート、そのまま、相対参照、ペースト)方法【Range, LastRow, PasteSpecial】

当サイトでは記事内に広告を含みます。

この記事では、VBAマクロで数式・計算式コピー&貼り付け(最終行まで、別シート、そのまま、相対参照、ペースト)方法【Range, LastRow, PasteSpecial】について解説していきます。

ポイントとしては、`Range`オブジェクト、`LastRow`を見つける方法、そして`PasteSpecial`メソッドを使用することです。

なお、マクロ初心者でもわかりやすいように変数名をaaaaa変数aaaaaといった名称にしています。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロで数式・計算式コピー&貼り付け(マントヒヒ列の2行目から最終行までの相対参照の数式をコピーして、別シートの同じ場所に繰り返しペースト)方法

それではまず、マントヒヒ列の2行目から最終行までの相対参照の数式をコピーして、別シートの同じ場所に繰り返しペーストする方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub CopyPasteFormula()
    Dim aaaaaLastRowaaaaa As Long
    Dim aaaaaSheet1aaaaa As Worksheet, aaaaaSheet2aaaaa As Worksheet
    
    ' シートの設定
    Set aaaaaSheet1aaaaa = ThisWorkbook.Sheets("Sheet1")
    Set aaaaaSheet2aaaaa = ThisWorkbook.Sheets("Sheet2")
    
    ' 最終行を見つける
    aaaaaLastRowaaaaa = aaaaaSheet1aaaaa.Cells(aaaaaSheet1aaaaa.Rows.Count, "B").End(xlUp).Row
    
    ' 数式のコピー & 貼り付け
    aaaaaSheet1aaaaa.Range("B2:B" & aaaaaLastRowaaaaa).Copy
    aaaaaSheet2aaaaa.Range("B2:B" & aaaaaLastRowaaaaa).PasteSpecial Paste:=xlPasteFormulas
    
    Application.CutCopyMode = False
End Sub

コードのAlt+F8を押し、マクロ選択画面でCopyPasteFormula関数を実行します。

このスクリプトは、シート1のB列にある数式を最終行までコピーして、シート2の同じ範囲にペーストします。

`LastRow`を使って最終行を動的に検出し、`PasteSpecial`メソッドを使用して数式のみを貼り付けることがこのコードのキーポイントです。

VBAマクロで関数入りの数式・計算式コピー&貼り付け(20行目にて1列目から最終列までの数式をコピーして、別シートの同じ場所にペースト)方法

続いては、20行目にて1列目から最終列までの数式をコピーして、別シートの同じ場所にペーストする方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub CopyPasteFormulaAcrossColumns()
    Dim aaaaaLastColaaaaa As Long
    Dim aaaaaSheet1aaaaa As Worksheet, aaaaaSheet2aaaaa As Worksheet


    
    ' シートの設定
    Set aaaaaSheet1aaaaa = ThisWorkbook.Sheets("Sheet1")
    Set aaaaaSheet2aaaaa = ThisWorkbook.Sheets("Sheet2")
    
    ' 最終列を見つける
    aaaaaLastColaaaaa = aaaaaSheet1aaaaa.Cells(20, aaaaaSheet1aaaaa.Columns.Count).End(xlToLeft).Column
    
    ' 数式のコピー & 貼り付け
    aaaaaSheet1aaaaa.Range(aaaaaSheet1aaaaa.Cells(20, 1), aaaaaSheet1aaaaa.Cells(20, aaaaaLastColaaaaa)).Copy
    aaaaaSheet2aaaaa.Range(aaaaaSheet2aaaaa.Cells(20, 1), aaaaaSheet2aaaaa.Cells(20, aaaaaLastColaaaaa)).PasteSpecial Paste:=xlPasteFormulas
    
    Application.CutCopyMode = False
End Sub

コードのAlt+F8を押し、マクロ選択画面でCopyPasteFormulaAcrossColumns関数を実行します。

このマクロは、特定の行(この例では20行目)にあるすべての数式を最終列までコピーし、別のシートにペーストします。

動的に最終列を特定し、その範囲内の数式を効率的にコピー&貼り付ける方法を示しています。

まとめ VBAマクロで数式コピーし貼り付け(別シート、そのまま、相対参照、ペースト)方法【Range, LastRow, PasteSpecial】

ここでは【Excel】VBAマクロで数式・計算式コピー&貼り付け(最終行まで、別シート、そのまま、相対参照、ペースト)方法【Range, LastRow, PasteSpecial】について解説しました。

マクロをマスターしてさらに快適な生活を送っていきましよう。