0

Excel VBA マクロを Windows XP から Windows 7 に切り替えようとしています。どちらの Windows バージョンも 32 ビット オペレーティング システムです。私の Windows 7 バージョンは Enterprise エディションです。

VBA コードは Windows XP で正常に動作します。Windows 7 でコードを実行しようとすると、クラッシュし、エラーの説明が報告されません。

msinet.ocxMicrosoft Internet Transfer Control 6.0 に必要と思われる を登録しました。また、追加の com コンポーネントを追加して、セキュリティの問題を修正しようとしましたtabctl32comctl332/232/32これらcomdlg32はすべて ocx ファイルです。ただし、何も変わりません。私のコードは Windows 7 でも失敗します。

登録を解除するとmsinet、Excel VBA がワークブックを開き、欠落している参照msinetを報告し、まったく機能しません。この問題を解決するにはどうすればよいですか?

4

3 に答える 3

2

気まずい。マクロ セキュリティを高または中に設定した Excel セッションでシートを開き、シートでの VBA マクロの有効化に関するダイアログに「いいえ」と応答します。

開いた場合でもプロジェクトを表示できるはずですが、コンパイルしようとすると、明らかな参照の欠落やエラーが表示される場合があります。

次へ: ワークブックを html として保存し、Excel を閉じます。一時フォルダーをクリアし、Excel を再起動して、html ファイルを開き、Excel 形式で保存します。運が良ければ、すべてのレガシー オブジェクトと参照が消去され、新しい OS と互換性のあるバージョンに置き換えられます。

これは約半分の時間で機能します。

于 2012-07-18T17:37:33.110 に答える
1

msinet.ocx が登録されていない場合にシステムがクラッシュしないということは、それが問題であることを意味するわけではありません。

モジュール内またはモジュールから呼び出されたプロシージャでそのライブラリ (msinet.ocx) への呼び出しがあり、ThisWorkbookそのライブラリが登録解除されている場合、ファイルを開いて On open マクロを実行しようとすると、モジュールはコンパイルされないため、クラッシュするコード行を実行しません。(これはあなたの場合かもしれないと推測しているだけです。)

システムをクラッシュさせる正確な呼び出しを見つけてください。

  1. msinet.ocx を登録します。
  2. マクロをアクティブにせずにファイルを開きます。
  3. 次に、ファイルの開始コードを介して手動でステップバイステップ (F8) を実行します ( Private Sub Workbook_Open())

最終的に、システムをクラッシュさせる正確なコード行に到達します。その情報があれば、より多くの助けを得ることができます。

ノート:

マクロを有効にせずにファイルを開くには、次のいずれかの方法を使用できます。

  • ファイルをダブルクリックして(Windowsエクスプローラーから)開いた後、Shiftキーを押し続けます。この方法を機能させるには、Excel アプリケーションを閉じる必要があります。

  • Excel アプリケーションが開いている場合は、VB エディターに移動しapplication.EnableEvents=False、すぐに表示されるウィンドウに入力します (Enter キーを押して実行します)。これにより、Excel のそのインスタンスのすべてのファイルでイベントが無効になることに注意してください。true に戻すか、(ファイルだけでなく) アプリケーションを閉じる必要があります。

于 2012-07-19T12:34:11.883 に答える
1

不足しているライブラリへの参照がないかどうかを確認してください。ある場合は、単にチェックを外してください。私は同様の問題を抱えていましたが、それは私の場合に役立ちました。

于 2014-05-29T14:19:32.870 に答える