見出し画像

セルの式をコピーする

 Excel VBAでセルの式をコピーするには、主に以下の2つの方法があります。

方法1:RangeオブジェクトのFormulaプロパティを使用する

 RangeオブジェクトのFormulaプロパティを使用すると、セルの式を取得できます。
 取得した式を別のセルに代入することで、式をコピーすることができます。

VBA
' セルA1の式を取得
strFormula = Range("A1").Formula

' セルB1に式を代入
Range("B1").Formula = strFormula
コードは注意してご使用ください。

方法2:RangeオブジェクトのCopyメソッドとPasteSpecialメソッドを使用する

 RangeオブジェクトのCopyメソッドとPasteSpecialメソッドを使用して、セルの式をコピーすることもできます。

VBA
' セルA1をコピー
Range("A1").Copy

' セルB1に式のみを貼り付け
Range("B1").PasteSpecial xlPasteFormulas
コードは注意してご使用ください。

どちらの方法を使用するべきか

 上記2つの方法は、どちらもセルの式をコピーすることができますが、それぞれ異なる用途に適しています。

方法1: 特定のセルの式のみをコピーしたい場合に適しています。
方法2: 複数のセルの式をまとめてコピーしたい場合や、書式を保持したい場合に適しています。

その他の注意点

 式をコピーする際に、参照セルが絶対参照になっているかどうかを確認する必要があります。
 相対参照の場合は、コピー先のセルに合わせて参照セルが自動的に調整されます。
 絶対参照の場合は、コピー先セルでも元の参照セルがそのまま参照されます。
 数式配列をコピーする場合は、RangeオブジェクトのFormulaArrayプロパティを使用する必要があります。

参考情報

【Excel VBA】コピーとペースト(貼り付け) - 業務改善の部屋 [無効な URL を削除しました]
【エクセルVBA】指定範囲をコピー&ペーストする - パソコンスクールISA
1-数式を代入してコピー - 校務支援システムの森

この記事が気に入ったらサポートをしてみませんか?