• 締切済み

VBA formuraR1C1プロパティ

excel上に複数の数式が入っています。 VBAにてformuraR1C1プロパティでセル範囲をコピーし、貼り付け行を拡張して代入すると、参照値がおかしくなります。 (行が*2で増えていきます) 例 | A | B | 1 | =I1+J1 | =J1+K1 | Range("A2:B18").FormulaR1C1 = Range("A1:B1").FormulaR1C1 結果 | A | B | 1 | =I1+J1 | =J1+K1 | 2 | =I2+J2 | =J2+K2 | 3 | =I4+J4 | =J4+K4 | ・ ・ ・ 以下のプログラムを実行した場合と同様の結果を得たいのですが、どのように変更するべきでしょうか。 Range("A2:A18").FormulaR1C1 = Range("A1").FormulaR1C1 Range("B2:B18").FormulaR1C1 = Range("B1").FormulaR1C1 実際にはコピーしたい列数が多い為、1行にまとめたいのですが。 宜しくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

小生には、余り慣れない点で、間違っていたらすみません。 なんか、式の表示(形式)の問題だけの気がするが。 ーーー Excelを開き ファイルーオプションー数式ーR1C1参照形式を使用するにチェックを入れる操作をする。 標準モジュールに Sub test07() Range("a1:B1").Copy Range("a2:B18") End Sub ーー 今後のためには R1C1参照形式を使用するにチェックを外しておく。 ーー 実行後ですが、下記でよろしいですか。 数式ーワークシート分析ー数式の表示を操作すると、 A1:B18の各セル(の式)は =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9] =RC[9]+1 =RC[8]+RC[9]

__shino__
質問者

補足

ありがとうございます。 R1C1参照形式を表示させる事で、私の式では結果が異なる事が理解できました。 色々と試しているうちに、難しく考えすぎていました。 もう一点、後学の為に教えて頂きたいのですが・・・ Range("A2:B18").FormulaR1C1 = Range("A1:B1").FormulaR1C1 Range("A2:A18").FormulaR1C1 = Range("A1").FormulaR1C1 Range("B2:B18").FormulaR1C1 = Range("B1").FormulaR1C1 上記にて、参照式が異なるのはなぜでしょうか? もしくは、どこかに参考になるサイトがあれば教えて頂きたく・・・

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

Range("A1:B18").Formula = Range("A1:B1").Formula とか Range("A1:B1").AutoFill Destination:=Range("A1:B18") でいかがですか。

__shino__
質問者

お礼

ありがとうございます。 シンプルに結果が得られました。