Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4976 / 13644 ツリー ←次へ | 前へ→

【53290】VBAプログラムをはしらせた結果、数式を表示させたいとき gogo 07/12/26(水) 0:18 質問[未読]
【53292】Re:VBAプログラムをはしらせた結果、数式を... かみちゃん 07/12/26(水) 0:34 発言[未読]
【53295】Re:VBAプログラムをはしらせた結果、数式を... gogo 07/12/26(水) 10:51 お礼[未読]
【53294】Re:VBAプログラムをはしらせた結果、数式を... SS 07/12/26(水) 10:11 回答[未読]
【53296】Re:VBAプログラムをはしらせた結果、数式を... gogo 07/12/26(水) 10:54 お礼[未読]

【53290】VBAプログラムをはしらせた結果、数式を...
質問  gogo  - 07/12/26(水) 0:18 -

引用なし
パスワード
   よろしければ、ひとつ教えていただけないでしょうか。

たとえば、次のようなソースにおいて、cells(2,5)には数式が表示されません(和も求まりません)。
どのようにすれば、セルに数式を表示し、なおかつcellsを使った範囲において和を求めることができるでしょうか。

Cells(2, 2) = 3
Cells(2, 3) = 4
Cells(2, 4) = 5
Cells(2, 5).Formula = "=Sum(Range(Cells(2, 2), Cells(2, 4)))"

4行目で、"=sum(B2:D2)"とすればここではセルに数式を入力した上で和を表示することができますが、
あらかじめcells(2,2)とB2などの対応がわかっていないと記述できないので、
Cells(2,a)からcells(2,b)までの和を求めたい場合は記述できません。

application.worksheetfunction.sumを使えば、cellsを使うこともできますが、
結果、セルに数式は表示されません。

うまいやり方はあるのでしょうか。
どうぞよろしくお願いいたします。

【53292】Re:VBAプログラムをはしらせた結果、数式...
発言  かみちゃん  - 07/12/26(水) 0:34 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Cells(2, 5).Formula = "=Sum(Range(Cells(2, 2), Cells(2, 4)))"

これは、
Cells(2, 5).Formula = "=Sum(" Range(Cells(2, 2), Cells(2, 4)).Address(0, 0) & ")"
としないといけないのではないでしょうか?

【53294】Re:VBAプログラムをはしらせた結果、数式...
回答  SS  - 07/12/26(水) 10:11 -

引用なし
パスワード
   ▼gogo さん:
こんにちは、Addressとか使うとスマートになるのかもしれませんが
私が分かる方法では以下になります。

=sum(B2:D2)をR1C1参照形式にすると
=SUM(R2C2:R2C4)となるので

Cells(2,a)からcells(2,b)は
"=SUM(R2C" & a & ":R2C" & b & ")"
とすれば良いのではないでしょうか?
但し計算式が絶対参照になってしまうようです。

>よろしければ、ひとつ教えていただけないでしょうか。
>
>たとえば、次のようなソースにおいて、cells(2,5)には数式が表示されません(和も求まりません)。
>どのようにすれば、セルに数式を表示し、なおかつcellsを使った範囲において和を求めることができるでしょうか。
>
>Cells(2, 2) = 3
>Cells(2, 3) = 4
>Cells(2, 4) = 5
>Cells(2, 5).Formula = "=Sum(Range(Cells(2, 2), Cells(2, 4)))"
>
>4行目で、"=sum(B2:D2)"とすればここではセルに数式を入力した上で和を表示することができますが、
>あらかじめcells(2,2)とB2などの対応がわかっていないと記述できないので、
>Cells(2,a)からcells(2,b)までの和を求めたい場合は記述できません。
>
>application.worksheetfunction.sumを使えば、cellsを使うこともできますが、
>結果、セルに数式は表示されません。
>
>うまいやり方はあるのでしょうか。
>どうぞよろしくお願いいたします。

【53295】Re:VBAプログラムをはしらせた結果、数式...
お礼  gogo  - 07/12/26(水) 10:51 -

引用なし
パスワード
   かみちゃんさん

どうもありがとうございます。
.address(0,0)を加えることによって、
(0,0)を基点とした絶対参照に置き換えるということなのでしょうか。

まだまだ不勉強ですので、
後ほどまたaddressについては調べてみることにします。

どうもありがとうございました。

【53296】Re:VBAプログラムをはしらせた結果、数式...
お礼  gogo  - 07/12/26(水) 10:54 -

引用なし
パスワード
   SSさん

どうもありがとうございます。
確かに、セル上でどのように表示されるかを考えれば、
"&"でつなげていくことでできますね。

R1C1形式にはあまりなじみがありませんでしたが、
このような場合には有効だなぁと感じました。

どうもありがとうございました。

4976 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free