• 締切済み

マクロのプロシージャーが大きすぎる・・

自動マクロで作成した二つのマクロをコピーして結合させました・・そして実行しようとするとプロシージャーが大きすぎるために実行できません、のエラーが出ました。マクロの余分なところを削除して軽くするしか方法がないでしょうか?他に方法があればご教授ください。よろしくお願いします。

  • 381mk
  • お礼率34% (367/1051)

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

結合させずに2つのままで順番に呼び出すプロシージャを作ります。 例えば、Macro1 と Macro2 が記録マクロだとしたら、Jikkou のようにします。 Sub Macro1()   '自動記録 End Sub Sub Macro2()   '自動記録 End Sub Sub Jikkou()   Macro1 'マクロ名   Macro2 'マクロ名 End Sub このとき、Macro1 と Macro2 の 先頭の Sub を Private Sub に直すと、ツール-マクロ-マクロのダイアログに表示されなくなり、間違えて単独で実行する可能性を軽減出来ます。

381mk
質問者

お礼

ありがとうございます。

関連するQ&A

  • 「プロシージャが大きすぎます」・・・?

    こんにちは。最近エクセルのマクロを使っています。 使っているといっても全く初心者で、自分で作るというよりは、マクロを記録させて、ちょこっと編集したりして、なんとか便利に使っています。 ところで、最近、まったく同じレイアウトの400枚分のシートに置換を施さなければ行けない事態になったので、上の方法で一枚分だけマクロをつくって、あとはコピーペーストで400枚分に増やし、シート名とか必要な部分をちょこっと編集して、実行しました。 一度目はほとんどうまく実行できたのですが、全てのシートのセルを結合した部分だけ置換されなかったので、こんどは上のマクロに、「Range("B2:D6").Select」をつけたし、選択部分だけ置換するように書き換えて別のマクロとして保存しました。 ところが、このマクロを実行しようとすると、「コンパイルエラー:プロシージャが大きすぎます」というエラーが出てしまい、実行できません。 いったいこのエラーは何なのでしょうか?そしてどのように解決したら良いのでしょうか?

  • マクロ subプロシージャーは指定できない?

    accessのマクロの アクション:プロシージャの実行 は、 subプロシージャーは指定できないのでしょうか? 標準モジュールに Sub test1() MsgBox "プロシージャーの実行のテストです" End Sub Function test2() MsgBox "プロシージャーの実行のテストです" End Function と作り、 マクロのプロシージャの実行で プロシージャ名をtest2()にすると、うまく表示されますが、 test1()だと、失敗します。 subプロシージャーをマクロで呼び出す方法を教えてください。

  • ACCESSのマクロに関しまして

    お願いします。 ACCESS97で追加クエリを作成し、その後自動起動にしようと思い、マクロで追加クエリを項目に入れマクロを作りました。 マクロを作成する際に、モジュールでレコード追加するテーブルを一度削除しようと思い、「DELETE文」でモジュールを作成し、マクロの追加クエリの前に「プロシージャの実行」でモジュールのプロシージャを実行するようマクロに記述しました。 <マクロ内容> (1)「プロシージャの実行」  (追加クエリで追加するテーブルの中身をDELする) (2)「クエリを開く」  (追加クエリでレコード追加) この用に記述し、マクロ名を「AutoExec」で記述して、ファイルを実行してもマクロが起動しません。 (1)の「プロシージャの実行」までは、実行されているようなのですが(テーブル内確認)、以降の追加クエリが実行されません。 何か他の設定があるのでしょうか? お願い致します。

  • マクロからFunctionプロシージャーを実行する

    マクロからFunctionプロシージャーを実行するには? 標準モジュールに Function アプリケーションのサイズを最大化する() DoCmd.RunCommand acCmdAppMaximize End Function があるのですが、 マクロからこれを実行したいのですが、見つかりませんと言う旨のエラーが発生します。 何が間違ってるのでしょうか? エラー番号は2482が表示されます。 ご回答よろしくお願いします。

  • プロシージャが大きすぎます!

    Excel2000のVBAでフィルターオプションの連続操作をマクロで作成しているのですが、60回以上フィルターオプションを実行できるように記述したのですが、 長すぎてしまい、マクロを実行すると 「プロシージャが大きすぎます」と表示され実行できなくなります。ヘルプやHPを参考にして調べてみると、プロシージャを短くすればよいことはわかったのですが、SUBでプロシージャを短くし、その後、そのSUBで区切ったものを連続実行するためにはどのようにすればよいのでしょうか? VBAを勉強したばかりで、見当違いの質問かもしれませんが、補足いたしますので、よろしくお願いいたします。

  • エクセルマクロの記録で記録した、ショートカットキーで起動するプロシージャの移動方法

    エクセル2002で、マクロの記録で記録した、ショートカットキーで起動するプロシージャを作成しました。このプロシージャは、作成するたびに新たなモジュールを自動で造りその中に記録されます。  このように作成したプロシージャを一つのモジュールにまとめたいのですが、切り取り~貼り付けを行って移動すると、起動しなくなります。 マクロの記録で記録した、ショートカットキーで起動するプロシージャのモジュール間での移動方法をお教え下さい。若しくは、指定するモジュールに上記プロシージャを記録する方法をお教え下さい。

  • エクセル,マクロのTrimの使い方

    エクセル2000を使っているのですが,マクロの使い方がよくわかりません. コピーペーストしてきた大量の文字行列の先頭末尾に余分な空白があって正しくソートされません.そこで,Trimを使おうと思ったのですが,使い方がいまいちよくわからず,エラーが出て実行できません. また,重複した内容のセルを抽出・削除もしたいのです. どうぞ教えてくださいm(_ _)m

  • 【Excel365】マクロを削除するマクロ

    特定のシート(仮にAとします)に添付画像のマクロ(別のマクロを実行するマクロ)を組み込んであります。 シートAをコピーしてシートBを作成し、値コピー・行削除などいろいろ編集した後にxlsxとして保存するという作業をしています。 しかし、シートBにも画像のマクロが組み込まれたままなので、1行目を削除するとマクロ「更新」が実行されてしまいます。 シートをコピーした後、画像のマクロを削除する方法はありませんか? 各Q&Aサイトをググるといろいろ出てきますが、理解できませんでした。 もしくは、シートAとそっくりなシート(ページレイアウトや書式もそのままでデータのみ値コピー)を作成するマクロの提示でも構いません。

  • Access マクロでのテーブル削除

    インポートの際にエラーテーブルが出来たら削除したいのですが、うまくいきません。 マクロでオブジェクトの削除でテーブルを指定すると、エラーテーブルが作成されなかったときにエラーになってしまいます。 VBAを作成し、プロシージャの実行で下記のファンクションを呼び出すと 【指定した式にMicrosoft Accessが見つけることのできない関数が含まれています】というエラーになります。 Public Function 削除() On Error Resume Next DoCmd.DeleteObject acTable, "TableA_インポート エラー" End Function できればVBAを使わずに「テーブルがあれば削除、なければなにもしない」というのを行いたいのですが、良い方法はないでしょうか? よろしくお願い致します。

  • エクセル(2000)のマクロについて

    sheetaaa~(複数シート)~sheetZZZをすべて選んでこれらのシートのコピーを、他のブックに作成するというマクロを自動保存で作りました。出来上がったマクロをみるとコピーするシート名がひとつひとつマクロの中にかかれてしまいます。sheetaaaとsheetZZZはいつもコピーするので問題ないのですが、、間に入っているシートは数がどんどん増えていくので、マクロの中でおのおののシート名を指定してしまうのは困るのです。 マクロを実行した際に、sheetaaaとsheetZZZの間あるシートは無条件でコピーを作成するというマクロを作成したいのですが、どのように作ったらいいのかわかりません。 どなたかアドバイスいただけないでしょうか。

専門家に質問してみよう