• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:関数をVBAで使用する方法)

VBAで関数を使う方法

このQ&Aのポイント
  • VBAで関数を使って文字列の集計を行いたい場合、COUNTIFS関数を使用します。
  • COUNTIFS関数を使う際には、検索対象の文字列をダブルクォーテーションで囲む必要があります。
  • さらに、COUNTIFS関数に条件を追加する場合は、条件の文字列もダブルクォーテーションで囲みます。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8469/18132)
回答No.1

> どのようにすれば「"」を追記できるでしょうか…? 文字列の中で「"」を入力するには「""」のように2個並べて書きます。そう進ことで「"」を入力したことになります。 > "=CountIfs(C:C," & 検索対象の文字 & "M:M,<>0)"にしますと「アプリケーション定義またはオブジェクト定義のエラーです。」と表示されます 「,」が足りません。 最終的には "=CountIfs(C:C,""" & 検索対象の文字 & """,M:M,<>0)" としてください。

levitooicompass
質問者

お礼

なるほど!&と変数を囲う「"」と、文字列を囲う「"」というわけですね!ご回答いただいて、ありがとうございました(^_^)

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

検索対象の文字 は変数でしたね、なので Cells(行 - 2, 19).Formula = "=CountIfs(C:C,""" & 検索対象の文字 & """,M:M,""<>0"")"

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.3

VBAコードの中でワークシート関数を使うのであれば,以下のようになります. Cells(行 - 2, 19) = WorksheetFunction.CountIfs(Range("C:C"),検索対象の文字) > 文字列なので、「みかん」の前後に「"」が必要なのですが、 勘違いされているようです. VBA のコードの中で文字列を定数として扱う場合に「"」が必要になります. str = "みかん" の場合は,str に文字定数 みかん が代入されますが, str = みかん の場合は,str に 文字変数みかん の内容が代入されます. みかん = "くだもの" str = みかん であれば,strの内容は くだもの になります. 老婆心ながら,今後もVBAを使われるのであれば,変数名や定数名などには半角英数字を使われることをオススメします.

levitooicompass
質問者

お礼

なるほど、文字列だから「"」が必要なのではなく、文字列を定数として扱うから「"」が必要という考え方なのですね!分かりやすいのでついつい食べ物の名前使ってしまうのですが、今後はアルファベットでの表記を心がけます…!

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

文字列の中の"は""になります。.Formulaも付けると数式だと意識できます。 Cells(行 - 2, 19).Formula = "=CountIfs(C:C,"" & 検索対象の文字 &"",M:M,""<>0"")" 迷ったときはマクロの記録でコードを取得してみるといいかもしれません。 FormulaR1C1になってセルの指定がC[1]とかになりますが、R1C1を外して通常のセル指定に変更したらいいです。

levitooicompass
質問者

お礼

Formula形式でも変数は使えるのですね!今別のVBAでFormula形式を使おうとしているので、参考にさせていただきます、ありがとうございます!m(_ _)m

関連するQ&A