
VBAで変数に関数式の結果をセットする場合の記述でご教示ください。
使用する関数としては
=IF(CountIf("A:A", "E5"), "×", "○")
これをVBAで変数にセットする場合
Judge_1 = Application.IF(CountIf("A:A", "E5"), "×", "○")
として記述していますが、CouiIfの箇所でコンパイルエラーが出ます。
【Sub または Functionが定義されていません。】
IFとCountIfの2つの関数があるのが原因かな?とも思いますが、
このような場合の正しい記載方法はどのようにするのでしょうか?
No.1ベストアンサー
- 回答日時:
WorksheetFunctionと言いますが,どんな関数でもあるワケじゃありません。
たとえばワークシート関数のIFはありません。オブジェクトブラウザでWorksheetFunctionを調べ,そこに並んでいるヤツが使えます。
またCountifはありますがこんな具合に使います。
Judge_1 = iif(application.worksheetfunction.countif(worksheets("シート名").range("A:A"), worksheets("シート名").range("E5"))>0, "×", "○")
#思いつきでテキトーやっても時間の無駄ですから,一渡りの参考資料は見るようにしましょう。通常はVBAのヘルプだけで70%ぐらいの事は調べが付きます。
No.2
- 回答日時:
(1)VBAで使える関数:IFはエクセル関数にもちろんありますが、VBAのIFステートメントにあります。
こちらを使えば仕舞いの話で、VBAではApplicationをIFにつけてもIFの役割をさせるのは、ダメではないかな。式をセルに埋め込むのなら使えると思うが、結果はセルの値としてセットされるので、それを改めてみないといけない。
(2)使い方:それとエクセルと同形の関数を使うとき、セル範囲はRangeをつけないとだめだったりするから、慎重に勉強のこと。
例
Sub test01()
MsgBox Application.CountIf(Range("A1:A10"), "a")
End Sub
ーー
Sub test02()
If Application.CountIf(Range("A1:A10"), "a") > 0 Then
MsgBox "aのセル有り"
Else
MsgBox "aのセルなし"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) 【エクセル】COUNTIFの検索条件が可変する数字の場合の数式 1 2022/09/27 15:34
- Visual Basic(VBA) この関数と同じ処理をVBAで行うにはどうしたら良いでしょうか? これは、1列の中に同じ値が複数存在し 21 2022/07/07 07:48
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) If関数に関する質問です。(再掲) 3 2022/10/01 20:51
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) 関数を最終行までコピー 3 2022/09/04 11:05
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/06/06 10:13
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでセル入力の数式に変数を用いたい
Excel(エクセル)
-
VBA 数式ではなく計算結果をセルに入れたい
Excel(エクセル)
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
6
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
7
VBAでEmpty値って何ですか?
Excel(エクセル)
-
8
VBAでダブルコーテーション入りの数式をセルにセットしたい
Visual Basic(VBA)
-
9
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
10
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
11
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
12
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
13
VBAにて計算式をセルへ代入できなくて困っています
Visual Basic(VBA)
-
14
VBA たまに変数がempty値になるエラー
Excel(エクセル)
-
15
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
16
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
17
Count Ifのセルの範囲指定に変数を使用したい
Visual Basic(VBA)
-
18
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
-
19
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
20
VBAで色の付いているセルの行削除
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
エクセルで条件に一致したセル...
-
日付が未入力の際はゼロか、空...
-
エクセルで複写のように自動入...
-
Excelシートの保護時にデータの...
-
Excelの「0」だけ非表示、小数...
-
エクセルvlookupのようなマクロ...
-
複数シートの同じセル内容を1シ...
-
ExcelでTODAY関数を更新させな...
-
エクセルで、勤務表から 日付...
-
エクセルで印刷部数をセルに表...
-
エクセルで特定のセルの値を別...
-
VBAで、セル(Range)のオブジ...
-
シート参照で変数を使いたい(EX...
-
エクセルでシート保護をかける...
-
エクセルで名簿
-
EXCELマクロで、シート間でのコ...
-
VBAで変数に関数式の結果をセッ...
-
セルを決まった数だけずらして...
-
Sheet1のセルの一連番号がSheet...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
日付が未入力の際はゼロか、空...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
複数シートの同じセル内容を1シ...
-
ExcelでTODAY関数を更新させな...
-
別シートのセルを絶対参照にする
-
Excelでスクロールすると文字が...
-
EXCELのハイパーリンクのセルを...
-
エクセルで20万行あるシート...
-
エクセルで、加筆修正したセル...
-
エクセル ハイパーリンクで画像...
-
Rangeメソッドは失敗しました。...
-
マクロ 新しいシートにデータ...
-
(Excel)あるセルに文字を入力...
-
エクセルで複写のように自動入...
-
EXCEL関数でシート名が変わる可...
-
エクセルで指定のセルのみ完全...
おすすめ情報