• ベストアンサー

Select Case について

shigatsuの回答

  • ベストアンサー
  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.2

200個とはまた随分とフンパツしましたね。 200個の全く異なる事象があるのでしょうか?その中には何か法則が無いですかね? 数量的には問題なくても、後々のメンテナンスやソースの可読性などを考えるとどうかと思います。 いわゆる「美しいソース」ってのは結構重要だと思いますよ。 例えば配列に対するループ処理などに置き換え可能な事は無いですかね?

vicky3
質問者

お礼

Case文を200個も作ったのは、メッセージを表示するためのキーを Select Caseで判断していました。 最初はメッセージの種類も少なかったのですが、だんだん多くなって きてしまって・・・ 今、改善策を考え中です。 アドバイス、ありがとうございました。

関連するQ&A

  • select case文について

    VB6.0のSelect Case文について質問です。 現在、ある文字列(mojiretu)の中から特定の文字を検索して その文字が文字列(mojiretu)の中に存在したらチェックボックスにチェックという一連の処理を行いたいのですがうまくいきません>< このSelect Case文のどこを直すべきでしょうか? select case mojiretu case instr(mojiretu,"abc") chk1.value=1 case instr(mojiretu,"def") chk2.value=1 case else chk3.value=1 end select

  • Select case の条件にOrは使えない???

    いつもお世話になっています。 ASP(VBScript)でプログラミング中です。 多分VBでは出来たと思うのですが、 Select case A case 1 Or 2       処理A End Select のように、Aが1でも2でも通って欲しい処理があるのですが、 上記のように書いた場合 Aが1でも2でも 処理Aを通ってくれません。 こういう記述の仕方って出来ませんでしたっけ? Select case A case 1       処理A   case 2 処理A End Select のように2回同じことを書かなきゃいけないんでしょうか・・・ それとも何か他のところでミスってるだけで、こういう書き方はOKなのでしょうか?困ってます。よろしくお願いします。

  • Select Case について教えてください VB.NET

    VB.NET2003環境なのですが、 アイテムが4個登録されたコンボボックスの選択状態を振り分ける Select Case なのですが、 Case Is = -1 Case Is = 0 Case Is = 1 Case Is = 2 Case Is = ComboBox6.Items.Count - 1 End Select となっていて、選択なし、選択0~2、最後の選択を 振り分けたいのですが、アイテムの数が増えると たくさん書かなくてはならないのですが、 If みたいいorのように指定することは出来ないでしょうか? 宜しくお願い致します

  • Select Case組み合わせ条件について

    例えば、「Aの値」&「Bの値」で処理をする場合には Select Case "A"&"B" Case "11" '(A=1&B=1の場合) で処理できると思うのですが、「B=1~5」として組み合わせることは可能でしょうか? 現在、下記のようにSelect文の中にSelectを組み合わせていますが、 どうにか上記のようにひとつのSelect文で処理できないかな~と思っています。 Select Case "A" Case 1 Select Case "B" Case 1 To 5 ご存知の方がいらっしゃいましたら、ぜひご回答の程お願いいたします。

  • VB2008EEのSelect Case

    VB2008EEのSelect Case devilconanさんとのやりとりを締めてしまいましたが、 下記でdevilconanさんは動いているようですが、再度試してもこちらでは動きません。 しかし、別のPCのVB2008EEで試すことが出来たのですが、こちらでは動きました。 Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged Select Case sender.text Case "RadioButton1" aaa = "1" bbb = "" Case "RadioButton2" aaa = "" bbb = "2" End Select End Sub Elseを追加して、ラジオボタン1と2を交互にチェックすると、それぞれ「sssss」とMsgBoxが出ます。 別のPCだと下の記述で、「case1」「case2」が表示されました。 Select Case sender.text Case "RadioButton1" aaa = "1" bbb = "" MsgBox("case1") Case "RadioButton2" aaa = "" bbb = "2" MsgBox("case2") Case Else MsgBox("sssss") End Select 動いたPCも動かないPCもXPです。 同じファイルを開いているのですが、この違いは何でしょうか?  

  • VBA: Select Caseを短くしたい

    Excel2003 の VBA でクラスモジュールを作成しています。 Select Case文で Caseが多い場合にコードを短くするテクニックがありませんか。 Select Case i   Case 1     str = "momo"   Case 2     str = "sakura"       ・       ・       ・   Case 100     str = "tsubaki" End Select のようなコードです。 配列に入れることも考えましたが、 str(1) = "momo" str(2) = "sakura"      ・      ・      ・ str(100) = "tsubaki" となって、コードを短くする効果は僅かです。 クラスモジュールなので、ワークシートにデータを入れておくテクニックは使えません。 また、外部ファイル(*.txt など)も管理の面から使いたくありません。 クラスモジュール内だけで完結させるテクニックがないでしょうか。

  • Select Case の使い方について

    はじめて質問します。 Windows XP  Access2000 の環境で作業しています。 お客様より頂いたCSVデータをもとに商品を出荷する出荷指示書を作成しています。 これまでは全てのお客様(約500店舗)に毎日出荷が基本でしたが、都合により50店舗ほど 週2回の出荷になりました。 実際の作業現場へ指示書を回す際に指示書の所定の位置に Select Case 使ってテキストを出力したいのですが最初のページがうまくいきません。 最初のページに[該当曜日]、[店番]があってもテキストが表示されないのです。その後のページには 正常に出力されます。 初心者ゆえの乱文を容赦願いまして、何が原因なのかご指導いただけば幸いです。 Private Sub Report_Page() Select Case [店番] & "#" & Weekday(Date) Case "10121#2" テキスト66 = "水曜出荷"   Case "10121#3" テキスト66 = "水曜出荷" Case "10121#4" テキスト66 = "出荷なし" Case "10121#5" テキスト66 = "土曜出荷" Case "10121#6" テキスト66 = "土曜出荷" Case "10121#7" テキスト66 = "出荷なし" Case "52114#2" テキスト66 = "火曜出荷" Case "52114#3" テキスト66 = "火曜出荷" Case "52114#4" テキスト66 = "出荷なし" Case "52114#5" テキスト66 = "金曜出荷" Case "52114#6" テキスト66 ="出荷なし" Case "52114#7" テキスト66 = "出荷なし"      ・      ・      ・  このような曜日と地域(翌着、中1日着等)による処理が50件ほど続きます。      ・      ・     End Select

  • Access2002 で Select Case文がエラーになる!!

    Access2002を使用しています。 Select Case文でエラーになるのですが、回避方法を知っていたら教えて下さい。 書き方がおかしいのでしょうか? 例)Dim a As String a = "11" Select Case a Case "00" MsgBox "zero" Case "11" MsgBox "one" End Select このような Select Case文を書くとエラーになるんです。 エラーは、実行時エラー'5' プロシージャの呼び出し、または引数が不正です というものです。 一応、私が見つけた回避方法は、string を Variant にするというものです。 それとも、そもそも書き方がおかしいのでしょうか? Access97 だと、エラーにならないのです。 ご存知の方、ご回答よろしくお願いします。

  • Select Case文についてご教授お願いします。

    助けて下さい。Select Case文についてご教授お願いします。現在VB2008にてプログラムを作成しているのですが、どうにも煮詰まってしまいました。 作成内容は、Excelの任意のSheetから文字をVB上のTextBox1~50に呼び出し、その内いくつかをCheckBoxとButtonを使用してRichTextBox1に表示させると共に、TextBox51に入力した文字をExcelから呼び出した任意の文字に対応したセルへ保存というものです。Excelからの呼び出しにIf文を使用しているため、同一プロシージャ内で別のIf文を使用してしまうと、先のIf文で決めた変数が反映されないためSelect Case文を使用して保存をさせようとしているのですが上手くいきません。以下に現在のコードを記載しますのでよろしくお願いいたします。 Private Sub Button1_Click~ Excel取得コード If RadioButton1.Checked = True AndAlso RadioButton13.Checked = True Then 'Sheetと列を選択 tuki = CType(Book.Worksheets.Item(2), Microsoft.Office.Interop.Excel.Worksheet) 'Sheet情報 COLUMN1 = "B" '列1情報 COLUMN2 = "F" '列2情報 ・ ・ ・ End If 'ここから先は指定したTextBoxをRichTextBoxに表示(先のIf文内の変数は未使用) RichTextBox1.Clear() If Me.CheckBox1.Checked = True Then RichTextBox1.Text = TextBox1.Text End If If Me.CheckBox2.Checked = True ThenIf RichTextBox1.Text <> "" Then RichTextBox1.Text = RichTextBox1.Text & "・" End If RichTextBox1.Text = RichTextBox1.Text & TextBox2.Text End If ・ ・ ・ End If 'ここから保存指示=エラー箇所 Select Case tuki.Range(COLUMN1 & "3").Value Case RichTextBox1.text = tuki.Range(COLUMN1 & "3").Value tuki.Range(COLUMN2 & "3").Value = TextBox51.Text Book.Save() という感じで作成しているのですが「String "" から型 'Boolean' への変換は無効です」と表示されます。 他のケースではIf文の変数をSelect Caseに対応できたので、この方法を選択しました。 基本的にSelect Caseの使い方が誤っていると思うのですが解決策が見つかりませんでした。 他の方法も含めて、良い案がありましたらご教授お願いいたします。 長文申し訳ありません。

  • Select case で条件演算子は使用可能?

     知っている方にはつまらない質問でしょうが…VB6.0でSelect case に条件演算子を使う事ってできないんでしょうか?  つまり、 if i < 0 then j = 0 else if i = 0 then j = 1 else if i > 0 then j = 2 end if  こんな感じの条件をSelect Caseで使えませんか?と言うことなんですが…