新生活を充実させるための「こだわり」を取材!!

早速ですが、例えば以下の関数式をVBAで組み込みたいとき、期待した通りにセットできません。

任意のセル = "=SUMIF($G$3:$G124,"11月",I$3:I124)"

あるコードの中でセルに、

"=SUMIF($G$3:$G124,"11月",I$3:I124)"
※既に運用済みなので、「そもそも関数を使わなければいい」は出来ません。

のようにセットしたいですが、"11月"の個所がうまく行きません。
月一で行う処理で"11月"の部分は可変になり変数(対象月という変数名)にします。

"=SUMIF($G$3:$G124," & "" & 対象月 & "" & ",I$3:I124)"←""は文字と認識させるため
或いは
"=SUMIF($G$3:$G124," & 対象月 & ",I$3:I124)"
とすると、アプリケーション定義エラーになります。

単純に対象月の前後に"を増やすと(以下)、
range("I125") = "=SUMIF($G$3:$G124," & """ 対象月 & """ & ",I$3:I124)"
対象月が変数ではなく文字として扱われ、
=SUMIF($G$3:$G124," 対象月 & ",I$3:I124)
となります。

"=SUMIF($G$3:$G124,"11月",I$3:I124)"
のようにセットされるにはどのようにコードを書けばいいでしょうか?

ご存知の方、ご教授願います。

教えて!goo グレード

A 回答 (3件)

こんばんは


>range("I125") = "=SUMIF($G$3:$G124," & """ 対象月 & """ & ",I$3:I124)"
対象月が変数ではなく文字として扱われ、
=SUMIF($G$3:$G124," 対象月 & ",I$3:I124)
となります。
&の位置を確認して

Dim 対象月 As String
対象月 = "11月"
Range.Formula = "=SUMIF($G$3:$G124,""" & 対象月 & """,I$3:I124)"
    • good
    • 1
この回答へのお礼

お返事有難うございます。
期待通りになりました。
&と文字列の組み合わせで混乱したようです。

お礼日時:2021/12/17 19:57

こんばんは



可変部分だけ特殊文字で定義しておいて、後で、入れ替えるとか。
(例では「@@」を使用しています)

Const fnc = "=SUMIF($G$3:$G124,""@@"",I$3:I124)"

対象月 = "11月"

Range("I125").FormulaLocal = Replace(fnc, "@@", 対象月)
    • good
    • 0
この回答へのお礼

お返事有難うございます。
実は考えてはいましたが、試してはいませんでした。
試してみます。

お礼日時:2021/12/17 19:59

> "=SUMIF($G$3:$G124," & """ 対象月 & """ & ",I$3:I124)"



もうちょい。

"=SUMIF($G$3:$G124," & """ & 対象月 & """ & ",I$3:I124)"

出は如何ですか?
    • good
    • 0
この回答へのお礼

お返事有難うございます。
結果は、
=SUMIF($G$3:$G124," & 対象月 & ",I$3:I124)
でした。
※左辺を~.formulaにしても同じでした。
もうちょい考えます。

お礼日時:2021/12/17 19:55

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

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

教えて!goo グレード

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

このカテゴリの人気Q&Aランキング