次の方法で共有

EXCEL VBA 勝手にProjectが増えて実行される

Anonymous
2014-10-13T07:17:41+00:00

初めて質問させていただきます。

わかりにくかったらすみません。

ちょっと説明が長いですが、よろしくお願いします。

見よう見まねで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したらいいかもわかりません。

ご回答、よろしくお願いします。?

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

3 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-10-16T07:51:00+00:00

    状況が不明確ですので、何にも確かなことは言えませんが、2003で使うなら、やはり2003でテストして置かないとマズイ場合があり得ます。

    図形とかグラフとかピボットテーブルなどを操作していない場合は大概大丈夫なんですけどね。

    また、これは直接ダメと言う根拠はないのですが、古いブックの場合いろんなゴミがたまっています。

    (目に見えるところでは使っていない名前定義など)

    ですから安全のためには、新規ブックで作りなおす方が無難です。

    経験的な話ですが、Excelのブックってのはかなり弱い代物で、普通に動いていても、長く使っていると徐々に傷がたまって行きある日突然ブックが壊れて開かなくなるなんてこともないではないです。

    >漢字のマクロ名でエラーが発生した事が始まりでしたが

    日本以外のPCで使用する場合は初めから、半角英数以外がない形にしておくのが無難です。

    (これはシートの方も含めての話です)

    やはり、完璧を期すには先方と同一環境(Windowsも含めて)を作ってテストするしかありませんが・・・・・

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-10-16T05:41:56+00:00

    早々に回答ありがとうございます。

    職場の環境が、閲覧しかできなくてお返事遅くなってすみません。

    いただいたアドバイスをもとに、再度いろいろ確認したところ、VBEの「デバッグ」-「PJのコンパイル」でエラーがでました。

    AP-3の新規book作成時に、コピーで挿入したシートにあったボタンが古いAP-1のマクロ情報をリンクしていたみたいです。もちろん実行するマクロは変更しましたが、ボタンのオブジェクト名はすべてcommandbutton1でした。

    マクロの登録を変更後、コンパイルをかけなくても、こちらの環境では何の誤動作も起きなったのに、2003ではオブジェクトが古いままになっていたという事でしょうか?

    そもそもは、漢字のマクロ名でエラーが発生した事が始まりでしたが、この状況はOFFICEのバージョン違いが原因なんですかね?

    新しいBOOKでAP-4を作成し、ボタンは新規で作成、オブジェクト名も変更し、コンパイルエラーがない事まで確認しました。現地の確認がすぐにできないのが残念ですが、これで解決したらボタンのオブジェクトが置き換わっていなかったのが原因という事でしょうか。

    結果についてはわかり次第報告させていただきます。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2014-10-13T09:52:02+00:00

    >実行時にはAP-3以外はすべて閉じてもらって単独で実行してもらっています。

    これが守られていないんだと思います。

    特にBook1は多分新規ブックですので、Excelの新規ブックを別に立ち上げてるか、貴方のマクロで新規ブックを作成しているかぐらいしか考えられません。

    一度PCを再起動してそれからやって見るってのも一つの手段です。

    ご自分のPCで動いていて、別のPCで動かないなんてのは極普通にあります。

    理由としては

    1.Excelのバージョンが違う

    2.そのマクロで参照設定をしており、先方では参照エラーになっている。

    (これは非常に多いです)

    3.Windowsのバージョンが違う(これが原因の場合は経験的には稀です)

    4.マクロの中でフォルダとかファイルを定数で指定しており、それが先方の環境にはない

    5.外国のPCという事ですと、言語設定の問題もあり得ると思えます。

    等々

    いくらでもあり得ます。

    ですから、マクロを提供する場合、どのようなWindows,Excelバージョンでテストしたのか明確にしておく必要があります。

    特に外国で使うなら、先方のPCと同じ環境で確認しないと、動くなんて誰にも保証できません。

    原因については多分画面を見せられても中国語ではここでは誰にも答えられない可能性が高いと思います。少なくとも私はできません。

    向うのAnswersに画面を添えて、英語で投稿するなんて手段もあるかと思いますが・・・・

    参考まで。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません