質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

1142閲覧

VB.NET コンボボックスの値の比較を配列を使って書きたいです。

drylemonsplash

総合スコア11

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/06/10 02:12

編集2019/06/10 03:32

前提・実現したいこと

コンボボックスが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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alg

2019/06/10 03:15

ソースコードは、マークダウンの「コードを入力」機能を利用してご提示いただくと、見やすくなります。よろしくお願いします。 https://teratail.com/help#about-markdown
drylemonsplash

2019/06/10 03:33

ソースコードを見やすいように修正しました。 お手数をおかけして申し訳ありません。 よろしくお願い致します。
guest

回答1

0

ベストアンサー

VB.NET

1Private ComboA(19) As ComboBox 2 3ComboA(0) = ComboA_1 4ComboA(1) = ComboA_2 5 6'もしくは 7Private ComboA As ComboBox() = {ComboA_1,ComboA_2} 8 9'もしくは 10For i = 0 To 19 11 ComboA(i) = Me.Controls($"ComboA_{i + 1}") 12Next 13

みたいな感じで格納すればよろしいかと思います。

投稿2019/06/10 04:05

YAmaGNZ

総合スコア10557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

drylemonsplash

2019/06/11 07:42

返信が遅くなり、申し訳ありません。 一番下の例は考え付きませんでした。 勉強になります。 実際に記述して確かめてみたいところなのですが、別件にて立て込んでいる為、時間が出来次第試します。 回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問