ExcelのVBAマクロを簡単に修正する方法は?

このQ&Aのポイント
  • ExcelのVBAマクロを修正する際に、簡単で確実な方法はあるのか?一つ一つ修正するのは時間がかかるしミスも起こりやすい。
  • Windows標準のバッチファイルやOffice周りのツールを使用して、ExcelのVBAマクロを修正する方法を教えてほしい。
  • VisualStudioは使用できないが、他にも簡単にVBAマクロを修正する方法があるのか知りたい。お知恵をお借りしたい。
回答を見る
  • ベストアンサー

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

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

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.3

VBAからVBEを操作すれば可能です。 以下のサイトの「複数ブックのマクロを置換する」を参照ください。 http://officetanaka.net/excel/vba/vbe/07.htm

PAN-MUGI
質問者

お礼

情報ありがとうございます。 どんぴしゃです! テストプログラムを作成し、希望通りの動きとなること確認しました。 ありがとうございました。

その他の回答 (2)

回答No.2

ファイル名に付加していくような考えで良いのでしょうか? http://www.adminweb.jp/command/file/index3.html http://www.atmarkit.co.jp/fwin2k/win2ktips/761renext/renext.html http://gh640.blogspot.jp/2012/11/reneme-multiple-files-without-renamer.html ここらへんを参考にしていくと良いと思います。

PAN-MUGI
質問者

補足

確認させていただきました。言葉足らずで申し訳ありません。 出来上がったExcelファイル名を変えたいのではなく、 Excelファイルを作成するマクロを修正したいのです。 これを strSaveFileName="AAA.xls" ThisWorkbook.SaveAs Filename:=strSaveFileName これに strSaveFileName="AAABBB.xls" ThisWorkbook.SaveAs Filename:=strSaveFileName VBAマクロを修正したいのです。 わかりにくくてすみません。

回答No.1

例えばどのようなファイル名になっていて、 どのように変更したいのか。 また、1つ1つ修正していくとどんな間違いが起こるか? などの情報提供おwお願いします。

PAN-MUGI
質問者

補足

たとえばですが、 AAA.xlsとしていたのを、AAABBB.xlsというように変更したいです。 想定している間違いとしては、タイプミスです。 AAABBBのところ、AAABBbにしてしまうとかです。

