###前提・実現したいこと
ExcelでVBAを使用したフォームアプリケーションを作成しています。
今回、エラーメッセージすらはかずに落ちるエラーが生じて参っています。
###発生している問題・エラーメッセージ
あるフォーム開く際に6割くらいでフリーズが生じてそのまま終了します。
Msgboxで特定を掛けたところコンボボックスの読み出し処理らしきところで止まることはわかりました。
現状は下記のnew_combo関数が怪しいのではないかと考えています。
(コンボボックスを初期化するための関数です)
ちなみに、Excelを起動した後に一度でもフリーズしないであるフォームを開ければ、
Excelを閉じるまではほぼフリーズをしないようです。
また、あるフォームを開く前にソースコードを覘いても同様に以降のフリーズはなくなるようです。
もし、何か原因になりそうなことが有りましたらお教えいただけたら嬉しいです。
以上、よろしくお願いします。
###該当のソースコード
vba
1'あるフォームとは別のフォーム 2'ボタンを押してフォームオープン 3Private Sub openForm() 4 '自作クラスの自作メソッドを呼び出し 5 Dim MC As New myClasss 6 MC.myMethod 7 8 'コンボボックスの初期化 9 Application.Cursor = xlWait 10 ComboList.new_combo 11 Application.Cursor = xlDefault 12 'フォームを開く 13 myForm.Show 14 15 Unload Me 16End Sub 17 18 19'ComboListモジュール 20'コンボボックス初期値 21Public Sub new_combo() 22 myForm.Hide 23 'myForm.combo1とmyForm.combo2はコンボボックスオブジェクト 24 With myForm 25 comb .combo1 26 comb .combo2 27 End With 28End Sub 29 30'コンボボックスデータ一覧 31Sub comb(ByRef myCombo As ComboBox) 32 With myCombo 33 Dim CN As String 34 CN = .Name 35 If CN Like "*No1" Then 36 .AddItem "aaa" 37 .AddItem "bbb" 38 .AddItem "ccc" 39 .AddItem "ddd" 40 .AddItem "eee" 41 42 .AddItem "fff" 43 .AddItem "ggg" 44 .AddItem "hhh" 45 .AddItem "iii" 46 .AddItem "jjj" 47 48 .AddItem "kkk" 49 .AddItem "lll" 50 .AddItem "mmm" 51 .AddItem "nnn" 52 .AddItem "ooo" 53 54 ElseIf CN Like "*No2" Then 55 .AddItem "NNNNNN" 56 .AddItem "ZZZZZZ" 57 .AddItem "KKKKKK" 58 .AddItem "AAAAAA" 59 .AddItem "JJJJJJ" 60 61 .AddItem "FFFFFF" 62 .AddItem "EEEEEE" 63 End If 64 DoEvents 65 End With 66End Sub 67
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Excel 2010
回答5件
あなたの回答
tips
プレビュー