アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

Sub Macro1()


1
2
3
4
5
6
7
End Sub

と大きなsubがある、として、
これを、
Sub Macro1()
 call m1
 call m2
 call m3
End Sub

sub m1()
1
2
end sub

sub m2()
3
4
5
end sub

sub m3()
6
7
end sub

としたら良いのでは?
    • good
    • 0
この回答へのお礼

これですこれ!!
完璧です。ありがとうございました。

お礼日時:2004/10/13 20:57

tihitです。


見積書印刷でページ数が多いとSelect Caseコマンドでページを指定しますが、工事見積もりで、かなりのページになります。フォーマットがありますので、印刷の度にページ数を指定するダイアログボックスで入力します。Select Case で50Pageも書きますと文字数オーバーになったので、25Pageと26~50ページの二つのボタンクリックでプロシージャを分けてかいたわけです。
 テキストボックスやボタンクリックでやっていました。
 ボタン配置250個くらい、入力用ダイアログBOXは
 約100個くらい作りました。

 建築材料屋さん向けのソフトです。
 現在、止めて10年くらいたちます。止めてからすぐ不景気なり、いい引き時だったと思います。
 ご参考になれば幸いです。
 時代が一昔前ですから、自信無しです。
    • good
    • 2
この回答へのお礼

ありがとうございます。
今回私の場合は、#2さんの方法で解決することができました。
しかし再度の回答本当にありがとうございました。

お礼日時:2004/10/13 20:58

 マクロは手入力と自動記録とありますがどちらでしょうか。


 自動記録マクロはいらないものがたくさん入り大きくなります。
 ExcelやLotus123で印刷やページ設定を同じマクロにすると大きすぎてだめだったので3つに分けてやったことがあります。
 文字数制限がありますのでヘルプで確認してください。

この回答への補足

手入力も自動記録もしています。余分なものはすべて消しているのですがどうしても長くなってしまいます。
>3つに分けた
と書かれていますが、3つに分けた後、どのように実行されたのですか?
3回マクロを実行した形でしたか?
マクロを分けることができるのですが、コマンドボタンを1回押すことによって分けたマクロがすべて実行できるようにしたいのですが・・
よろしくお願いいたします。

補足日時:2004/10/13 17:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています