• 締切済み

VBAでのマクロ削除

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

  • fetch
  • お礼率13% (2/15)

みんなの回答

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

すなおにその元sheet1の保存の際に、そのシートのみで新しいブックに保存するとか、そのデータをかき集めるsheet1を含むブックを新たに作ってからそちらにデータを転写するとか。 VBAで作業する用のブックとデータ保存用のブックを切り分ければよいだけかと。

関連するQ&A

  • 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 コピーファイルのマクロ削除

    下記3つの、プロシージャを組み合わせて、下記のやりたいことをやりたいのですが、うまくいきません。 どうかご教授の程よろしくお願いいたします。 excelは2000です。 ○やりたいこと 今現在開いているファイルの、コピーをデスクトップに保存して、その保存したブックのマクロ(標準モジュールと、コマンドボタン)を削除したい。 ○自分でやろうとすると コピーをデスクトップに保存すると、コピー元のファイルが勝手に閉じてしまい、コピー先のファイルのマクロを削除できない。 '■デスクトップにコピー保存 Sub copysave() Dim 場所 As String 場所 = CreateObject("WScript.Shell").SpecialFolders("Desktop") ActiveWorkbook.SaveAs Filename:=場所 & "\" & Format(Date, "yyyymmdd") & "○◆△.xls" End Sub '■標準モジュールの削除 Sub DelModule() Application.VBE.ActiveVBProject.VBComponents.Remove _   Application.VBE.ActiveVBProject.VBComponents("Module1") Application.VBE.ActiveVBProject.VBComponents.Remove _   Application.VBE.ActiveVBProject.VBComponents("Module2") End Sub '■CommandButtonの削除 Sub DelCommandButton() Dim c As Excel.OLEObject For Each c In Worksheets(1).OLEObjects   If TypeOf c.Object Is Msforms.CommandButton Then c.Delete End If Next End Sub

  • 標準モジュールを削除したい。(VBA)

    VBAで、VBAの標準モジュールを削除したいのですが、なかなか出来ません。たぶん、コレクションについての認識があまいからだと思います。VBComponents コレクションのobject.Remove(component)のヘルプには、VBProjects コレクションには、スタンドアロン プロジェクトを指定します。とありますが、そもそもスタンドアロンプロジェクトって何ですか?Application.VBE.VBProjects(4).VBComponents(1).とするとコレクションでなくなってしまいますが、どうやってモジュールと特定するのでしょうか?どなたか詳しい方いらっしゃいましたらご指導願います。よろしくお願いいたします。 VBIDEのライブラリーです。

  • アクセスで標準モジュールの中身を書き出したい

    http://officetanaka.net/excel/vba/vbe/05.htm の Sub Sample9() Dim Code As String Code = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(7, 5) MsgBox Code End Sub のエクセルではなく アクセスバージョンはないでしょうか? http://d.hatena.ne.jp/taka_2/20090907/p2 をアクセスの標準モジュールに貼り付けてみたのですが inFileName = WScript.Arguments(0) で実行時エラー424になってしまいます。

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

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

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

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

  • 自身が記述された標準モジュールを常に参照する方法

    標準モジュール名を指定せず、自身が記述された標準モジュールを常に参照する方法 例えば A = W_Book.VBProject.VBComponents("Module56").CodeModule.ProcBodyLine("Workbook_SheetSelectionChange", 0) というコードを"Module56"内に記述した場合Module56という標準モジュール名を例えばModule44と変更してしまうと動かなくなってしまうと思います。 これを、常にThisWorkbookのように、このコードが記述されたモジュールを参照するように変更はできますでしょうか?もしご存知でしたらご回答頂けますと幸いです。どうぞよろしくお願いいたします。

  • 実行時エラー 2001

    http://officetanaka.net/excel/vba/vbe/05.htm を参考に VBAコードを取得したいのですが Declare Function GetTickCount Lib "kernel32" () As Long Public sampledata As String Sub Sample9() Dim Code As String Code = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(7, 5) MsgBox Code End Sub を実行すると 実行時エラー 2001 'VBProject'メソッドは失敗しました:'_Workbook'オブジェクト が、 Code = ThisWorkbook.~ の行で発生します。 何が間違ってますか?

  • エクセル2003VBAにて、他のファイルのマクロを削除したいのですが

    エクセル2003VBAにて、他のファイルのマクロを削除したいのですが可能でしょうか? VBProjectに対するアクセスが許可されていないのが条件です。

  • excel2013 モジュールをVBAで書換えたい

    お世話になります。 現行使用しているモジュール内に記述されているファイル名をVBAで書き換えたいのです。 現状コーディング中に記述されているファイル名には、頭に年度を表わす、例えば 2014年なら下2桁の "14データ処理用" と書かれていて、年度が変わるたびに、 14を15の様にキーボードより編集しています。  しかしモジュールの中にファイル名の記述箇所が複数あり、またモジュールは複数あり その中にもその年のファイル名が記述されているために修正も一苦労しています。 そこでVBAのコードの記述を変換するためのフォームを作成し、西暦の下2桁を、前年、当年 それぞれ入力し、前年で検索して当年に置換するようにしたのですが、実行時エラー'13' で落ちてしまいます。 PCはゲストで使用しています。御存じのかたいらっしゃいましたらご教示願います。 以下VBAのコーディングです。宜しくお願いします。 Option Explicit Dim Target As Workbook, VBC, i As Long Private Sub CommandButton1_Click() Set Target = Workbooks(Sheet1) With Target.Workbooks(Sheet1).VBProject.VBComponents("Module1").CodeModule For i = 1 To .CountOfLines If .Lines(i, 1) = "" & In_Year & "データ" Then 'In_Year;前年 .ReplaceLine i, "" & Out_Year & "データ" 'Out_Year;当年 End If Next i End With Target.Save End Sub

専門家に質問してみよう