エクセル2007で、マクロが中断してしまう問題について

このQ&Aのポイント
  • エクセル2007で作成したマクロが一部中断する問題に遭遇しました。他のパソコンでは正常に実行されるのに、1台のパソコンだけでユーザーフォームが開かれずにコード画面が表示されます。
  • 問題のマクロの中にはエラーが発生しているものもあり、一部のマクロは正常に実行される状況です。使用者や他のマクロに変更を加えた形跡はなく、問題のパソコンに原因があると考えられます。
  • 質問者はエクセル2003を使用しており、エクセル2007に慣れていないため、具体的な問題の原因や解決策がわかりません。詳しい指示があれば助かるとのことです。
回答を見る
  • ベストアンサー

エクセル2007で、一部のマクロが中断してしまいます。

エクセル2007で、一部のマクロが中断してしまいます。 エクセル2003で作成したマクロをエクセル2007で使用しています。 昨日まで実行できていたマクロが、一部だけ突然実行されなくなりました。 他のパソコンではまったく問題なく実行されますが、1台のパソコンだけ一部のマクロが正常に実行されなくなりました。 シートに作ったボタンを押すと、ユーザーフォームが開くようになっているのですが、ボタンを押すと中断され、コード画面が出てます。 ボタンには メニュー(ユーザーフォーム名).Show のコードだけです。 別のボタンで、シートを移動するボタンがありますが、問題なく実行されます。 マクロはこの2つだけではありませんが、一部のマクロにエラーが出て一部は問題なく実行されるという状況です。 マクロを作成したのは私ですが、使用しているのは別の社員で、昨日使用時に何をどうしたのかはわかりません。(本人は特に何もしていないとのこと) 他のパソコン(エクセル2007)では問題がないので、その1台のパソコンに問題があると思われるのですが、どこをどうしたらいいのか分からず困っています。 私は2003を使用していて2007に慣れておらず、どこをどうしたらいいのか分かりません。 マクロの作成はしていますがパソコンに詳しいわけではないので、出来るだけわかりやすく教えていただければと思います。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

経験上だけですが ユーザーフォムに Private Sub UserForm_Initialize() でコードを記述していませんか その際に シートやセルを参照しに行ったりしたときの セルに値や範囲に問題ないか確認してみてください。 例えば 本来、日付が入っているべきセルに文字が入っているとかです。 ユーザーフォームのInitializeを実行中にエラーが発生した際にも メニュー(ユーザーフォーム名).Show で中止になるようです。

hana-hana324
質問者

お礼

アドバイスをもとにいろいろみてみましたが、原因がよくわからないまま今日になって直っていました。 今回アドバイスをいただいたことは今後のマクロ作成に役立てたいと思います。 ありがとうございました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

Run Time Error だとは思いますが、何百万桁以上とかかマイナス値とか、それとも数万までのプラス値ですか? 数万までのプラスの場合は、おそらく、#1さんの言うように、Intialize の部分でプロパティやコードで矛盾が起きて立ち上がらないとか、シートのデータを読んだり、リンクしたり、ComboBoxのList にセルのデータをインポートしている場合に、エラー値が入ったりすれば、立ち上がりません。なるべく、UserForm のコードは大変ですが、セルとは独立させて置くほうがよいです。 しかし、そうではない、エラー値がマイナス値や非常に大きな数の場合、 >ボタンを押すと中断され、コード画面が出てます。 >ボタンには メニュー(ユーザーフォーム名).Show のコードだけです。 こうした単純な内容でのエラーは、外部オブジェクトが壊れていることがありますので、ユーザーフォーム自身がエラーを発生しているので、アプリケーションの修復の可能性で直ることが多いです。でも、オブジェクトに依存性があると、もうOfficeではなく、OS自体の修復が必要になることもあります。

hana-hana324
質問者

お礼

今までコードの入力ミス以外でエラーが出たことがなく、しかも単純なコードでのエラーで原因がまったくわからず、皆さんのアドバイスをもとにいろいろみてみましたが、はっきりした原因がわからないまま、今日になって動くようになり、直ったようです。 今回アドバイスいただいたことは、今後のマクロ作成に役立てていきたいと思います。 ありがとうございました。

