• 締切済み

EXCELVBA勝手にProjectが増える

初めて質問させていただきます。 わかりにくかったらすみません。 ちょっと説明が長いですが、よろしくお願いします。 見よう見まねで1年前からEXCELでマクロを作ってきました。 自分の作業効率化が目的だったので、なんとなく動いていて納得していたのですが、今回台湾で動かしたところ エラーで動かないとのこと。  ■前提条件 <作成の環境>  WINDOWS 7 office2010 但し、今回対象のEXCELはoffice97-2003バージョン .xls形式で保存,実行 <エラーが発生する環境> OS ??? office2003 とのことです。  ■作業手順 1)AP-1で実行 -> ★エラー   以下の内容で修正  ・エラー画面を送付していただき、エラーメッセージは「不正確的字元」であるが、   ファイルが見つかりません的な内容と、赤字のエラー箇所から、マクロ名が漢字であるのが原因かと判断    -> マクロ名をはじめ、マクロ内のコメントを含むすべての文字を半角に修正(全角spaceがないことも確認済み)   ・元々10数個のマクロがありましたが、エラーが発生するマクロのみに修正    *このとき、元のEXCELの状態が残っていたら気持ち悪いので      97-2003で新規EXCELを作成し、必要なシートをコピーで挿入     新規マクロを作成し、元のソースコードをコピーで貼り付けてマクロを更新   ・ちなみに、別名で互換性チェックを行い、2003での互換エラーは当初37あったが、    わかる範囲で色を2003の標準カラーのみに展開して現在24個の「再現性の低下」が残っている状態です。  2)上記修正対応を2回行ってもらい、最終的に AP-3で現在実行確認中  現在のvbaの構成 (日本: 問題なく実行できる) --------------------------------------------------------------------------------- ---+--- VBAProject(AP-3)   +----+---Microsoft Excel Object +------sheet1 (data) <---- copyで挿入したシート +------sheet2 (grf)   <---- マクロを実行したら展開されるシート +------sheet3 (index) <---- copyで挿入したシート +------ThisWorkbook +---+---標準モジュール +----Module1 ------------------------------------------------------------------------------- ■現在発生しているエラー状況 1)エラー発生箇所    上記、作業手順1)★エラーと同じ箇所(AP-1のマクロ名が漢字の箇所)でエラーが発生し、処理が中断される    *実行時にはAP-3以外はすべて閉じてもらって単独で実行してもらっています。 2)エラー画面    相手側から送付してもらったエラー画面をみると、AP-1の背後に、AP-3のVBAの状態が表示されているが    AP-3のvbaの構成がこちらの構成と異なっています。 3)実行時のvbaの構成  ---+--- VBAProject(AP-3) ---+--- VBAProject(Book1) ---+--- VBAProject(AP-1) +----+---Microsoft Excel Object +------sheet1 (data) +------sheet2 (grf)   +------sheet3 (index)   +------ThisWorkbook +---+---標準モジュール +----Module1 +----Module2 +----Module3 +----Module4 .......   画面コピーで見るだけで現地の人にも聞けない状況で、はっきりとはわかりませんが、projectが勝手に増えています。 なぜ、閉じている過去実行したAPまで勝手にopenされて実行されるのでしょうか? AP-3自体は問題なく処理されているのでしょうか? EXCELのプロセスが正しくcloseしていない?ようですが、どうcloseしたらいいかもわかりません。 ご回答、よろしくお願いします。

みんなの回答

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

台湾のPC・エクセル仕様がどのように影響するか分かりませんが、言語が違うだけで同じように動作するとおもいますが。  >*実行時にはAP-3以外はすべて閉じてもらって  > 単独で実行してもらっています。 projectが増えているのか、最初から非表示状態で実行されているのか切り分けれないでしょうか? (projectウィンドウの状態をみるに、AP-1もAP-3も実行されていて、表示されているのはAP-1のように見受けられます) AP-1とAP-3のプロシージャ名が重複してて、操作時に誤ってAP-1が実行されていませんか? excelのプロセスが多重実行されている場合は、VBEでのプロジェクトもexcelのプロセス別で処理されますので複数のexcelプロセスは起動していないかと。 タスクマネージャのプロセスタブから「EXCEL.EXE」が複数起動していればプロセスが残っていることになりますが。 処理内容にもよるとおもいますが、特殊なことをしていなければプロセスを超えて影響しあう事はないかと。 起動時にブックの状態を判定する処理を加えるか、AP-3の処理状況については、処理内容をログデータへ随時出力するようにコードを改修されてはどうでしょうか。

