
各項目毎の集計計算をしたいのですが
例
R1C1=項目区分1
R1C2.FormulaR1C1="=SUMIF(C3,""Zn"",C2)" のような計算式をセットしたい
R2C1=""
R2C2=2
R2C3=Z1
R3C1=""
R3C2=3
R3C3=Z1
R4C1=項目区分2
R4C2.FormulaR1C1="=SUMIF(C3,""Zn"",C2)" のような計算式をセットしたい
R5C1=""
R5C2=4
R5C3=Z2
R6C1=""
R6C2=5
R6C3=Z2
Cells(1,2).FormulaR1C1= "=SUMIF(C3,""Zn"",C2)"
但し Cells(1,2)のROW 部分は項目区分を入力したROWアドレスとなります。
上記部分の n部分を変数指定はできるのでしょうか?
または Zn を変数指定はできるのでしょうか?この場合のZnは数値となります。
理由
区分の範囲が不特定の為(追加削除がある) 項目区分名のカラム2に計算式をセットしておきたい
どうかご教授をお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
Sub Test2()
Dim n As Long
Dim rng As Range
Set rng = Range("C1", Cells(Rows.Count, 3).End(xlUp).Offset(, -2))
Application.ScreenUpdating = False
For Each c In rng
If c.Value Like "項目区分#" Then
n = Replace(c.Value, "項目区分", "") '...*
n = StrConv(n, vbNarrow) '...*
c.Offset(, 1).Formula = "=SUMIF(C:C,""Z" & n & """, B:B)"
End If
Next
Application.ScreenUpdating = True
End Sub
Formulaプロパティなら、R1C1方式でも、A1方式でも、数式は同じです。
""Z" & i は、CStr とか、Trimとか入れる必要があるのかは、ここでは無視します。エラーが発生したら考えればよいです。普通、VBAを得意とする人は、こういう場合、ワークシートに数式は入れないです。全部、マクロで数字を入れていきます。
No.2
- 回答日時:
>または Zn を変数指定はできるのでしょうか?この場合のZnは数値となります。
Zn は文字列"Z"と数値 n をくっつけた文字列ではなくて
Z1,Z2,Z3..これが「変数」、という意味でしょうか。
つまり
Sub test1()
Dim Z1 As Long
Dim Z2 As Long
Dim Z3 As Long
Z1 = 2
Z2 = 5
Z3 = 8
MsgBox "=SUMIF(C3," & Z1 & ",C2)"
End Sub
こういう事がしたく、Z1の1を変数指定できるかという意味?
もしそうなら配列変数を使います。
Sub test2()
Dim Z(1 To 3) As Long
Dim n As Long
Z(1) = 2
Z(2) = 5
Z(3) = 8
n = 1
MsgBox "=SUMIF(C3," & Z(n) & ",C2)"
End Sub
または、
>但し Cells(1,2)のROW 部分は項目区分を入力したROWアドレスとなります。
変数Z()の要素が、数式を入力するセルからの相対位置で求められるなら
変数を使うまでもなく、相対参照を使った数式にすれば良いです。
Cells(x, 2).FormulaR1C1 = "=SUMIF(C3,R[1]C[1],C2)"
大変有り難うございます。
& でくくるは他のHPで判りましたが "の数と 間の空白でにひっかかっていました。
"" ""でなくていいんですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
DataViewで複数条件の...
-
DataGridView 右詰め
-
COBOL プログラミング
-
[WHS]定数宣言の際にリテラル文...
-
【VBA】特定の文字列を含む場合...
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
count集計の結果が0の場合でも...
-
エクセルで最後の文字だけ置き...
-
Outlook 送受信エラー
-
外部参照してるキーを主キーに...
-
access2021 VBA メソッドまたは...
-
カーソル0件の時にエラーを発生...
-
エクセルの関数について教えて...
-
ストアドプロシージャ_カーソル...
-
VIEWの元のテーブルのindexって...
-
特定条件でWHERE句の条件を変更...
-
SELECT 文 GROUP での1件目を...
-
SQLサーバから、項目の属性(型...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
php mysql で WHERE句内に変数...
-
リストビューの項目の内容を変...
-
DataViewで複数条件の...
-
COBOLについて
-
バッチでcsvファイルの指定のカ...
-
DataGridView 右詰め
-
comboxのリストをファイルから...
-
Auto Filter
-
COBOL プログラミング
-
FORMで送信された項目名の格納...
-
初心者)DataGridViewの入力桁...
-
入門書のPHPサンプル内で、MySQ...
-
fgetcsvでCSVを取得した際のnul...
-
メニュー構築
-
重複したデータのみを取得する方法
-
C# リストビューの値を取得
-
ランダムな数字の生成
-
VB6でActiveReport1.5Jを使って...
-
HSPでプログラミングを始めたい。
おすすめ情報