• ベストアンサー

Excel:VBAに関して

バグがある標準モジュール(.bas)がぶら下がっていて、それをバグ修正したモジュールに切り替えたいのです。バグあるモジュールをエクスポートして、新規に改修したモジュールをインポートすれば良いのでしょうが、本数が多くて困ってます。 複数のExcelファイルを対象に、モジュールの入れ替えを行うのに何か良い案はありますでしょうか? Excel VBAでできれば良いのでしょうが、、マクロでそんなことできませんよね・・・?

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

エクセルのマクロで書き換えが行えます。 機能的には弱いので、プログラムで工夫しないといけないので厄介ですが・・・。 ○モジュールの削除 ○モジュールの追加 ○モジュール編集は、行単位での挿入や削除 ○モジュール内容の読み込み ○モジュール名やプロシージャ名の取得 ○文字列検索 ○行数取得 等なので、プロシージャ単位でのカットや追加は、プログラムで工夫する必要があります。 >バグあるモジュールをエクスポートして、新規に改修したモジュールをインポート 手動での方法だと思いますが、同名のモジュールをインポートした場合、後から読み込んだモジュールは改名されてしまうので、モジュールを削除するほうが良いでしょう。 下記に自動更新のサンプルがあります。 また「VBA CodeModule」等で検索すると幾つかの情報が集まると思います。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/download/sub09_020_130.html
yukimizu
質問者

お礼

ありがとうございます