roncoco
質問者

補足

早々に回答ありがとうございました。 職場の環境が閲覧しかできなくて、お返事遅くなりました。 アドバイスいただいた内容について、手順を調べながら順番に確認していきました。 多重プロセスについては、教えていただいた内容でタスクマネージャーで確認し、 問題ありませんでした。 VBEの画面、普段はあまり見なかったのですが、AP-1のPROJECTが本当にないか確認している中で、 「デバッグ」-「PROJECTのコンパイル」見つけ、実行したところ、エラーが発生しました。 それが、エラーが発生したのが、AP-1の漢字のマクロ名が呼び出しされているところで 呼び出し元は「Private Sub commandbutton1 click()」でした。 AP-3を作成するときに、新規BOOKから作成しましたが、シートをコピーで持ってきて その時にコマンドボタンもつれてきました。 AP-3では、コマンドボタンに新しいマクロを登録しましたが、 コマンドボタンのオブジェクト名がcommandbutton1のままでした。 これが、プロシージャー名が重複するということでしょうか? とにかく、新規BOOAP-4を作成し、AP-3からは必要事項はセル単位でコピーし コマンドボタンも新規で作成コマンドボタンのオブジェクト名を変更しマクロを登録しました。 「デバッグ」-「PROJECTのコンパイル」で確認したら、エラーは発生しませんでした。 実行時に、2010ではエラーが発生しないが、2003ではエラーになるということでしょうか? 新しいAP-4で近々現地で再確認してもらう予定です。 結果について、また報告させていただきますが、可能性としてありますよね? これでダメなら、次回LOG出力を組み込みます。 たくさん、アドバイスありがとうございました。

