- ベストアンサー
エクセル2007で、マクロが中断してしまう問題について
- エクセル2007で作成したマクロが一部中断する問題に遭遇しました。他のパソコンでは正常に実行されるのに、1台のパソコンだけでユーザーフォームが開かれずにコード画面が表示されます。
- 問題のマクロの中にはエラーが発生しているものもあり、一部のマクロは正常に実行される状況です。使用者や他のマクロに変更を加えた形跡はなく、問題のパソコンに原因があると考えられます。
- 質問者はエクセル2003を使用しており、エクセル2007に慣れていないため、具体的な問題の原因や解決策がわかりません。詳しい指示があれば助かるとのことです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
経験上だけですが ユーザーフォムに Private Sub UserForm_Initialize() でコードを記述していませんか その際に シートやセルを参照しに行ったりしたときの セルに値や範囲に問題ないか確認してみてください。 例えば 本来、日付が入っているべきセルに文字が入っているとかです。 ユーザーフォームのInitializeを実行中にエラーが発生した際にも メニュー(ユーザーフォーム名).Show で中止になるようです。
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
Run Time Error だとは思いますが、何百万桁以上とかかマイナス値とか、それとも数万までのプラス値ですか? 数万までのプラスの場合は、おそらく、#1さんの言うように、Intialize の部分でプロパティやコードで矛盾が起きて立ち上がらないとか、シートのデータを読んだり、リンクしたり、ComboBoxのList にセルのデータをインポートしている場合に、エラー値が入ったりすれば、立ち上がりません。なるべく、UserForm のコードは大変ですが、セルとは独立させて置くほうがよいです。 しかし、そうではない、エラー値がマイナス値や非常に大きな数の場合、 >ボタンを押すと中断され、コード画面が出てます。 >ボタンには メニュー(ユーザーフォーム名).Show のコードだけです。 こうした単純な内容でのエラーは、外部オブジェクトが壊れていることがありますので、ユーザーフォーム自身がエラーを発生しているので、アプリケーションの修復の可能性で直ることが多いです。でも、オブジェクトに依存性があると、もうOfficeではなく、OS自体の修復が必要になることもあります。
お礼
今までコードの入力ミス以外でエラーが出たことがなく、しかも単純なコードでのエラーで原因がまったくわからず、皆さんのアドバイスをもとにいろいろみてみましたが、はっきりした原因がわからないまま、今日になって動くようになり、直ったようです。 今回アドバイスいただいたことは、今後のマクロ作成に役立てていきたいと思います。 ありがとうございました。
お礼
アドバイスをもとにいろいろみてみましたが、原因がよくわからないまま今日になって直っていました。 今回アドバイスをいただいたことは今後のマクロ作成に役立てたいと思います。 ありがとうございました。