[[20240417170142]] 『条件分岐してマクロを実行したい』(ジャスミン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『条件分岐してマクロを実行したい』(ジャスミン)

Sheet(1)のA列のセルで「5W」という文字があったら、条件分岐するマクロを作りたいのですが上手くできません。

Sub test1()

    Dim ws As Worksheet
    Set ws = Sheets(1)
    Const xAAA As String = "5W"
        If WorksheetFunction.CountIf(ws.Range("A:A"), xAAA) > 0 Then
            Call 5W
        Else
            Call 4W
        End If
End Sub

上記でA列に「5W」は無いのですが
Call 5W 
が実行されます。
どのようにしたら
Call 4W
が実行されるか教えてください。
よろしくお願いいたします。

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


因みにプロシジャー名の先頭文字が数字はNG
(結果) 2024/04/17(水) 17:15:13

 つまり、
 >Call 5W 
 >が実行されます。
 は、妄想だと思います。
(結果) 2024/04/17(水) 17:20:30

 指摘がありましたように、プロシージャ名を数字で始めることはできません。
 一度、下記に目を通すとよいかもしれません。
 「Visual Basic の名前付け規則」
https://learn.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/visual-basic-naming-rules
(xyz) 2024/04/17(水) 17:30:15

質問のほうについて、詰まっている部分がわかりませんが↓じゃないですか?
    Sub test1()
        If WorksheetFunction.CountIf(Sheets(1).Range("A:A"), "5W") > 0 Then
            MsgBox "あるよ"
        Else
            MsgBox "ないよ"
        End If
    End Sub

(もこな2 ) 2024/04/17(水) 17:32:48


 そもそも
 Call 5W
 Call 4W
 の2行は赤字になっていませんか?
 実行すると、
 Call 5W の行がハイライトされ、
「コンパイルエラー:構文エラー」になるはずです。
 確認してもらえますか?

 条件分岐はできているはずなので、
 適切なプロシージャ名、例えば、Sub5W とか Sub4W とかにしたらいかが?

(xyz) 2024/04/17(水) 19:42:01


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.