関連するQ&A

  • EXCEL2003の「マクロを含んでいます」の表示

    会社でEXCEL2003を使っています。 EXCELで毎月する作業があるのでマクロを組んでPersonal.exeに保存 しました。そうしたらその後作成して保存したExcelファイルは マクロを使っていなくても全部開く時に「セキュリティ警告/ ”(ファイル名)”はマクロを含んでいます」と出るようになって しまいました。 他の人から表示がでると面倒なのでVBAの画面で標準モジュールの中の MODULE1~を削除するよう言われてやっているのですが、マクロが 増えてきてこのMODULE1~をいちいち削除するのも大変でなりません。 新規ファイルを保存する時にこの標準モジュールの部分が保存されないようにする方法はありませんか?

  • VBAでのマクロ削除

    複数のExcelファイルを読み込み必要なデータのみをsheet1に寄せ集め最後にExcel形式で保存するというコードを書きました。保存したExcelファイルは、次回同じVBAのコードからWorkbooks.Open Filenameで開く必要があるため、マクロを削除してから保存しないといけないことに気付きました。 ACompo = ExcelWorkbook1.VBProject.VBComponents.Item("module1") ExcelWorkbook1.VBProject.VBComponents.Remove (ACompo) 最終的にやりたいことは、3つのフォームと2つの標準モジュールを削除したい(ワークブックモジュールにもコード書いてありますのでそれも) ということになります。 よろしくお願いします。

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

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

  • Excelマクロを削除したのに…

    こんにちは。 いまExcel2003を使用しています。 あるブックファイルにマクロプログラム(VBA)を作成しました。 VBAProjectエクスプローラには標準モジュール「Module1」 ができています。 そこでこのマクロ自体を削除することになり, VBAProjectエクスプローラから標準モジュール「Module1」 を開放しました。 ところが当該ブックファイルを一旦閉じて, 改めて開くと,[セキュリティ警告]ダイアログが表示されて, マクロを有効にするか無効にするかを聞いてきます。 マクロを消したら, マクロセキュリティレベルを変えないままで, 上記のダイアログが出ないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 よろしくお願いします。

  • Excel:VBAに関して

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

  • EXCEL2003VBA 「マクロでモジュール解放」

    質問番号:5548045の関連質問です。 EXCEL2003VBA で、セキュリティ設定で『Visual Basic プロジェクトへのアクセス』にチェックを入れて、Module1に下記のように「モジュール解放」マクロを作成しましたが、Module1が削除されません。(1)を削除して、手動操作で変更を保存でファイルを閉じるとModule1も削除されます。 Module1の削除も全てマクロで行うやり方を教えてください。 With ThisWorkbook.VBProject.VBComponents .Remove .Item("Module1") .Remove .Item("Module2") .Remove .Item("Module3") End With ActiveWorkbook.SaveAs Filename:="D:\TEST" ActiveWorkbook.Close ・・・(1)

  • excel VBA モジュール削除(複数ファイル)

    こんにちは。 VBA初心者です。 excelでマクロを組みました。 保存先は「module1」に保存されています。 excelは「様式」ファイルにマクロを組み込んでおり、そのファイルを使用してシートに記入、別名で保存して使用しています。 最終的に200近くのファイルが出来るのですが、それら全てのmoduleを削除するのが手間なのです。  ・修正する可能性があるので、最初に保存した時点ではマクロを消したくない。  ・つまり、データが仕上がった時点でマクロを削除したい。 一括で削除できる方法は無いでしょうか?  ・マクロ削除時に不要なシートも削除しています。 方法等ございますでしょうか? この方法について検索を掛けましたが、検索の仕方が悪いのか良い方法が見つかりませんでした。 他に既に回答が在りましたら、そちらも参考にしたいのでアドレス等も教えて頂けると助かります。 よろしくお願いします。

  • マクロを直接外部に読み出したい

    exel2000をwinXP SP2で使っています。 マクロを修正する際、今までは 該当するエクセルのファイルを開き、そのファイル上でVisual Basic Editorのアイコンをクリック、その中で必要なModuleを探し出し修正していました。 今回の修正作業は、修正しなければいけないエクセルのファイルが500くらいあり、しかも結構重いファイルのため、エクセルを開くだけでかなり時間を食ってしまいます。 そこで質問なのですが、エクセルのファイルをいちいち開かず、直接マクロのモジュールにアクセスする方法はないでしょうか。 どこかにしまってあるだろうと思い、いろいろ検索をかけたのですが見つかりません。 よろしくお願いします。

  • Excel VBAのゴミ?処理

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

  • VBAで別のExcelブックのボタンのマクロ登録

    Excelブック1とExcelブック2があります。 Excelブック1はVBAで 1)Excelブック2を開いて 2)Excelブック1のワークシート(Sheet1)と  モジュールシート(Module1)を  Excelブック2にコピーします。 3)ワークシート(Sheet1)にはコントロール(ボタン)が貼り付けてあって  このボタンをクリックするとモジュールシート(Module1)の中の  Excute_Button()というプロシージャ(マクロ)を呼び出すため  Excelブック1のVBAで  wb.Worksheets("Sheet1").Shapes.Range(Array("Button 1")).Select  Selection.OnAction = "Excute_Button"  と記述してボタンのマクロの登録をします。   (wbはExcelブック2を指しています) 4)Excelブック2を保存して閉じる。 という処理をしています。 この後、Excelブック1を閉じて、 Excelブック2を開いてワークシート(Sheet1)のボタンをクリックすると Excelブック1が開いてしまいます。 Excelブック2のボタンのマクロの登録のマクロ名を見てみると Excelブック1のファイル名!Excute_Button となっています。 Excelブック1のVBAで、ここを単にExcute_Buttonだけにするには どのようにすればよいでしょうか。

専門家に質問してみよう