前提・実現したいこと
コンボボックスがA1からA20とB1からB20という計40個存在あります。
コンボボックスの値は0~5まで存在します。
同じ数字のAとBを比較して両方とも0もしくは0以外であれば問題ありませんが、片方が0で片方が0以外の場合にFalseを返すようにしたいです。
現状Try CatchとIf、Else Ifを用いて20回比較しているのですが見た目が良くなく配列に格納してfor文で回せばより簡潔に既述できるのではないかと考えています。
ただ実際にどのように記述するのか見当がつかず、そもそもどのように配列に格納すればよいのかがわかりません。
何かひらめくきっかけ程度でも構いませんので、助言を頂けないでしょうか?
お手数をおかけしますがよろしくお願いします。
余談ですがプログラム歴は2か月程度の初心者です。
また実際のソースには自作メソッドが多数使用されていて、その都度説明するのも手間がかかるのでそういった箇所はほぼ同じようなものに置き換えています。
該当のソースコード
lang
1 2 3 Try 4 5 ' 同じ数字のコンボボックスAとBの値が片方0、片方0以外であればFalseを返す ' 6 If ((ComboA_1.SelectedValue = 0) And (ComboB_1.SelectedValue <> 0)) OrElse ((ComboA_1.SelectedValue <> 0) And (ComboB_1.SelectedValue = 0)) Then 7 Throw New Exception("例外です。") 8 ElseIf ((ComboA_2.SelectedValue = 0) And (ComboB_2.SelectedValue <> 0)) OrElse ((ComboA_2.SelectedValue <> 0) And (ComboB_2.SelectedValue = 0)) Then 9 Throw New Exception("例外です。") 10 ElseIf ((ComboA_3.SelectedValue = 0) And (ComboB_3.SelectedValue <> 0)) OrElse ((ComboA_3.SelectedValue <> 0) And (ComboB_3.SelectedValue = 0)) Then 11 Throw New Exception("例外です。") 12 ElseIf ((ComboA_4.SelectedValue = 0) And (ComboB_4.SelectedValue <> 0)) OrElse ((ComboA_4.SelectedValue <> 0) And (ComboB_4.SelectedValue = 0)) Then 13 Throw New Exception("例外です。") 14 ElseIf ((ComboA_5.SelectedValue = 0) And (ComboB_5.SelectedValue <> 0)) OrElse ((ComboA_5.SelectedValue <> 0) And (ComboB_5.SelectedValue = 0)) Then 15 Throw New Exception("例外です。") 16 ElseIf ((ComboA_6.SelectedValue = 0) And (ComboB_6.SelectedValue <> 0)) OrElse ((ComboA_6.SelectedValue <> 0) And (ComboB_6.SelectedValue = 0)) Then 17 Throw New Exception("例外です。") 18 ElseIf ((ComboA_7.SelectedValue = 0) And (ComboB_7.SelectedValue <> 0)) OrElse ((ComboA_7.SelectedValue <> 0) And (ComboB_7.SelectedValue = 0)) Then 19 Throw New Exception("例外です。") 20 ElseIf ((ComboA_8.SelectedValue = 0) And (ComboB_8.SelectedValue <> 0)) OrElse ((ComboA_8.SelectedValue <> 0) And (ComboB_8.SelectedValue = 0)) Then 21 Throw New Exception("例外です。") 22 ElseIf ((ComboA_9.SelectedValue = 0) And (ComboB_9.SelectedValue <> 0)) OrElse ((ComboA_9.SelectedValue <> 0) And (ComboB_9.SelectedValue = 0)) Then 23 Throw New Exception("例外です。") 24 ElseIf ((ComboA_10.SelectedValue = 0) And (ComboB_10.SelectedValue <> 0)) OrElse ((ComboA_10.SelectedValue <> 0) And (ComboB_10.SelectedValue = 0)) Then 25 Throw New Exception("例外です。") 26 ElseIf ((ComboA_11.SelectedValue = 0) And (ComboB_11.SelectedValue <> 0)) OrElse ((ComboA_11.SelectedValue <> 0) And (ComboB_11.SelectedValue = 0)) Then 27 Throw New Exception("例外です。") 28 ElseIf ((ComboA_12.SelectedValue = 0) And (ComboB_12.SelectedValue <> 0)) OrElse ((ComboA_12.SelectedValue <> 0) And (ComboB_12.SelectedValue = 0)) Then 29 Throw New Exception("例外です。") 30 ElseIf ((ComboA_13.SelectedValue = 0) And (ComboB_13.SelectedValue <> 0)) OrElse ((ComboA_13.SelectedValue <> 0) And (ComboB_13.SelectedValue = 0)) Then 31 Throw New Exception("例外です。") 32 ElseIf ((ComboA_14.SelectedValue = 0) And (ComboB_14.SelectedValue <> 0)) OrElse ((ComboA_14.SelectedValue <> 0) And (ComboB_14.SelectedValue = 0)) Then 33 Throw New Exception("例外です。") 34 ElseIf ((ComboA_15.SelectedValue = 0) And (ComboB_15.SelectedValue <> 0)) OrElse ((ComboA_15.SelectedValue <> 0) And (ComboB_15.SelectedValue = 0)) Then 35 Throw New Exception("例外です。") 36 ElseIf ((ComboA_16.SelectedValue = 0) And (ComboB_16.SelectedValue <> 0)) OrElse ((ComboA_16.SelectedValue <> 0) And (ComboB_16.SelectedValue = 0)) Then 37 Throw New Exception("例外です。") 38 ElseIf ((ComboA_17.SelectedValue = 0) And (ComboB_17.SelectedValue <> 0)) OrElse ((ComboA_17.SelectedValue <> 0) And (ComboB_17.SelectedValue = 0)) Then 39 Throw New Exception("例外です。") 40 ElseIf ((ComboA_18.SelectedValue = 0) And (ComboB_18.SelectedValue <> 0)) OrElse ((ComboA_18.SelectedValue <> 0) And (ComboB_18.SelectedValue = 0)) Then 41 Throw New Exception("例外です。") 42 ElseIf ((ComboA_19.SelectedValue = 0) And (ComboB_19.SelectedValue <> 0)) OrElse ((ComboA_19.SelectedValue <> 0) And (ComboB_19.SelectedValue = 0)) Then 43 Throw New Exception("例外です。") 44 ElseIf ((ComboA_20.SelectedValue = 0) And (ComboB_20.SelectedValue <> 0)) OrElse ((ComboA_20.SelectedValue <> 0) And (ComboB_20.SelectedValue = 0)) Then 45 Throw New Exception("例外です。") 46 End If 47 48 ' 入力OK ' 49 Return True 50 51 Catch ex As BinalException 52 53 ' エラー ' 54 Return False 55 56 End Try 57
補足情報(FW/ツールのバージョンなど)
VB.NET
VisualStudio 2005
回答1件
あなたの回答
tips
プレビュー