解決済みの質問
Dim 月 As Integer
If 月 = 3 Or 月 = 6 Or 月 = 9 Or 月 = 12 Then
End If
の場合は上の様に記載すればいいのですが
「もしくは」の条件がたくさんある場合、
(月,"or",3,6,9,12)
のようなことはできないのかな?と思いました。
今の条件は4つなので楽チンですが
条件が10個、20個となっても
Or 月 = 数値
と書き続けるしかないのでしょうか?
連番ではなく、飛び飛びの数です。
ご教授よろしくお願い致します。
投稿日時 - 2009-10-08 20:58:37
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(5件中 1~5件目)
(1)配列に条件となる値を入れて、0からUBound(x)までのようその値と等しいか繰り回して聞く。ORなら見つかったところで繰り回し処理を脱出。質問のような書き方よりはましだろう。
(2)EXCELの場合は同一列の複数セルに条件値を入力し、そのセル範囲でFindメソッドで聞く。見つかれば条件をみたし、見つからなければ条件不成立。EXCELの予定する方法かもしれない。色々なデータはシートのセルに置くのが原則。
(3)(順次比較以外に)配列の値に関し、Find機能はVBAではないと思う。(だんだん言語によっては設けられていくと思う)。
自分のコードで検索すればよい。幸い、2分検索法(知ってますか)という、コード数も10行以下の、検索回数も少なくてすむアルゴリズムがある。自分で組めばよい。
(4)数式で表されるような(数列的な)ルール性があれば、それを条件で使う(プログラム化する)のが一番です。
(5)配列で1,3,9だけ該当の場合、
x=Array("","1","","2","","","","","","9","")
という配列を作って
y=2
if x(y)<>"" then
'条件該当
Else
'条件該当せず
End IF
といった方法もある。
(6)もっと条件が多ければ、ファイル(多分テキストファイルで済む)にデータを持ち、必要の都度、読み込んでそのデータと比較するなどになろう。
投稿日時 - 2009-10-08 22:03:28
お礼
お詳しいですね。ありがとうございます。
投稿日時 - 2009-10-09 23:01:37