| 
    
     |  | こんばんは。 
 >私はExcelで、イラストロジックを途中まで解いてくれるプログラムを、最終的には作ろうと思っています。
 
 これにCase文が本当に合っているか否かは???ですが・・・。
 
 
 >そのために、3つのセルに、それぞれ入力されているかされていないかで、異なる動きをするプログラムを作ろうと思っています。
 >例えば、
 >「B5は入力あり」かつ「C5は入力なし」かつ「D5は入力あり」のとき「「成功!」というメッセージボックスを表示する」
 >当てはまらないときは、「「失敗・・・」というメッセージボックスを表示する」
 >といった風にです。
 >これをCaseで作りたく、下のように作ってみたのですが、思うように動きません。
 >
 >Sub テスト()
 >  Select Case Range("B5,C5,D5")
 >      Case Is = Not Empty, Is = Empty, Is = Not Empty
 >        MsgBox "成功!"
 >      Case Else
 >        MsgBox "失敗・・・"
 >  End Select
 >End Sub
 本当に上記のように二つの分岐なら、IF文で十分ですよね??
 
 それとも拡張性を重視してのCase文(将来的に条件が増えても対応可能なため)
 なんでしょうか?
 
 あるいは、上記コードは例題としてと言う意味で実際には、もっと
 条件が増えることが前提なのでしょうか?
 
 等がわかりませんが・・。
 
 標準モジュールに
 '===================================================
 Sub main()
 Dim rng As Range
 Dim result As Variant
 Set rng = Range("b5:d5")
 result = Join(Evaluate("if(" & rng.Address & "="""",0,1)"), "")
 Select Case result
 Case "111"
 MsgBox "有有有"
 Case "001"
 MsgBox "無無有"
 Case "101"
 MsgBox "有無有"
 Case Else
 MsgBox Replace(Replace(result, "0", "無"), "1", "有")
 End Select
 End Sub
 
 アクティブシートにセルB5〜D5に適当なデータを入力後(未入力も含む)、
 上記のmainを実行してみてください。
 B5,C5,D5の順序で1がデータ有り、0がデータ無しを意味します。
 
 試してみてください。
 
 |  |