次の方法で共有

マクロの自動修正について

Anonymous
2011-02-06T06:23:15+00:00

xlaで関数を作成し、xlsにマクロを記載してxlaの関数をコールするように処理を作り、xls側への影響を少なくしています。

この度、xls側のマクロを修正する必要が発生したのですが、作成したxlsが大量にあるため、なんとかxls側のマクロを自動で修正できないかを模索しています。(例えば、マクロでマクロを作成することができないか等)

大量にあるxlsのマクロを効率的に修正する方法をご存知でしたらご教示ください。

※xlsのマクロにはパスワードをかけて、容易にVBAでソースを表示できないようにしています。

※xlsのマクロは、修正対象の部分ではないところで一部処理が異なり単純にモジュールのexport/importはできない状況です。

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

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

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

質問作成者が受け入れた回答

Anonymous
2011-02-07T02:56:41+00:00

kimkim48 さん、こんにちは。

すでに作成済みのマクロを記載しているファイル内のマクロのコードを自動(もしくは、一括で?)で修正を行いたいということですね。

例えば、マクロでマクロを作成する方法としては、VBA の VBComponents コレクションにある Add メソッドで モジュールを作成したり、CodeModule オブジェトから、モジュール内のコードの取得や記述ができるのかなと思います。(詳細は VBA のヘルプより、"VBComponents" や "CodeModule" を検索してみてください)

ちなみに、VBComponents を利用する場合は、Excel の Visual Basic  の画面より、メニュー バーの [ツール] - [参照設定] から "Microsoft Visual Basic for Application Extensibility 5.3" を有効にする必要があります。

また、Web から "VBComponents" や "CodeModule" と検索した場合も、色々な作成方法のサンプルも見つかるかなと思いますので、ぜひ探してみてくださいね。

作成していく中で、どうしてもこの部分が分からないなどがありましたら、実際のコードなどと一緒に、こちらへ返信いただくと、みなさんからのアドバイスも集まってくるかもしれません。

まずは、"VBComponents" や "CodeModule" でやりたいことが可能か、情報を集めてみてくださいね。

その後の状況などもよければ、ご返信ください。


石田 優 – Microsoft Support

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

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

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2011-02-22T07:00:19+00:00

    kimkim48 さん、こんにちは。

    その後いかがでしょうか。

    こちらの情報について、作業の効率化として、他の方にもご参考になればと [回答としてマーク] をさせていただきました。

    (マークがあると、他の方が検索する際に情報が見つけやすくなります)

    Answers は誰でもご参加できるコミュニティのため、質問者の方以外がご覧になる可能性も考慮しており、ご質問の内容によっては具体的な情報が得られにくい場合があるかもしれませんが。。。 また Answers をご利用ください。

    お待ちしております。


    黒田まい – Microsoft Support

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

    0 件のコメント コメントはありません
  2. Anonymous
    2011-02-12T03:35:55+00:00

    ご教示ありがとうございます。

    作業の効率化として本質問させていただきましたが、悪意のある使い方をすることができるためこのような場で質問するようなことではないのですね。

    自分で調べて解決できなさそうなら、ファイルを一つ一つ修正します。

    VBComponents、CodeModuleの件、ご教示ありがとうございます。

    参考にさせていただきます。

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

    0 件のコメント コメントはありません
  3. Anonymous
    2011-02-07T10:49:47+00:00

    回答ではありません。悪しからず。

    コードをプログラムから修正しようというのは、質問している方の意図は別にして、掲示板によってはウィルスとかワームに流用可能なテクニックであるとして激しく顰蹙を買う場合があります。(今は知りませんが、以前のMOUGなんかでは質問するだけで。袋叩きにあってました)

    私は個人的にはそこまでの意識はありませんし、自分では必要に応じてやりますが、この質問に具体的にフォローするつもりはありません。

    理由は、いずれにしろ非常にリスキーな処理であり、質問して教えてもらうような代物ではなく、自信のある方がご自分で調べて、試しながらやるべきものと考えており、また、そのレベルでなければ手を出すべきテーマではないと考えるからです。

    また、調べるつもりになれば、ネット上にいくらでもサンプルは転がっています。

    それと、対象のブックにはプロジェクトのロックがかかっているようですが、これはパスワードが既知であっても、私の知っている範囲ではVBAからは操作できないはずです。

    パスワードを指定して解除するわけでしょうから、できても良いような気がするのですが、シートやブックのプロテクトと異なり、VBAのプロテクトをVBAから解除するのはやり過ぎと判断しているのだと思います。

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

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