• ベストアンサー

VBA セルに式を追加するには

お願いします。 セルC3に”=D5*3”、 セルC4に”=D7*3”、 セルC5に”=D9*3”と式を書き込みたいのです。 まず、式を書き込むこと自体がどうすれば判りません。 次に、式をたくさん書き込みたいので、セルが一つずれるたびに、規則的にD列は2つ飛びに参照するようにするにはどうすれば良いか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

startPos = 5 Count = 0 For Each x In Range("C3:C13") x.Formula = "=D" & startPos + Count * 2 & "*3" Count = Count + 1 Next みたいな感じでやればいいです。

VitaminBB
質問者

お礼

回答ありがとうございます。 教えていただいた方法で出来ることは確認しました。 大変申しわけないのですが、質問の内容を間違えてしまいました。 実際には、下記のようにデータが横方向に並んでいます。 この場合は数字ではなくアルファベットが増えていくのでどうすればよいのでしょうか? セルC3に ”=D5*3” セルD3に ”=F5*3” セルE3に ”=H5*3”

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

'横向き Dim base As Range Set base = Range("D5") For Each x In Range("C3:F3") x.Formula = "=" & base.Address(RowAbsolute:=False, ColumnAbsolute:=False) & "*3" Set base = base.Offset(0, 2) Next

VitaminBB
質問者

お礼

回答ありがとうございます。 うまくいきました。 あと、縦の場合で教えていただいたように、数字を変化させてシンプルにコードを書くことは、横方向では出来ないのでしょうか?

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

セルに式を残すなら Sub test03() For i = 3 To 20 Cells(i, "C").Formula = "=D" & ((i - 3) * 2 + 5) & "* 3" Next i End Sub 計算した値をセットするだけなら Sub test02() For i = 3 To 20 Cells(i, "C") = Cells((i - 3) * 2 + 5, "D") * 3 Next i End Sub 式は残らない。

VitaminBB
質問者

お礼

回答ありがとうございます。 NO1のお礼に書いたように、横方向の場合はどうすればよいのでしょうか?

関連するQ&A