エクセルマクロに関する質問です。(解決したら合計200P程度予定してます)


Range("M2:M20")に、
=L2/SUM($L$2:$L$20)
のような、全体に占める割合を出す式を各セル内に入れる時は、
Range("M2:M20") = "=RC[-1]/SUM(R2C12:R20C12)"
と、書けばいいと思うんですが、
一番最後のRowは常に変動ような場合(Range("M20")になったりRange("M135")になったりという感じ)、
どうやって書けばいいんでしょう???

※ForNextやDoLoopは使わない書き方を教えて下さい。


▼言い方を変えると次のような感じです▼

Columns("L")の、
最初のRow=2
から、
最後のRow=Range("A65536").End(xlUp).Row
までの合計に占める各セルの割合を
Columns("M")の各セルに入れ込みたい。


わかりにくい説明ですが。。。
どうぞよろしくお願いシマス!

回答の条件
  • 1人5回まで
  • 登録:2007/12/23 06:49:50
  • 終了:2007/12/23 19:34:20

回答(3件)

id:airplant No.1

airplant回答回数220ベストアンサー獲得回数492007/12/23 09:35:25

ポイント150pt

マクロで同じスタイルで書くとすれば、次のようになると思います。

ほとんどgsjapanさんのコードで解決しています。

Option Explicit

Sub rate()

    Dim sRow As String
    sRow = Range("L65536").End(xlUp).Row
    Range("M2", "M" & sRow) = "=RC[-1]/SUM(R2C12:R" & sRow & "C12)"

End Sub

なお、マクロよりシート上の関数でやったほうがいいかなと思います。

L列の合計をどこかのセルに入れて、名前を付ける。

普通に割り算をする。

id:gsjapan

希望通りの回答ですw

&の使い方がイマイチ苦手だったんで解決できて良かったです。

名前を付けるってのもやったこと無かったんですが、かなり便利ですね。

今後、多用させて頂きます。

いいヒントをありがとうございました♪

2007/12/23 19:08:33
id:SALINGER No.2

SALINGER回答回数3454ベストアンサー獲得回数9692007/12/23 10:00:34

ポイント30pt

M2セルの数式に

=L2/SUM($L$2:$L$65536)

を入れて下にコピー

id:gsjapan

あ。確かにこの数式でも質問の条件は満たしますねw

盲点でした・・・w

でももちろん正解ですので。今回もご回答。アリガトウございました!

2007/12/23 19:20:45
id:nandedarou No.3

nandedarou回答回数230ベストアンサー獲得回数342007/12/23 18:38:22

ポイント40pt

LastRow = Range("L" & Rows.Count).End(xlUp).Row

Range("M2:M" & LastRow).FormulaR1C1 = "=RC[-1]/SUM(R2C[-1]:R" & LastRow & "C[-1])"

上記の1行目で、L列の最後のセルの行(Row)をLastRowという変数に入れています。

上記の2行目で、そのLastRowの値を使っています。

いかがでしょうか?

id:gsjapan

なるほど。こんなLastRowの求め方もできるんですね。

参考になります&正解でした&ご回答ありがとうございました!

2007/12/23 19:22:20
  • id:taknt
    Range("M2:M" & Row)
    とかすればいいじゃないのか?
  • id:garyo
    回答したいけど回答できないのでやめた
  • id:nandedarou
    あ、ほとんで、最初の方の回答と同じです。
    回答を書いているうちに、オープンされていました。
    私のはオープンしなくても構いません。
  • id:gsjapan
    RangeやRC使うヤツに変数入れる方法いまいち把握してなかったんで苦戦してましたw
    この質問でなんとか理解できた感じもするので、感謝感謝です。
    何で回答できなかったかは気になるところですが、これにて質問終了とさせて頂きます。
    ご回答・コメント頂けた皆様ありがとうございました!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません