visual basicのeventとcontrolについての質問です。
初心者で苦労しています。以下のようなcodeingをしましたが上手く行きません。宜しくお願いします。
1.下記のcall updatefileによりupdatefile内でcombobox内のdataを設定します。これは次のdialogで
設定どおりに出ています。しかし元のsub startdialog1に帰ってdialogを表示してみるとcombobox
内は空となっています。 subroutineが変わるとformの controlは消えるのでしょうか。
もしそうならどの様にすれば良いのでしょうか。
(pushdata変数等をpublicとして再度comboに入れることもやりましたがNG)
2.STARTDIALOG1の初めに RADIO BUTTONの変更のCODEが有りますが、此処でEVENTが
発生しUPDATEFILEに行きます。
DIALOGを出すまでは初期値を設定しDIALOG上でCLICK等して変更をするCODEなので
不具合です。 (ほかにもいろいろ同じCODEが入っていますので)
CODE上の設定変更はEVENTが発生しないように、DIALOGからの変更はEVENT発生としたい
のですがどの様にしたら良いでしょうか。(普通そうなので何か勘違いしてるかも)
INTERNETで見るとAddHandler,AddressOf,REmoveHandlerなどが記載されていますが、
書き方と何処に書くのか判りません。(本当に必要かも?)
よろしくお願いします。
(以下のcodeは読みやすいように簡略化しています、code errorは大目に見て下さい。
---------------------Form1.vbに記載---------------------------------------
Sub STARTDIALOG1() '此処から処理が始まる
with cform2 as Fform2
.Radio_btn1.Checked = True ’ここへくるとbuttonのeventが発生,routineにいき,updatefileへいく
Call UpdatePfile(1) 'ここはcomboboxの初期値を設定する(UPDATEPFILEを使う)
.ShowDialog() ’UpdatateFileでは入っていたがCOMOBOXの中は空になっている
この後comboboxのdataの選択などをdialogue上で設定値を変更する。
end with
end sub
-----------------------form1.vbに記載----------------------------------
sub UpdatePfile(ByVal cntlNO)
'PushDataはこの前にREADして設定している、keがそのDATAの個数
For k = 1 To ke
cForm2.Combo_P.Items.Add(pushdata(k)) ’COMBOBOX Comb_Pに一覧として入れる
Next k
cForm2.ShowDialog() 'ここではCOMBOBOXにPUSHDATAが入ったLISTがでる
end sub
---------------------------------------------------------------------------
DisalogはForm2に作成
radioボタン Radio_btn1とRadio_btn2,combobox combo_P等をsetしている
'---------------------------Form2.vbに記載------------------------------------
Private Sub push_button(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Radio_BTN1.CheckedChanged,Radio_BTN2.CheckChanged
Dim cls As Form1
RDBTN = 1
If RDBTN > 0 Then Call cls.UpdatePfile(RDBTN)
end Sub
No.1ベストアンサー
- 回答日時:
ちょっと確認していませんが
> .Radio_btn1.Checked = True ’ここへくるとbuttonのeventが発生,
イベントは節制しますが、実際に対応するルーチンが実行されるのは、このSubを抜けた後だったように思います。
デバッガでステップ実行したらどうなってますか?
kmeeさん
ご回答ありがとうございました。結局removehandler/addhandlerを見よう見まねで入れて出ないようになりました。また1のsub間のdataについてはdim cform2 as new form2()が両方のsubに定義されていました。
これって別のformになっていたのではないかと思います。
これを両方のsubとも直接 with form2---end with にて
setしたところうまくいくようになりました。解決しました。
長文の質問読んでいただいてありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba 実数および実数タイプの変...
-
Excelのマクロについて教えてく...
-
VBA レジストリの値の読み方に...
-
Excel VBA 定義されたプロージ...
-
Excel マクロについての相談
-
エクセルVBAについて
-
Vba SelStart、SelLen教えてく...
-
エクセルの合計を自動で表示さ...
-
Excelのマクロでワードのテキス...
-
Excelについて
-
2つのマクロでチェックボックス...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBAの質問になります Userform内で
-
VBA listBoxから
-
VBAで各列の"+"と"o"の合計数を...
-
VBA初心者 Ctrl+での操作、ボタ...
-
VBA 複数条件の分岐処理の上手...
-
VB.net(VB)で、フォームにExcel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報