• ベストアンサー

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/17068)
回答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

  • excel 割引率のセルを絶対参照した場合の式は?

    下記で、D2の15%のセルを絶対参照にした場合、式はどのようにすればいいでしょうか。 例) 絶対参照にするセル D2 15%(割引率)            B4~B7 元値           C4~C7 結果  自分では・・・  C4=B4-B4*$D$2 で入力してみたのですが、他に式はありますか。 絶対参照にしない場合は、C4=B4*(1-0.15)でやってみました。 いずれも自信はありません。 よろしくお願いします。

  • Excel セルの値で行を選ぶ

    Excel セルの指定に関して質問です。 セルの値で列(行)を選択するにはどうするのでしょうか? 例えば B5に "3"が入っていたらC列(C4セル)、"4"が入っていたらD列(D4セル) を参照するというような具合に、ある特定のセルの値によって参照する列を変えたいのですが。 R1C1形式中にセルの参照をさせれば可能になりそうですが記述方法が分かりません。 よろしくお願いします。

  • エクセルのセル参照、一つずつ参照セルをずらしていきたい

    エクセルのセル参照の方法について教えてください。 2つのシートがあって、 ひとつのシートにはC4,D5,E6…というように行と列がひとつずつ増えていくところに値が入力されています。 このシートから、C4,D5,E6…のセルの値を取り出して 別のシートのA1,A2,A3…に縦に並んで表示させたいのですが、どのようにセルを参照させればC4,D5,E6…という 行と列がひとつずつ増えていくセルを参照できるでしょうか? よろしくお願いいたします。

  • セルの結合による影響

    エクセルのセル範囲を結合させた時の、結合したセル範囲内のセルが示す値について教えてください。 まず、B2:D5のセル範囲を結合します。結合したセル範囲を選択して、数字10を入力します。 任意のセルを選択して、式"=B2"を入力するとセルには、10が表示されます。次に"=C2"を入力すると、0(零)が表示されます。同じく他の、セル範囲のメンバーで同じことをしてもすべて0(零)が表示されます。 次に、式"=B2:C2"を入力すると、10が表示されます。しかし、式"=B2:D2"では、0(零)が表示されます。 さらに、式"=B2:C4"、式"B2:C3"、式"=B2:D5"では、#VALUEが表示されます。 いったい、一番最初に入力した10の数字はどこに格納されているのでしょうか?また、結合したセル範囲ないで、任意のセル範囲を参照してしまった場合、何を参照することになるのでしょうか?単にセル範囲の左上の値ではないようですが? 参考に、式"C2:D2"では、0(零)、式"=C2D3"では、同じように#VALUEとなります。(相対参照にはなっているようです?)詳しい方いらっしゃいませんか? よろしくお願いします。

  • 参照セルの式を文字として取得するには

    あるシートのB列に下記の書き込みがしてあります。  A B 1    =単価!C5 2    =単価!C2 3    =単価!C6 4    =単価!C4 セルA1に関数で"単価!C5"と文字で取得したいと思っています。 どなたか教えてください。 A列は同じシートの別な列を参照するのですが、B列の参照セルの行番号は同じにしたいのです。

  • エクセル セルに簡単に式が入れたい

    A1=A2、 C1=B2、  E1=C2・・・・といったように、1行目の一つ飛びのセルが2行目を参照する式をいちいち手で打たずに入力する方法はないでしょうか? また、ドラッグしてうまくやる方法があったとして、B1、D1・・・にも式が入っているため、この式は消さずにやりたいのです。 お分かりの方よろしくお願いいたします。

  • セルの時刻を変更したい

    Excel2007でマクロ作成中です。 B列とD列に時刻を変更する関数を入れたいのですが、皆目わかりません。 よろしくお願いします。 A列に2種類の時刻が入っています。 ア)下1ケタがゼロの時刻   A1  8:00   A2  9:10   A3  10:30 イ)下1ケタが 5の時刻   A4  9:05   A5  10:35    A6  11:55 B列セルに関数を入れ時刻を次のようにしたいです。 ア)下1ケタがゼロの時刻   B1  8:00 (A1セルと同じ時刻)   B2  9:10 (A2セルと同じ時刻)   B3  10:30 (A3セルと同じ時刻) イ)下1ケタが 5の時刻   B4  9:10 (A4セルに5分プラスの時刻)   B5  10:40 (A5セルに5分プラスの時刻)   B6  12:00 (A6セルに5分プラスの時刻) ----------------------------------------------------------- C列に2種類の時刻が入っています。 ア)下1ケタがゼロの時刻   C1  15:00   C2  16:10   C3  17:30 イ)下1ケタが 5の時刻   C4  13:05   C5  14:35    C6  18:55 D列セルに関数を入れ時刻を次のようにしたいです。 ア)下1ケタがゼロの時刻   D1  15:00 (C1セルと同じ時刻)   D2  16:10 (C2セルと同じ時刻)   D3  17:30 (C3セルと同じ時刻) イ)下1ケタが 5の時刻   D4  13:00 (C4セルから5分マイナスの時刻)   D5  14:30 (C5セルから5分マイナスの時刻)   D6  18:50 (C6セルから5分マイナスの時刻)

  • エクセルでセルを参照して列を追加したい

    以下のような表を作成中です。    B   C    D  E  F  G  H 3 開始  8/1            8  8 4 終了  11/30           1  2 5                     水 木 G3は=G4、G4は=C3、G5は=C3の式を入力してあります。 Hからは+1で表示されるようにしてあります。 開始の日付はこのような形でできたのですが、 終了が手作業になってしまいます。 C4の11/30を参照して、列を自動追加したいと思っているのですが、 どのような方法がありますでしょうか? マクロは少ししか経験がありません… どうぞよろしくお願いいたします。

  • エクセルVBAで設定したセルの値

    エクセルVBAについての質問です。 例えば、A1とB1のセルの値を参照している数式がC1セルに設定してあるとします。 さらに、D1のセルにはC1の値を参照している数式が設定してあるとします。 VBAでA1、B1のセルの値を変更したとします。 次のステップのVBAでC1、D1のセルを参照すれば、A1、B1の変更が反映された後の正しい値である C1、D1の値が取得できるのでしょうか? できて当たり前だと思うのですが、セルに設定してある数式が大変複雑であったりすると、ちゃんとA1、B1の変更が反映された正しいC1、D1セルの値がVBAで取得できるのかちょっと不安です。 ばかな質問かもしれませんが、回答をよろしくお願い致します。

  • Excelでセルに式を入れる時の簡単な方法

    エクセルで式を入れる時の便利な方法を教えてください。下のように例えば+12ステップでセルを参照するとき、ドラッグしてすばやく入力できるようにするには どのようにすればいいのでしょうか? ____|__A__|__B__|__C__|__D__|__E _1_|_=D1_|_____|_____|__3__|__1 _2_|_=D13|_____|_____|_____|__13 _3_|_=D25|_____|_____|_____|__25 _4_|_=D37|_____|_____|_____|__37 _:__|_____|_____|_____|_____|__: 500|_=D?_|_____|_____|_____|__: D(x+12)とする感じです。またはE列に数列をつくって D(E1),D(E2),D(E3)...というイメージでD1,D13,D25とできないでしょうか

専門家に質問してみよう