ACCESSVBAでラジオボタンを実行させたい
- フォームにラジオボタンを作成し、それぞれ、A・Bと設定しました。Aを選択した場合に、Aのコードを実行させ、Bを選択した場合にBのコードを実行させたいと考えています。以下のコードを作成しましたが、うまくいきません。どこが間違っているのでしょうか。
- ACCESSVBAでフォームにラジオボタンを作成しました。ラジオボタンはAとBの2つを設定しました。Aを選択した場合にはAのコードを実行し、Bを選択した場合にはBのコードを実行するようにしたいと考えています。しかし、以下のコードを作成してもうまくいきません。どこが間違っているのでしょうか。
- ACCESSVBAのフォームにラジオボタンを設置しました。ラジオボタンはAとBの2つを用意しました。Aを選択した場合にはAのコードを、Bを選択した場合にはBのコードを実行させたいと思っています。以下のコードを作成しましたが、うまく動作しません。どこが問題なのでしょうか。
- ベストアンサー
ACCESSVBAでラジオボタンを実行させたい
フォームにラジオボタンを作成し、それぞれ、A・Bと設定しました。 (プロパティで”名前”を”A””B”とした) そこで、Aを選択した場合に、Aのコードを実行させ、 Bを選択した場合にBのコードを実行させたいと考えています。 以下のコードを作成しましたが、うまくいきません。 どこが間違っているのでしょうか。よろしくおねがいします。 ********************************************** Private Sub test_Click() Dim fNAME As String fNAME = "c:\test.htm " Open fNAME For Output As #1 Print #1, "<html>" Print #1, "<head></head>" Print #1, "<body>" If & A & = True Then Print #1, "<table>" … Print #1, "</table>" ElseIf & B & = True Then Print #1, "<table>" … Print #1, "</table>" End If Print #1, "</body></html>" End Sub
- smorgas030
- お礼率85% (231/269)
- その他(プログラミング・開発)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>フォームにラジオボタンを作成し、それぞれ、A・Bと設定しました。 というのは、 フォームに、オプショングループでフレーム(フレーム1)を作り、その中にオプションボタンを2個作り、A・Bと設定した。 と言うことだと思って話します。 オプションボタンがオプショングループ内に配置されて、いわゆるラジオボタン(フレーム内で1つしか選べない)になった場合、オプションボタンの値ではなくオプショングループから情報を得ます。 例えば、オプショングループの名前が「フレーム1」とします。 最初にプロパティでオプションボタンAとBのオプション値を設定してください。 A=1、B=2 にします(通常、配置した順に1、2、3・・・と自動的に付きますが) オプショングループ(フレーム1)の既定値(DefaultValue)に、初期値の1または2を設定してください。 後は、 Private Sub test_Click() ・・・ If フレーム1.Value = 1 Then '1(Aが選ばれている場合)の処理 ElseIf フレーム1.Value = 2 Then '2(Bが選ばれている場合)の処理 End If ・・・ End Sub で処理できます。 尚、選択が変更した時点での処理も、ボタン毎にもできますが、フレームの更新前処理(BeforeUpdate)、更新後処理(AfterUpdate)でも処理できます。 Private Sub フレーム1_AfterUpdate() MsgBox フレーム1.Value End Sub
関連するQ&A
- データがないときにエラーメッセージを出したい
クエリの結果をHTMLファイルで出力するようなAccessVBAを作成しました。クエリのデータがあれば問題ないのですが、 データがない場合にエラーメッセージを出そうと考えていますが、 うまくできません。どうしたらいいのでしょうか。 よろしくおねがいします。 ****************************************************** 作成したVBA ****************************************************** Private Sub test_Click() Dim fNAME As String fNAME = "c:\test.html " Open fNAME For Output As # Print #, "<html>" Print #, "<head>" Print #, "</head>" Print #, "<body>" Print #, "<table>" mySQL = "SELECT ……;" Set myRS = CurrentDb.OpenRecordset(mySQL) ****************************************************** ここに、クエリのデータがなければ、 エラーメッセージを出そうかと考えています。 ↓のようにしたらだめでした。 If mySQL <> False Then MsgBox "入力した日付のデータはありません。" End If ****************************************************** Do Print #, "<tr><td>" & myRS(1).Value & "</td></tr>" myRS.MoveNext If myRS.EOF Then Exit Do Loop Print #, "</table>" Print #, "</body>" Print #, "</html>" End Sub
- ベストアンサー
- その他(データベース)
- ACCESSVBAで日付の表示を2007/12/31から2007年12月31日に変更したい
ACCESSVBAでdate関数を使って、 ファイルを出力すると、 2007/12/31 のような表示になります。 2007年12月31日 の表示で出力させたいのですが、 どうしたらいいのでしょうか。 宜しくお願いします。 ***************作成したVBA*********** Private Sub test_Click() Dim fNAME As String fNAME = "c:\test.htm" Open fNAME For Output As #1 Print #1, "<html>" Print #1, "<head>" Print #1, "</head>" Print #1, "<body>" ****ここで日付を表示させる***** Print #1, "<p>" & Date & "</p>" … … Print #1, "</body>" Print #1, "</html>" Close #1 '閉じる End Sub
- ベストアンサー
- その他(プログラミング・開発)
- InputBox キャンセルボタンが押された時の処理
こんばんは。 Sub test() Dim タイトル As String タイトル = InputBox("タイトルを入力してください。") If Cancel = True Then Exit Sub ’次のコード・・・ ’次のコード・・・ End Sub このコードを実行した時に 下記のダイアログが出てきて 右のキャンセルボタンを押すと、 「If Cancel = True Then Exit Sub」 でsubステートメントを抜けたいのですが 「Cancel」の部分が 「変数が定義されていません」とエラーになってしまいます。 Dim Cancel As Boolean を追加してキャンセルボタンを押しても TrueではなくFalseになってしまいます。 回避方法を教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCELでセルの変更をしたらマクロを実行
このようなコードを作成しました。 Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Address = "$D$3") Then ★ End If End Sub ★に MsgBox "変更したよ" といれるとちゃんと表示されます。 ですが、 If D9 = "テスト" Then MsgBox "テスト" End if としても何も起こりません。 Call KEISAN のように呼び出すようにしても何も起こりません。 どこがダメなのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 元のプロシージャーを取得するプロパティ
Sub test1() Call test2 End Sub Sub test2() If ?? Then MsgBox "test1から実行されたマクロです。" End If End Sub 上記のコードで どこから実行されたプロシージャ化を取得する方法はありますか? 現在は、 Dim bl_test1_yes As Boolean Sub test1() bl_test1_yes = True Call test2(bl_test1_yes) End Sub Sub test2(bl_test1_yes) If bl_test1_yes = True Then MsgBox "test1から実行されたマクロです。" End If End Sub としていますが、 元のプロシージャーを取得するプロパティがあれば教えてください。
- ベストアンサー
- オフィス系ソフト
- 「:」を使えば、一行のコードにできるわけではない?
「:」を使えば、一行のコードにできるわけではないのですか? ifステートメントを1行にしたいのですが Sub test() Dim a As String a = "aiu" If a Like "*i*" Then: Stop: End If End Sub これだと End If に対応する If ブロックがありません。 となってしまいます。 ちゃんと、 Sub test() Dim a As String a = "aiu" If a Like "*i*" Then Stop End If End Sub こうしないとダメですか? なぜ、:は使えないのですか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VB2008EEのラジオボタンのチェック無し
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
- ベストアンサー
- Visual Basic
- VB2008EEのラジオボタンのチェック無し
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 レベル低いといきなりラスボスは倒せないので、目先のミッションクリアが目的です。 応用は後々学んで行きます。 「ラジオボタンでチェックされていない所の変数を変える事は出来るでしょうか?」
- ベストアンサー
- Visual Basic
- VB2008EEのラジオボタンのチェック無し
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 レベル低いといきなりラスボスは倒せないので、目先のミッションクリアが目的です。 応用は後々学んで行きます。 「ラジオボタンでチェックされていない所の変数を変える事は出来るでしょうか?」
- 締切済み
- Visual Basic
- 印刷後のVBAの実行 (2)
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name = "Sheet1" Then If Range("D6").Value = "" Then Cancel = True MsgBox ("名前を入力してください") Range("D6").Select Exit Sub End If Else If ActiveSheet.Name = "Sheet2" Then If Range("C11").Value = "" Then Cancel = True MsgBox ("受付時間を入力してください") Range("C11").Select Exit Sub End If Else Exit Sub End If End If ActiveSheet.Range("A70:Y70").Copy If Worksheets("Sheet3").Range("A1").Value = "" Then Worksheets("Sheet3").Range("A1").PasteSpecial Paste:=xlPasteValues Else Worksheets("Sheet3").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial _ Paste:=xlPasteValues End If Application.CutCopyMode = False ActiveSheet.Range("A1").Select End Sub 先日、上記のコードを回答者の方から教えてもらい、とても助かっていますが sheet1のD5に「不要」という文字が入っていた場合、 sheet3への貼り付け(23~30行目の作業)をキャンセルして、最後にsheet1のA1を選択するようにはどの様にしたらいいでしょうか?
- 締切済み
- オフィス系ソフト
お礼
回答ありがとうございます。 早速やってみたらできました。 丁寧な回答ありがとうございました。 勉強になりました。