• 受付
  • 困ってます

VBA formuraR1C1プロパティ

  • 質問No.9676551
  • 閲覧数90
  • ありがとう数1
  • 気になる数1
  • 回答数2

お礼率 50% (1/2)

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行にまとめたいのですが。

宜しくお願いします。

回答 (全2件)

  • 回答No.2

ベストアンサー率 28% (4497/16047)

小生には、余り慣れない点で、間違っていたらすみません。
なんか、式の表示(形式)の問題だけの気がするが。
ーーー
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__

お礼率 50% (1/2)

ありがとうございます。
R1C1参照形式を表示させる事で、私の式では結果が異なる事が理解できました。
色々と試しているうちに、難しく考えすぎていました。

もう一点、後学の為に教えて頂きたいのですが・・・

Range("A2:B18").FormulaR1C1 = Range("A1:B1").FormulaR1C1

Range("A2:A18").FormulaR1C1 = Range("A1").FormulaR1C1
Range("B2:B18").FormulaR1C1 = Range("B1").FormulaR1C1

上記にて、参照式が異なるのはなぜでしょうか?
もしくは、どこかに参考になるサイトがあれば教えて頂きたく・・・
投稿日時:2019/11/11 10:42
  • 回答No.1

ベストアンサー率 54% (592/1085)

Excel(エクセル) カテゴリマスター
Range("A1:B18").Formula = Range("A1:B1").Formula
とか
Range("A1:B1").AutoFill Destination:=Range("A1:B18")
でいかがですか。
お礼コメント
__shino__

お礼率 50% (1/2)

ありがとうございます。

シンプルに結果が得られました。
投稿日時:2019/11/11 10:38
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