|
こんばんは。
>私は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がデータ無しを意味します。
試してみてください。
|
|