- ベストアンサー
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の使い方が誤っていると思うのですが解決策が見つかりませんでした。 他の方法も含めて、良い案がありましたらご教授お願いいたします。 長文申し訳ありません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
- m-take0220
- ベストアンサー率61% (480/785)
- cistronezk
- ベストアンサー率38% (120/309)
お礼
いつもありがとうございます。If文を使用して目的を達成することが出来ました。思考錯誤していた時に、同一プロジージャ内でIf文にて変数を宣言し、その下に改めてIf文にて保存のコードを書いた際、変数が宣言されていないとのエラーになってしまいました。そのため、他のケースで上手くいったIf文とSelect Case文との組み合わせならと思い試していたのですが、おっしゃるとおりいくつかを通過するコードは書けませんでした。今回、Wizard_Zero様に指摘して頂いたコードをもとに、再度If文を使用したところ、変数エラーも出ず無事に解決に至ることが出来ました。たぶん、前回変数エラーになったのはIf文のせいではなく、私のコードがおかしかったためだとわかり多くの方にご迷惑をおかけしたことを反省しております。この掲示板にはいつも助けられ本当に勉強になりました。何分プログラムというものに触れて日が浅いため、勉強不足で突っ込みどころ満載のコードしか書けませんが、勉強を続けていきたいと思います。皆さん本当にありがとうございました。