この記事では、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】について解説しました。
マクロをマスターしてさらに快適な生活を送っていきましよう。