
Windows10でExcel2010使用。
次の動作を行うとVBAの実行が不完全なものになります。
その動作とはコード編集し保存して終了→再起動し動作確認→保存して終了です。
その後、再起動し動作確認を行うとユーザーフォーム上の特定のコマンドボタンをクリックやworksheet_Change制御下のセルクリックなどでExcelが落ちます。
ですがステップイン(F8)で実行した場合は発生しません。そして、ステップイン後、通常に実行すると問題なく動作します。
今までこんな症状は無かったので困っています。
どうかご指南頂けます様よろしくお願いします。
No.7ベストアンサー
- 回答日時:
連投すみません
>☆vbmodelessは使用しています
vbmodeless表示後にVBA実行でMsgboxなどUIを表示するコードを追加したりしていませんか・・はっきり覚えていませんがvbmodelessに関しては不具合や制約がありますので調べてみてください
処理に困るかも知れませんがvbModalで事象が発生するかなどの検証する必要があるかも知れませんね
>今までこんな症状は無かったので困っています。
何か変更したことがあるのだと思いますが・・更新などの問題で
ブックファイルが不具合を抱えたなら、VBAコードの問題では無いと思いますのでVBAモジュールのエクスポート・インポートだけでなくブック自体を新規ブックに移すかな(ファイルのコピーではなく)既にされたかもしれませんね
ありがとうございます。本当に感謝です。
ご指摘頂いた件なども踏まえて新規ブックで作り始めた所です。完成してまだ症状が出る様ならまた皆さんに助けを求めるかもしれません(汗)
本当にありがとうございました。
それでは失礼します。
No.6
- 回答日時:
こんにちは #5です
オブジェクト・コントロール数も多くActivate挙動も少し複雑ですね
頓珍漢ついでに(既にされているかと思いますが想像で)#5+で
ShowメソッドのvbModelessを使用しない
RefEditコントロールを使用しない(vbModelessで使用すると即4)
クラスのインスタンス コンストラクタ・デストラクタを確認
挙動を分ける為の処理については
データベースブックはCSVなど(データ)として メインブック起動時などにブック内のシートに取得しデータベース閉じてから使う
必要に応じて書き込む時はAppendモードなどで出力する
(データベースブックをExcelブックとして扱わない)
シフト作成ブックをVBAで扱う場合 別プロセス(インスタンス)で開く
Dim xlApp As Excel.Application
Set xlApp = CreateObject("Excel.Application") 'オブジェクト生成
xlApp.Workbooks.Open ・・・
(明示的に開放する)
#5のリンク先サイトのコードはお礼が付きましたのでPrivate 属性に変更します
ご返答ありがとうございます
現状ですが
☆vbmodelessは使用していますがRefeditは使用していません。
☆データブックはご指摘通りCSVにしておりませんが起動時にシートに転機しすぐに閉じています。
☆オープンステートメントに関しては全く気にしておりませんでした。早速試してみます。
☆クラスモジュールに関しても勉強不足ですのでご指摘箇所の確認してみます。
☆シフト作成ブックは完成したシフト表のみ起動時に転記しすぐに閉じていますが明示的開放試してみます。
とても参考になります。
まだまだ改善出来そうな箇所がありひとまず安心しました。
ありがとうございます。
No.5
- 回答日時:
こんばんは
処理の内容やコードが解らないのでかなり頓珍漢な回答かも知れません
VBA
F8で問題なく ボタンなどからの実行で不具合があると言うことから
実行ブックにスレッドが戻らず落ちるのでは無いでしょうか・・
オブジェクトやインスタンスが正しく終了しているか確認してみる
他のブックやアプリケーション、Windowなどを操作した後に
DoEvents
ThisWorkbook.Activate
見たいにするのはどうでしょう
AppActivate
UserFormのLoad、UnLoadの方法も検討する必要があるかも知れません
共通
参照設定に参照不可が存在しているようであれば、チェックを外してください(再設定もしくは正しく参照)
手作業
特定動作を手作業で行っているのでしたら、単純にBookファイルに不具合がある可能性を踏まえて 取り敢えず 新しいブックに書き替える(移す)のが良いと思います
新しいブックに書き替える(移す)・・
ブックの規模が解らないので VBAコードです
フォルダを作ったり削除するコードやVBEを操作する処理が含まれていますので参照設定やセキュリティ設定を行う必要があります
ご確認の上、コピーブックなどで 自己責任でお使いください
https://ideone.com/XGUIFH
ご返答感謝です
エクスポート&インポートは少なくとも2度実行しましたが症状は改善されませんでした。
qchan様の指摘されているシートActivateのタイミングでも落ちているので気になってはおります。
その当たりを見直してみます。
アドバイスありがとうございます。
No.4
- 回答日時:
こんばんは。
特定のPCだけでしたら、Excel本体の不具合の可能性もあるかと思いますが、複数のPCで同じ様な症状が起きるのでしたら、ファイルがおかしくなって
いるか、マクロのコードのどちらかが問題かと思われます。
それで、エクスポート&インポートでも変わらないのでしたら、マクロの
コードが原因かも知れません。
コードが表示されていないので、何とも回答も難しいですが、
worksheet_Change内のプロシージャ内で、セルを変更する様な処理は
されていないでしょうか? 無限ループに近い形になっているとか?
きちんと、Application.EnableEvents = Falseや、Trueを適切に入れられて
いて、当然の処理との事でしたら、スルーして下さい。
ご返答感謝です。
コードのアップはエラー箇所が特定出来ていない為控えますが、vbaの概要を申しますと
目的は生産計画表を簡単に作成する事でユーザーフォームを2個とそれに付随するコントロールを400個程使用しております。ブックはメインとなるコードを記述している生産計画入出力用と、参照用の製品データベースブック、シフト表作成ブックがあります。シフト作成ブックもVBAが組んでありますがコードが競合する様な事は無いです。
ユーザーフォーム1は1週間分の生産計画を入力する様になっており生産週→生産機→生産期間→生産機種の順に選択します。それぞれクラスモジュールで制御しコマンドボタンを使用しています。
その後、機種毎の総生産数と日毎の生産時間をテキストボックスに入力すると生産予定数、生産残数、必要生産時間等を自動計算します。(この時、シートを1枚使用し裏で自動計算しています)。生産機1台の1週間分の計画が出来ましたら作業者配置表に計画を転記します。これを生産機28台分繰り返します。計画が完成しましたら作業者配置様シートに移行しユーザーフォーム2で作業者を割り振っていきます。(シフト表作成ブック参照)ユーザーフォーム2で落ちた事は無いのでこちらの説明は省きます。
確かにWorksheet_Change内でも落ちています。無限ループに陥らないようには気を付けてはおりますがもう一度確認してみます。
こうして文章に起こしてみると客観的に考えられる気がします。
長文になってしまい申し訳ありません。
アドバイスありがとうございます。
No.3
- 回答日時:
こんばんは。
解決するか分かりませんが、コードをアップするのは、難しいでしょうか?
似た様な症状で検索して、下記がありますが、コードをエクスポートして、新ブックにインポートして、症状が改善するか?とか。
●VBAユーザーフォーム:処理中にエクセルが落ちる現象について
https://detail.chiebukuro.yahoo.co.jp/qa/questio …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel起動時にエラーダイアログが表示される 3 2022/07/28 19:52
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Visual Basic(VBA) excel vbaでselenium basic 3 2022/10/02 12:35
- Visual Basic(VBA) VBAでArrayListを使う為の「mscorlib.tlb」の参照設定について 3 2022/03/23 19:45
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
これってパソコンの最適化が完...
-
Windows System32 Security Hea...
-
VBScriptでコマンドプロンプト...
-
[es]でpython2.5のファイル実行
-
プログラミング
-
pythonスクリプトを管理者権限...
-
データ更新で音楽再生
-
VBAを使って名前をつけて保存を...
-
exeファイルを実行するとコマン...
-
gccのプロファイラで時間が取得...
-
Excel2010 VBAが特定動作で実行...
-
CGI Error
-
HDDlifeの健康度
-
windows2000でのコマンドプロン...
-
複数のbatファイルを自動実行し...
-
VBSでフォルダ内の最新VBAファ...
-
VBA 既に開いているBookに継続...
-
Excel 2007のマクロについて
-
バッチ処理後に自動的にウイン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
バッチファイルの内容を表示さ...
-
exeファイルを実行するとコマン...
-
VBscriptが起動しない?
-
これってパソコンの最適化が完...
-
「読み取りと実行」と「読み取...
-
複数のbatファイルを自動実行し...
-
Windows System32 Security Hea...
-
ネットワーク名が見つかりません
-
エクセル フォルダの画像を画...
-
Excel(エクセル) VBA プロシー...
-
PDFファイルを開き、印刷し、閉...
-
Access の VBA 実行中に他の操...
-
バッチファイルが不正終了して...
-
VScodeのエラー解決法 Pythonの...
-
VBScriptでコマンドプロンプト...
-
pythonスクリプトを管理者権限...
-
VB.NETでのDOSコマンドを実行に...
-
batからexeを実行し戻り値を受...
おすすめ情報
ご返答感謝です。
そこがよく分からないのです。ステップインで実行して行くとExcelは落ちませんし、ステップインで確認した後は普通に実行しても症状が出ないので。
ただ、特定動作(コード編集→保存終了→再起動→保存終了)を行った場合、エラー処理コードに飛んでいる事は確認出来ます。
また、コードを修正するとExcelが落ちるタイミングが変わってしまう場合もあります。
例えば修正前はコマンドボタン1クリックだったのが修正後はコマンドボタン2で落ちると言った感じです。
会社ではExcel2010を使用していますが自宅ではExcel2019を使用しています。どちらも同じ症状でExcelが落ちます。
こんばんは
ご返答&ご検索感謝です。
早速確認してみましたが確かに症状は似ていますね。
エクスポート&インポートは実行済みですが同じ症状でした。また、pcに関しては会社でスペックの異なる数台で試してみたのですが同じ症状でした。
とは言うもののコア7のメモリ16が最高なのですが…
エクスポート&インポートの結果
症状は改善されませんでした。
起動時のデータベース、シフト作成両ブックとのやり取りインスタンス生成部分のコードを一旦全て停止したのですが症状が改善しません。