関連するQ&A

  • エクセル2007を使っています。                   

    エクセル2007を使っています。                    マクロのコードを表示する画面にある挿入にてユーザーフォームを作成するのではなく、 シートに直接ユーザーフォームを作成したいのですが、ユーザーフォームがみつからないので、 教えてください。

  • エクセルVBA escキーのマクロ

    初心者に毛が生えた状態です。エクセル2000を使っています。 ワークシートをWクリックするとユーザーフォームを表示するようにマクロの記述をしています。 ユーザーフォームをキャンセルボタン(×)で閉じるとシートのセルの中にカーソルが入った状態になります。 それをescキーを押した時のように、カーソルがセルの中に無い状態にしたいのです。 マクロの記録でescキーを押しても記録されないので、コードが分かりません。 ユーザーフォームの×ボタンを押したら、Wクリックする前の状態に戻すコードを教えてください。 よろしくお願いします。

  • Excel マクロ SQL実行について

    いつもお世話になっております。 現在、Excel1997と2007でマクロを作成しております。 使用している環境は様々でOSは2000~XPまでです。 っで質問なんですが、「マクロ」というシートと「データ」というシートがあったとして、「マクロ」シートにはボタンがあり、ボタンを押すとマクロが実行します。 マクロが実行されると「データ」というシートにあるデータをマクロ内のSQLで集計して、新しい「出力」というシートに吐き出します。 現在マクロ内のSQLはDAOライブラリを使用しています。EXCELマクロ内でSQLを使用する場合にDAOやADO等のライブラリを使用せずにSQLを実行することは可能でしょうか?

  • 【ExcelVBA】マクロボタンについて

    こんにちは。 Excel2003で作成したマクロ1をマクロボタン1に登録してシート上に配置しています。 これをExcel2013で開いて(互換モード)マクロボタン1をクリックしてマクロ1を実行すると、エラーは出ませんが、正しい結果が得られません。 マクロボタンからではなく、Alt+F8キーで表示されるマクロ一覧からマクロ1を選択して実行すると、正しい結果が得られますので、コードの記述には問題なさそうです。 上記のマクロとは別のマクロ2をマクロボタン2に登録して、マクロボタン1と同じシート上に配置していますが、こちらはボタンからの実行でも正しい結果が得られます。 試しに、フォームコントロールから新たにボタンを挿入し、マクロ1を登録して実行してみましたが、結果は同じでした。 また、互換モードではなくExcel2013で保存し直して(.xlsm)上記と同じことをしてみましたが、これも結果は同じでした。 何が原因として考えられるでしょうか? マクロをボタンに登録しないと絶対に困るというわけではないのですが、ボタンからの実行では正しい結果が得られないのが不思議です。 よろしくお願いします。

  • VBAで実行押すまでExcel非表示にしたい

    VBAでユーザフォームを作成しました。 Excelを立ち上げるとExcelシートの前にユーザフォームが出る状態なのですが、 ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが、どのような記述をしたらよいでしょうか? マクロ的に実行ボタンを押すと結果が、Excel上に反映されるので、実行ボタンを押すまで非表示であれば大丈夫です どうか教えてください。

  • エクセル:マクロ処理

    エクセルファイルにマクロを入れておき、あるボタンを押したらそのマクロが1回だけ実行される。 というようにしたい。 (質問)   ボタンは、どう作るか。コマンドで作るのか。   ボタン処理のところのマクロ記述はどんな感じのコードか。   このファイルを開いたときマクロを有効とするかは有効にするでいいんですよね。 (参考) ワークシート   ボタン1を表示しておく   マクロ   ボタン処理   実行処理 マクロend

  • マクロ(VBA)を中断中は、検索と置換は機能しない

    エクセル2010です。 マクロ(VBA)を中断中は、検索と置換は機能しないのでしょうか? VBAを中断させつつ、シート内を検索したいのですが、 うんともすんとも言いません。 マクロを実行してない時なら シート上に、ないならないとメッセージが表示されるはずなのですが、 マクロ中断中は表示されないのでしょうか?

  • ウインドウズのマクロ

    エクセルのマクロはVBAで作成出来ますが ウィンドウズ(パソコン)のマクロは何で作成できるのでしょうか? VBで作成できますか? 例えばユーザーフォームを作ってコマンドボタンを押すと、エクセルが起動するなどの操作です。 よろしくお願い致します。

  • エクセルXPと2000でのマクロ

    初歩的な質問になりますがご存知の方は是非教えて下さいm(__)m EXCELXPでリストから並び替えのマクロを記録させてフォームボタンに登録したのですがそのマクロをEXCEL2000で開いて実行しようとすると「コンパイルエラー/プログラムまたはライブラリィがありません」とでて実行できません。 ボタンでなくメニューバーからマクロを実行すると実行できます。 番号の振り直しのマクロもフォームボタンからは上記同様できません。 でも●●シートへ戻るとか振り仮名を表示するとか非表示にするとかはフォームボタンからでも実行できます。 EXCEL2000で同じ操作のマクロを作ってフォームボタンに新たに登録しなおすとボタンからの実行が出来るようになりました。 VBA画面でみるとエラーの箇所に「DataOption1:=xlSortNormal」とでていて(こちらはEXCELXPで作ったマクロ)EXCEL2000で作ったマクロと比べると「Orientation:=xlTopToBottom」と出ていて違うみたいだなぁと・・・。 でも基本的にVBA画面はあまり分からないので、なんでボタンから操作するとエラーが出たのか分かりません。理由が分からないので修正もできません。(┰_┰) 2000とXPと両方で開くことが多いのでどちらでも実行できるような状態にしておきたいのですがどうしたらいいのでしょう?何故こんなエラーがでてしまうのでしょう?対策はどうしたらいいのでしょう? どうかご存知の方、宜しくお願いしますm(__)m 因みにEXCEL2000のPCのOSは98でEXCELXPのPCのOSはXPです。

  • エクセルのユーザーフォームについて

    エクセルのユーザーフォームについて教えてください。 ユーザーフォームにてメニュー画面を作成しました。 ユーザーはメニューからの操作だけでエクセルシートを作成できるようなマクロをつくりました。 ユーザーフォームのコマンドボタンでEXCELを終了させることはできますか? VBAの記述方法も教えてください。

専門家に質問してみよう