web-dev-qa-db-ja.com

手順が大きすぎます

このエラーメッセージが表示されました-Procedure too large-VBA内。このエラーの理由と解決策は何ですか?

17
Sourav

おそらく、1つ以上の巨大なプロシージャ/関数があり、VBAにはプロシージャごとに64kなどの制限があると思います。

その手順を複数の手順に分割して修正し、1つの手順で呼び出すことができるようにします。

だから、代わりに:

 Sub GiantProcedure()
      ... ' lots and lots of code
 End Sub

あなたは次のようなものを持っているでしょう:

 Sub GiantProcedure()
      ... ' a little bit of common code
      Proc1()
      Proc2()
      Proc3()

 End Sub

 Sub Proc1()
      ... ' quite a bit of code
 End Sub

 Sub Proc2()
      ... ' quite a bit of code
 End Sub

 Sub Proc3()
      ... ' quite a bit of code
 End Sub
17
Hans Olsson

コンパイルされたプロシージャは64kbを超えることはできません。別のサブルーチンに分割する必要があります。

http://msdn.Microsoft.com/en-us/library/Aa264541

6
Wix

マクロが64ビットバージョンのOfficeを使用して作成されている場合、このエラーメッセージが表示されることがあります。詳細と回避策については、次の記事を参照してください。

Office 2010プログラムの32ビットバージョンでVBAマクロを実行しようとすると、「コンパイルエラー:プロシージャが大きすぎます」というエラーメッセージ

1
Dirk Vollmar

Microsoft PowerPoint 2013を使用すると、GiantProcedureのアイデアはうまくいきませんでした。それから、各 "proc"の前に "call"を追加しました。このような:

Sub GiantProcedure()

  Call Proc1()
  Call Proc2()
  Call Proc3()

End Sub

今、それは動作します。

0
Siamak