セル範囲の中身だけを違う範囲に貼り付ける
3行マクロ 45回
3行マクロ講座 45回 セル範囲の内容だけを違う範囲に貼り付ける
書式はコピーしないで、内容だけをコピーして貼り付けるという作業を簡単にします。
それには、形式を選択して貼り付けの、値の貼り付けを行うのではなく、FormulaR1C1プロパティでセル範囲の内容を表し、それを他の範囲に代入してしまうのです。
~(サンプルファイルは、こちらから 3行マクロ45回サンプルデータ)
Excelバージョン:
FormulaR1C1プロパティでセルの内容を取り出す
Formulaプロパティ、FormulaR1C1プロパティは、セルに数式を入力したり、または入力されている数式を取得するプロパティです。
今回は数式もコピーするため、R1C1形式でセル参照する、FormulaR1C1プロパティを使います。
今回は数式もコピーするため、R1C1形式でセル参照する、FormulaR1C1プロパティを使います。
もとのセル範囲Range("B2:E25")の内容をFormulaR1C1で取得し、貼り付け先のRange("H2:K25")に代入します。
代入すると言っても、実はコードをイコールでつなげるだけ。
セル範囲の内容だけを違う範囲に貼り付けるマクロのコードは、
Sub 数式や値を別の範囲に貼り付け() Range("H2:K25").FormulaR1C1 = Range("B2:E25").FormulaR1C1 End Sub
実行すると、セルの内容が相対参照で代入されます。
貼り付けられた数式が、貼り付け先に応じて変化しているので、元表部分を削除したとしても数式にエラーがでることはありません。
貼り付けられた数式が、貼り付け先に応じて変化しているので、元表部分を削除したとしても数式にエラーがでることはありません。
イミディエイトウィンドウで実行する
イミディエイトウィンドウで実行する時は、コードを簡略化した記述で実行できます。
Sub マクロ名()~ End Sub を書かないだけでも楽ですね。
Sub マクロ名()~ End Sub を書かないだけでも楽ですね。
[H2:K25] = [B2:E25].formular1c1
[H2:K25] = [B2:E25].formular1c1
今日の講義は以上です。お疲れ様でした。