関連するQ&A

  • ExcelVBAのコードが知りたい

    ちょっと古いことを教えてほしいのですが。 というのは、新しく知り合いになった方から、古いプログラム(Excel-VBA)を直したい、という相談を受けました。 ところが、ものすご~く古いものらしくて 1)VBAProjectを開いてみると、シートオブジェクトと標準モジュールはあるのですが、フォームが表示されません。     でも、実際の動きをみると、入力用のフォームなどは表示されます。 2)良く見ると(Sheet表示を全部見ると)、シートオブジェクトに表示されないものがあって、そこにX1DG,X2DG・・・という名前のダイアログシートがあって、そのシート上にフォームがありました。 3)Macroを動かすいわゆるボタンはなくて、リボンの中のアドインを選ぶと、”ユーザー設定のツールバー”が表示され、その中にプルダウンメニューが設定されていて、これを操作すると、それぞれの機能が動きます。 3)動作するVBAのコードは標準Module上に書かれていますが、上記のダイアログの中の定義体や、ユーザー設定のツールバーの中のコードがどこを探しても出てきません。 4)VBAの教科書などを見ると、どうもEXCEL95/Excel4.0の時代のもののように見受けられます。 5)今使用している(知り合いの方も、私も)ものは、WinVISTA・Excel2007なのです。 どうしたら、全体構成(VBA・DG)を見ることができるでしょうか? 教えていただけると、むちゃくちゃ嬉しいのですが。 宜しくお願いします。

  • VBAについて教えて頂けませんか?

    昨日から、エクセル2003を使ってVBAを、勉強している者です。 ネット上で調べながら、取合えず簡単なVBAを入れる事が出来ました、ですがエラーばかりで、どうしても先に行けず困っています。 ネット上で参考になる、VBAなどを見て思ったのですが エクセルのVisual Basicを開くと、左側に「Sheet1」とか「Module1」等があります。 参考になるVBAでは、「Sheet1」に書かれているのがあれば、「Module1」に書かれているのもあります。 VBAは「Sheet1」に、書き込まれるべきなのでしょうか?それとも 「Module1」に、書き込まれるべきなのでしょうか? 私の場合、例えば「1」「2」「3」と数字を打ってマクロの記録をして、Visual Basicを開くと、すべて「Module1」に書き込まれます。 すみませんが、教えて頂けませんか?

  • エクセル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です。

  • ExcelVBAでデバックから帰還するには

    VBA初心者です。 マクロを実行するとエラー表示になったのでデバッグします。 黄色になっている箇所のコードを書き換えた後、どうしていいかわかりません。もう一度当該マクロを実行するのにはどうしたらいいのでしょうか。またはマクロ実行前に戻るのにはどうしたらいいのでしょうか。 質問している本人が何を言っているのかよく分かっていません。斟酌して頂けれると幸いです。

  • エクセルのマクロの修正方法

    エクセルで簡単なマクロを作って使用しています。 例えば罫線を引いたり、特定の行列を削除するなど本当に簡単なものです。 ところが、ある時期から全てのマクロ(20個くらい)を実行させると必ず、ある特定のファイルが開いてしまうのです。 おそらくなにか間違った操作したためだとおもうのですが、どこで修正すればよいのでしょうか? マクロ編集画面の「VBAProject」というところですか? (あまり詳しくないのでかんたんにお願いします) ウインドウズXPでエクセル2000です。

  • Excel VBAのゴミ?処理

    ExcelのVBAを修正、追加してそのまま保存するとファイルサイズが増えていきます。そのためにこのファイルを実行するとエラーが発生してしまうことがある。 私はこれを回避するために一度マクロモジュールを抜いてシートだけ保存し、モジュールのインポートを行い合成してファイルの管理をしています。これがマクロを変更する度におこなうのが手間である。何方か良い方法があれば教えてください。

  • Excel2003でマクロが動かなくなった!

    Excel97で作成されたVBAマクロがあるのですが、 Excel2000とExcel2002までは問題なく動いていたものの、 Excel2003では実行途中でエラーが発生してしまいました。 VBAマクロには上位互換が無いのでしょうか?? 自分はマクロに詳しくなく使用する立場なのですが、 マクロを作成した人が既に退職している為、 修正できる人間がおりません。。 何か簡単な方法で回避できる方法は無いものでしょうか? 宜しくお願い致します。

  • エクセル VBA dll 読み込み時のエラーです

    エクセルファイルを作成しました。 ボタンを押すとシートを選ぶような簡単なマクロが付随してます。 サーバーにアップロードする方法で 複数の人間が利用してデータを上書きするものです。 途中でマクロを実行する際に 「dll 読み込み時のエラーです」 と表示されるようになりました。 修正しても不定期で発生します。 VBA標準モジュールのファイルをクリックしても同様で マクロのコードが参照できません。 ファイルは重い為、圧縮と解凍を繰り返してます。 どのような原因があるのでしょうか。 エクセルもVBAも素人ですので わかりやすい解説をお願いします。

  • エクセル VBAについて困っていることがあり質問をします。

    エクセル VBAについて困っていることがあり質問をします。 日本語Windows及び日本語エクセルで作成したマクロを英語オンリーのWindows及びエクセルで使用すると下記のエラーで停止してしまします。 Microsoft Visual Basic Compile error on hidden module: sheet1 どうしても仕事で日本語Windowsで作成したマクロを英語オンリーのWindowsで実行させないと行けません。どうか知っている方がいましたら教えて下さい。 情報: (1)シート1にもマクロ(コントロールボックス)から入れたマクロが入っています。 (2)マクロには、日本語の表記があります。

  • Excelマクロを削除したのに…

    こんにちは。 いまExcel2003を使用しています。 あるブックファイルにマクロプログラム(VBA)を作成しました。 VBAProjectエクスプローラには標準モジュール「Module1」 ができています。 そこでこのマクロ自体を削除することになり, VBAProjectエクスプローラから標準モジュール「Module1」 を開放しました。 ところが当該ブックファイルを一旦閉じて, 改めて開くと,[セキュリティ警告]ダイアログが表示されて, マクロを有効にするか無効にするかを聞いてきます。 マクロを消したら, マクロセキュリティレベルを変えないままで, 上記のダイアログが出ないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 よろしくお願いします。

専門家に質問してみよう