Page 884 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼変数をはめ込んだ算式(sum関数)の記述法 日高久雄 03/3/17(月) 10:49 ┣Re:変数をはめ込んだ算式(sum関数)の記述法 ポンタ 03/3/17(月) 11:41 ┃ ┗Re:変数をはめ込んだ算式(sum関数)の記述法 日高久雄 03/3/17(月) 14:53 ┗Re:変数をはめ込んだ算式(sum関数)の記述法 JuJu 03/3/17(月) 12:21 ┗Re:変数をはめ込んだ算式(sum関数)の記述法 日高久雄 03/3/17(月) 14:57 ─────────────────────────────────────── ■題名 : 変数をはめ込んだ算式(sum関数)の記述法 ■名前 : 日高久雄 <hisao_hidaka@hotmail.com> ■日付 : 03/3/17(月) 10:49 -------------------------------------------------------------------------
いつも お世話になります。 b,c,d 各列の6行目に、1行目から5行目までの合計を一挙に出したい時 Range("B6:D6").Select Selection.FormulaR1C1 = "=SUM(R[-5]C:R[-1]C)" となると思いますが 6行目が変数Y行目であった場合 b,c,d列の1行目から(Y-1)行目までの各列合計をY列に 一挙に出す構文は書けないでしょうか? 変数Yを例えば range("E1")に格納しておいても結構です。 つまり 算式(sum関数)に変数を入れる方法を教えてください。 |
>6行目が変数Y行目であった場合 b,c,d列の1行目から(Y-1)行目までの各列合計をY列に >一挙に出す構文は書けないでしょうか? 変数Yを例えば range("E1")に格納しておいても結構です。 Selection.FormulaR1C1 = "=SUM(R[" & 1 - Y & "]C:R[-1]C)" でよいと思います。 ちなみに、 >b,c,d 各列の6行目に、1行目から5行目までの合計を一挙に出したい時 Range("B6:D6").Select Selection.FormulaR1C1 = "=SUM(R[" & 1 - Selection.Row & "]C:R[-1]C)" とか、 Dim MyRange As Range Set MyRange = Range("B6:D6") MyRange.FormulaR1C1 = "=SUM(R[" & 1 - MyRange.Row & "]C:R[-1]C)" とした方がよりスマートだと思います。 |
▼ポンタ さん: 早速お返事有難う御座いました。よく解りました。 Y行の後 Z行(Y+1からZ-1行までの合計)等続くのですが 書き方が解りましたので 応用できそうです。 >>6行目が変数Y行目であった場合 b,c,d列の1行目から(Y-1)行目までの各列合計をY列に >>一挙に出す構文は書けないでしょうか? 変数Yを例えば range("E1")に格納しておいても結構です。 > >Selection.FormulaR1C1 = "=SUM(R[" & 1 - Y & "]C:R[-1]C)" > >でよいと思います。 > >ちなみに、 > >>b,c,d 各列の6行目に、1行目から5行目までの合計を一挙に出したい時 > > Range("B6:D6").Select > Selection.FormulaR1C1 = "=SUM(R[" & 1 - Selection.Row & "]C:R[-1]C)" > >とか、 > > Dim MyRange As Range > Set MyRange = Range("B6:D6") > MyRange.FormulaR1C1 = "=SUM(R[" & 1 - MyRange.Row & "]C:R[-1]C)" > >とした方がよりスマートだと思います。 |
日高久雄さん、ポンタさん、こんにちはぁ >いつも お世話になります。 >b,c,d 各列の6行目に、1行目から5行目までの合計を一挙に出したい時 > Range("B6:D6").Select > Selection.FormulaR1C1 = "=SUM(R[-5]C:R[-1]C)" >となると思いますが >6行目が変数Y行目であった場合 b,c,d列の1行目から(Y-1)行目までの各列合計をY列に >一挙に出す構文は書けないでしょうか? 変数Yを例えば range("E1")に格納しておいても結構です。 まず、1行目は固定ということなので、相対座標ではなく絶対座標を使ってはどうでしょうか。 Selection.FormulaR1C1 = "=SUM(R1C:R[-1]C)" こんな感じです。 これだけで、1行目から1つ上の行までという選択になります。 あとは、数式を入れる行の指定方法ですが、 Range("B1:D1").Offset(Y - 1).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Cells(Y, 2).Resize(1, 3).FormulaR1C1 = "=SUM(R1C:R[-1]C)" Range("B" & Y & ":D" & Y).FormulaR1C1 = "=SUM(R1C:R[-1]C)" の(他にもありますが)好きな方法を使ってください。 ではではぁ |
▼JuJu さん: 有難う御座いました。 私の説明不足で Y行の後 z行(Y+1行からZ-1行の合計)等続きますので 今回は ポンタさんからご教示あった 方法を採用させていただきます。 今後も宜しく。 >日高久雄さん、ポンタさん、こんにちはぁ > >>いつも お世話になります。 >>b,c,d 各列の6行目に、1行目から5行目までの合計を一挙に出したい時 >> Range("B6:D6").Select >> Selection.FormulaR1C1 = "=SUM(R[-5]C:R[-1]C)" >>となると思いますが >>6行目が変数Y行目であった場合 b,c,d列の1行目から(Y-1)行目までの各列合計をY列に >>一挙に出す構文は書けないでしょうか? 変数Yを例えば range("E1")に格納しておいても結構です。 > >まず、1行目は固定ということなので、相対座標ではなく絶対座標を使ってはどうでしょうか。 > Selection.FormulaR1C1 = "=SUM(R1C:R[-1]C)" >こんな感じです。 >これだけで、1行目から1つ上の行までという選択になります。 > >あとは、数式を入れる行の指定方法ですが、 > Range("B1:D1").Offset(Y - 1).FormulaR1C1 = "=SUM(R1C:R[-1]C)" > Cells(Y, 2).Resize(1, 3).FormulaR1C1 = "=SUM(R1C:R[-1]C)" > Range("B" & Y & ":D" & Y).FormulaR1C1 = "=SUM(R1C:R[-1]C)" >の(他にもありますが)好きな方法を使ってください。 > >ではではぁ |