VB2008EEのラジオボタンのチェック無し
4つにチェックを入れてしまうと、全ての変数に値が入ってしまい、ボタンクリック時にチェックが
入っていないのを含めて、batファイル4つとも実行されてしまいます。
チェックボックスだと、下記でチェックされていないもの値を変えられます。
If CheckBox1.CheckState = CheckState.Unchecked Then
aaa = "9"
End If
ラジオボタンでチェックされていない所の変数を変える事は出来るでしょうか?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If (aaa = "1") Then
Shell("cmd /c xxx.bat", AppWinStyle.NormalFocus, True)
End If
If (bbb = "2") Then
Shell("cmd /c yyy.bat", AppWinStyle.NormalFocus, True)
End If
If (ccc = "3") Then
Shell("cmd /c zzz.bat", AppWinStyle.NormalFocus, True)
End If
If (ddd = "4") Then
Shell("cmd /c www.bat", AppWinStyle.NormalFocus, True)
End If
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
aaa = "1"
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
bbb = "2"
End Sub
Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
ccc = "3"
End Sub
Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
ddd = "4"
End Sub
No.4
- 回答日時:
rk_lesさん
お気持ちよくわかります。
私もさっきの質問以前に、纏めることを推奨したのですが、、、
http://okwave.jp/qa/q5892351.html
質問者さん
rk_lesさんが言うことを、面倒だと思っても、無理にでも実現した方がいいですよ。
既に設計段階の問題を指摘されておられますが、よいプログラムというのは、変更改造に強い作りをしているという特徴があります。
「設計ミス」自体は仕方がありません。誰でもあります。
しかしその発生を未然に防ぐ効果も兼ねるのですよ。
「口うるさい人たちみたい」に思われるかもしれませんが、、、
纏める事を諦めずに、早い段階で作りを見直す作業に入るべきだと、私も思います。
No.3
- 回答日時:
前の質問で私の回答ちゃんと理解しましたか?思いっきり出来てないと見受けられます。
まず前回のプログラムと記述方法だいぶ違うようですが、今回載せてあるソースのいけない場所を列挙しましょうか。
・イベントが纏められておらず冗長
・分岐で一回一回IFを終了させているため、条件にあるラジオボタンを全部チェックした後の実行で全部通ること。
大きく二つです。
前回の質問でイベントを纏める処理が書かれていたのになぜやらないのでしょうか?
後、前回の質問のプログラムで動かないのはあなたの設計ミスです。
質問は大いに結構。けど返信した内容を全く理解しようとしないのは頂けません。
前回の質問で変数を減らすと他にも影響がでる(この時点で設計ミス)とのことなので前回の質問で記述したのに少し加えたものを載せておきます。
Private aaa As String
Private bbb As String
Private ccc As String
Private ddd As String
Private Sub RadioButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged _
RadioButton3.CheckedChanged, RadioButton4.CheckedChanged
Select Case sender.text
Case "RadioButton1"
aaa = "1"
Case "RadioButton2"
aaa = "2"
Case "RadioButton3"
aaa = "3"
Case "RadioButton4"
aaa = "4"
End Select
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If (aaa = "1") Then
TextBox1.Text = aaa
Shell("cmd /c xxx.bat", AppWinStyle.NormalFocus, True)
ElseIF (bbb = "2") Then
TextBox2.Text = bbb
Shell("cmd /c yyy.bat", AppWinStyle.NormalFocus, True)
ElseIF (ccc = "3") Then
TextBox3.Text = ccc
Shell("cmd /c zzz.bat", AppWinStyle.NormalFocus, True)
ElseIF (ddd = "4") Then
TextBox4.Text = ddd
Shell("cmd /c ppp.bat", AppWinStyle.NormalFocus, True)
End IF
End Sub
この回答への補足
・イベントが纏められておらず冗長
質問に関係ありません。
・分岐で一回一回IFを終了させているため、条件にあるラジオボタンを全部チェックした後の実行で全部通ること。
それの上での質問です。
批判されて不快ですので、今後はスルーしてください。
No.2ベストアンサー
- 回答日時:
ふと思ったのですが、変数を利用しないでもできるのでは?
変数(aaa~ddd)を使う必要性がなければ、#1で発言した「ラジオボタン達_CheckedChanged」関数も不要となります。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'折角なので、Frameworkを利用すた形式での起動
Dim l_procSInf As New ProcessStartInfo("cmd")
l_procSInf.WindowStyle = ProcessWindowStyle.Normal 'Normalは規定値なので設定しなくてよし
If Me.RadioButton1.Checked Then
l_procSInf.Arguments = "/c xxx.bat"
ElseIf Me.RadioButton2.Checked Then
l_procSInf.Arguments = "/c yyy.bat"
ElseIf Me.RadioButton3.Checked Then
l_procSInf.Arguments = "/c zzz.bat"
ElseIf Me.RadioButton4.Checked Then
l_procSInf.Arguments = "/c www.bat"
End If
Dim l_prcProc As Process = Process.Start(l_procSInf)
l_prcProc.WaitForExit()
End Sub
No.1
- 回答日時:
一つのイベントに一つの関数をハンドリングさせずに、纏めてしまいましょう。
Private Sub RadioButton1_CheckedChanged(
Private Sub RadioButton2_CheckedChanged(
Private Sub RadioButton3_CheckedChanged(
Private Sub RadioButton4_CheckedChanged(
の各イベント関数は全て不要です。コメントアウトしてください。
↓これを追加
Private Sub ラジオボタン達_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged, RadioButton4.CheckedChanged
aaa = IIf(Me.RadioButton1.Checked, "1", "")
bbb = IIf(Me.RadioButton2.Checked, "2", "")
ccc = IIf(Me.RadioButton3.Checked, "3", "")
ddd = IIf(Me.RadioButton4.Checked, "4", "")
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLのエラーコードの意味が理解...
-
昔Winnyってありましたけど、あ...
-
eclipseへのxmlファイル追加
-
XMLで要素が記述された順番に意...
-
xmlファイルが上手にHTMLに変換...
-
2分探索木の高さを求めるプロ...
-
東芝のDynabookなのですがアン...
-
XML、XSLTの適応エラー(IEから...
-
Dreamweaver CS3 : シングルク...
-
excelにてweb関数を使い、webデ...
-
VB6.0でDOMを使用して...
-
ASPで型宣言
-
XMLで特殊文字を扱うにはどうし...
-
CPUの考え方を教えてください ...
-
特殊記号が勝手にエスケープさ...
-
Excel(2007以降)をxml形式に変...
-
UTF-8でエンコーディングとはど...
-
スタイルシートを使用したXM...
-
■XSLT■固定文字を使ったループ...
-
XML同じ名前の要素を自動で集約...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
4バイトを10進数に変換する方法
-
VB.NETで最後フォのフォ...
-
concat関数内でのシングルクォ...
-
動的な構造体配列の初期化
-
VB2008EEのラジオボタンのチェ...
-
Form内関数のパラメタについて...
-
MSXMLを使ってノードを削除した...
-
Math.sqrt(Math.pow(canvas.wid...
-
ネットスーパーをやっているス...
-
東芝のDynabookなのですがアン...
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
昔Winnyってありましたけど、あ...
-
バッチファイルでテキストファ...
-
XML、XSLTの適応エラー(IEから...
-
UTF-8でエンコーディングとはど...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
XMLファイル内のデータ(値)を変...
-
xmlファイルが上手にHTMLに変換...
おすすめ情報