プロが教える店舗&オフィスのセキュリティ対策術

列方向にSUM関数をいれたいのですが、その列数がその時によって違います。そこで、その変数をインプットboxから求めて次のようにしました。が、エラー!!
Dim i as Integer
i=InputBox("数字を入力してください")
Activecell.FormulaR1C1="=sum(RC[-i]:RC[-1])"
上の行がエラー部分です。エラーコード1004
変数iがうまいこと入ってくれないんです。どうしよう?

A 回答 (2件)

""の中は文字列であることに注意


ActiveCell.FormulaR1C1 = "=sum(RC[" & -i & "]:RC[-1])"
    • good
    • 0
この回答へのお礼

VBA初心者1週間目でこの場合の&がどういう役目を果たすのかがまだわかりませんが、この通りやってみると、まさしく求めていたように機能してくれました。
本当に助かりました。有難うございました。今回初めて質問させてもらって、こんなに早く回答頂いて驚きと感謝でいっぱいです。本当に助かりました。ありがとうございました。

お礼日時:2006/04/08 16:55

他の方法を提案します。


Function lgyou(a)
lgyou = Cells(30, a).End(xlUp).Row
End Function
Sub test01()
For j = 1 To 3
MsgBox WorksheetFunction.Sum(Range(Cells(1, j), Cells(lgyou(j), j)))
Next j
End Sub
データは30行まで、その下には別のデータや合計があるとします。
上記例では、A-C列の合計をそれぞれ出しています。
R1C1形式はおさらばしましょう。
多にも方法はありますが、SUMを使ってみました。
列合計は、
式を埋め込む(質問の例)
上の行から、空白セルまで順次足していく
上の行から最下行まで足していく
など考えましたが。
    • good
    • 0
この回答へのお礼

今回初めて質問させてもらって早速の回答を頂き本当にありがとうございました。記念すべき第1号回答をいただきました。VBA初心者1週間なのでいただいた回答をこれからじっくりさせていただきます。本当にありがとうございました。

お礼日時:2006/04/08 16:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A