関連するQ&A

  • ユーザー定義関数をEXCELに常駐させたい

    VBAの標準モジュールで作成したユーザー定義関数を、*.bas形式でエクスポートしています。 エクセルを立ち上げるたびに、インポートしなければならず、非常に手間です。 また、*.basファイルを職場の仲間にも広めたいと思っているのですが、毎度インポートすることになると、面倒になります。 そこで、誰のEXCEL本体にも常駐させ、SUM関数のようにいつでも使用できる状態にするにはどうすればいいでしょうか?

  • エクセルVBAでVBAの修正は出来るのでしょうか?

    エクセルVBAでVBAの修正は出来るのでしょうか? あるエクセルファイルにマクロを組み込んでいます(ユーザーフォームも使用)。 このエクセルファイルを複数個フォルダ内にコピーしています。 このコピーした全てのファイルのマクロの修正をVBAで出来ないかと考えています。 修正箇所はモジュール内のコード修正、モジュールの追加、既存のユーザーフォームにボタン等の追加等です。 エクセルは2003を使用しています。 どなたか教えてください。

  • VBAマクロ自体を変更したい

    ExcelのVBAマクロ(標準モジュールのModule1)にExcelファイルを保存するマクロを記述しています。 その中で、保存する際のファイル名の命名規則を変更する必要が出てきました。 しかしながら、対象のファイルは多数あり、一つ一つ修正していくと、 間違いが起こる可能性があります。時間もかかります。 そこで、 できるだけ簡単に間違いなくVBAを修正したいと考えています。 何か手段はあるでしょうか? 使用するツールは、バッチファイルなどWindows標準、Office周りを考えています。 VisualStudioなどは当方にライセンスがないため、使用できませんが、 このような考え方でできる!という情報もお待ちしています。 よろしくお願いいたします。

  • Excel VBAのゴミ?処理

    ExcelのVBAを修正、追加してそのまま保存するとファイルサイズが増えていきます。そのためにこのファイルを実行するとエラーが発生してしまうことがある。 私はこれを回避するために一度マクロモジュールを抜いてシートだけ保存し、モジュールのインポートを行い合成してファイルの管理をしています。これがマクロを変更する度におこなうのが手間である。何方か良い方法があれば教えてください。

  • VBAによるVBAプロジェクトパスワード入力

    エクセルの成果物を他人に渡したいのですが、マクロを使っているためモジュールを解放してから渡したいと考えています。 解放するエクセルが100個くらいあるため、別途モジュールを解放するプログラムをVBAで作りましたが、 対象とするエクセルのVBAプロジェクトにパスワードをかけていたため、解放することができません。 それぞれ立ち上げてパスワードを入力すればいいかもしれませんが、それをするならそのままモジュールを解放すればいいので、できればやりたくありません。 パスワードは分かっています。 VBAを使ってVBAプロジェクトのパスワードを入力する方法をご教示いただけないでしょうか? よろしくお願いします。

  • エクセルVBAで標準モジュールを保護したい

    エクセルのVBAマクロを使用したエクセルフィルがあります。 ユーザーは標準モジュールに記述した関数を使ってシートのマクロを変更してカストマイズできます。 ユーザーが標準モジュールを変更すると使用できなくなりますので、この標準モジュールだけをユーザーが変更できない、または見えないようにする方法をご教示いただけませんか。 よろしくお願いします。

  • VBAからVB6への移行

    エクセルVBAでフォームを作成して使用していたものがあります。 諸般の事情でエクセルVBAからVB6sp6に移行することになりました。 エクセルVBAからフォーム、クラス、標準モジュールをエクスポートして、VB6のプロジェクトへインポートしました。 エクセルVBA上でフォームだったものがVB6ではデザインに変わりました。 これをVB6のフォームにしたいと思い、VB6でフォームを新規作成してデザインのフォームから各コントロール(ボタン等)をコピーペーストしようとしたところ、できませんでした。 1.フォームをVB6で作り直すしか方法が無いのでしょうか。 2.どのような理由でコピーペーストができなくなっているのでしょうか。 よろしくお願いします。

  • excel2010でボタンが反応しなくなった?

    EXCEL2010でシート上に作成したボタンがある時期から反応しなくなりました。 原因がわかりません。 VBAエディタで開いて、実行(f5)すると実行できます。 どうしたら元に戻るか、どなたかわかる方、お願いします。  ・元に戻る…「Excelのシート上からボタンをクリックするだけで実行できるようになる」 1.処理自体は単純でシート上に作成したコマンドボタンをクリックすると   標準モジュールに記述したマクロを実行します。   Sheet1のコード (CommandButton1_Click)      Call [標準モジュールSubの名称]ItiranGet   ※1 VBAのコードを開いた状態で、上記のCall文、標準モジュールで      実行(F5)すると、実行できます。 2.マクロのセキュリティは、下記に設定しています。   すべてのマクロを有効にする よろしくお願いいたします。

  • エクセルのマクロを使ったファイルが他のPCで動きません。

    マクロ超初心者です。 マクロは自動記録で登録しました。 40個くらいのマクロを自動記録して、 それを連続して実行できるようにしました。 自分のPCでは問題なく作動します。 そのエクセルファイルをメール添付で友人に送りました。 ところが友人のPCではエラーになり実行できません。 「実行時エラー1004 runメソッドは失敗しました。applicationオブジェクト」 と表示されるそうです。 個々のマクロを単独で実行しても出来ません。 そこで送ったファイルと同じファイルのマクロを全てエクスポートして そのファイルを友人に送り、それをインポートしてもらいました。 Visual Basic Editorで確認してもらうとそのファイルはインポートされたようですが、上記のエラーになります。 マクロのファイルは「module1.bas」のような標準モジュールです。 どうすればマクロを実行できるようになりますか? 初心者でも分かるような回答をよろしくお願いいたします。

  • エクセル VBA dll 読み込み時のエラーです

    エクセルファイルを作成しました。 ボタンを押すとシートを選ぶような簡単なマクロが付随してます。 サーバーにアップロードする方法で 複数の人間が利用してデータを上書きするものです。 途中でマクロを実行する際に 「dll 読み込み時のエラーです」 と表示されるようになりました。 修正しても不定期で発生します。 VBA標準モジュールのファイルをクリックしても同様で マクロのコードが参照できません。 ファイルは重い為、圧縮と解凍を繰り返してます。 どのような原因があるのでしょうか。 エクセルもVBAも素人ですので わかりやすい解説をお願いします。

専門家に質問してみよう