Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12962 / 13646 ツリー ←次へ | 前へ→

【5187】マクロの削除 晴香 03/4/24(木) 16:08 質問
【5189】Re:マクロの削除 Wシャツ 03/4/24(木) 16:17 回答
【5192】Re:マクロの削除 Jaka 03/4/24(木) 16:33 回答
【5195】Re:マクロの削除 晴香 03/4/24(木) 18:46 質問
【5196】Re:マクロの削除 ichinose 03/4/24(木) 20:12 回答
【5208】Re:マクロの削除 晴香 03/4/25(金) 15:04 質問
【5211】Re:マクロの削除 Jaka 03/4/25(金) 16:26 回答
【5218】Re:マクロの削除 晴香 03/4/28(月) 9:23 お礼
【7743】Re:マクロの削除 03/9/16(火) 17:30 質問
【7751】Re:マクロの削除 Jaka 03/9/17(水) 9:30 回答
【7759】Re:マクロの削除 03/9/17(水) 11:32 お礼

【5187】マクロの削除
質問  晴香  - 03/4/24(木) 16:08 -

引用なし
パスワード
   こんにちは!晴香です。

早速ですが、マクロのあるbookを開くと自動的にマクロがはしって、
処理を行います。処理を行った後ファイル名を変えて保存します。
そのときにファイル名を変更したbookを後で開いたときにマクロがはしると
困るので、マクロを削除したいのですが、いい方法はありませんか。

ちなみに新規でbookを作成してシートの移動やコピーというやり方は、
シート数がたくさんありすぎてmoveメソッドやcopyメソッドが途中で失敗して
実行時エラーが出るのでこの方法ではないやり方を教えてください。

【5189】Re:マクロの削除
回答  Wシャツ  - 03/4/24(木) 16:17 -

引用なし
パスワード
   ▼晴香 さん:
ここなんかいかがっしょ。
http://www2.yi-web.com/~Excel/ExcelVBATips/vbe/vbe_8.htm
しつれいしました。

【5192】Re:マクロの削除
回答  Jaka  - 03/4/24(木) 16:33 -

引用なし
パスワード
   こんにちは。

別名で保存したファイルが開いている状態で...。

Sub kani()
  Dim VBC As Object
  With Workbooks("別名で保存book名.xls").VBProject
    For Each VBC In .VBComponents
     Select Case VBC.Type
       Case 1, 2, 3
        .VBComponents.Remove VBC
       Case 100
        With VBC.CodeModule
          .Deletelines 1, .Countoflines
        End With
     End Select
    Next
  End With
End Sub

【5195】Re:マクロの削除
質問  晴香  - 03/4/24(木) 18:46 -

引用なし
パスワード
   ▼Wシャツ さん:
▼Jaka さん:

ありがとうございます。おかげでマクロは削除出来ました。
もう1つ聞きたいんですけど、マクロは消えたんですけど
参照設定で別ファイルを参照しているんですけど、それも解除したいですが
どのようにしたらよいか教えてください。

【5196】Re:マクロの削除
回答  ichinose  - 03/4/24(木) 20:12 -

引用なし
パスワード
   ▼晴香 さん:
▼Wシャツ さん:
▼Jaka さん:
こんばんは。
>
>ありがとうございます。おかげでマクロは削除出来ました。
>もう1つ聞きたいんですけど、マクロは消えたんですけど
>参照設定で別ファイルを参照しているんですけど、それも解除したいですが
>どのようにしたらよいか教えてください。
以下のコードで解除できますが・・・。
'==========================================
Sub test()
  Dim c_ref As Object
  For Each c_ref In ThisWorkbook.VBProject.References
   If c_ref.Name = "removetest" Then
    '例えば"removetest"というプロジェクトを参照設定していたとしたら
     c_ref.Collection.Remove c_ref
     End If
   Next
End Sub

ですが、

'===========================================
sub namelist()
  Dim c_ref As Object
  idx=1
  For Each c_ref In ThisWorkbook.VBProject.References
   cells(idx,1).value=c_ref.Name
   idx=idx+1
   Next
end sub

等で名前を確認してから実行して下さい。

【5208】Re:マクロの削除
質問  晴香  - 03/4/25(金) 15:04 -

引用なし
パスワード
   ▼ichinose さん
ありがとうございました。おかけ様で
参照設定の解除に成功しました。

もうひとつ聞かせてください。
マクロの削除と参照設定の解除を行った後、保存して
EXCELを閉じたいのですが、保存するとどうしても
マクロが残ってしまうんです。
保存したものを開こうとするとアプリケーションエラーに
なるんです。
マクロの削除と参照設定の解除した状態でそのまま保存して
終了することは出来ないのでしょうか?

【5211】Re:マクロの削除
回答  Jaka  - 03/4/25(金) 16:26 -

引用なし
パスワード
   こんにちは。
参照設定とichinoseさんのコードは良くわかっていませんが、

With Workbooks("別名で保存book名.xls").VBProject
 の
For Each c_ref In ThisWorkbook.VBProject.References

Workbooks("別名で保存book名.xls")とThisWorkbookの違いの性じゃないんですか?
この辺、直してますか?

はずれていたら、ごめんなさい。

【5218】Re:マクロの削除
お礼  晴香  - 03/4/28(月) 9:23 -

引用なし
パスワード
   ▼Jaka さん:
こんにちは。

>With Workbooks("別名で保存book名.xls").VBProject
> の
>For Each c_ref In ThisWorkbook.VBProject.References
>
>Workbooks("別名で保存book名.xls")とThisWorkbookの違いの性じゃないんですか?

大丈夫!間違ってなかったです。
解決してないけどもういいです。今やってる業務の仕様変更があってその辺は
しなくてよくなりそうなので。
お騒がせしました。

【7743】Re:マクロの削除
質問    - 03/9/16(火) 17:30 -

引用なし
パスワード
   いつもお世話になっております。
以下のマクロ削除の件で教えて頂きたいのですが…。


>
>別名で保存したファイルが開いている状態で...。
>
>Sub kani()
>  Dim VBC As Object
>  With Workbooks("別名で保存book名.xls").VBProject
>    For Each VBC In .VBComponents
>     Select Case VBC.Type
>       Case 1, 2, 3
>        .VBComponents.Remove VBC
>       Case 100
>        With VBC.CodeModule
>          .Deletelines 1, .Countoflines
>        End With
>     End Select
>    Next
>  End With
>End Sub


上記マクロですと、すべてのモジュールが消えてしまうのですが、
例えば、モジュール2は残して、後のモジュール1とモジュール3を
消してしまうといったことは可能でしょうか?

よろしくお願い致します。

【7751】Re:マクロの削除
回答  Jaka  - 03/9/17(水) 9:30 -

引用なし
パスワード
   おはようございます。
こんな感じにモジュール名をチェックして削除すれば...。
(1つや2つだけだったら、Typeを抜いて直接VBComponentsの名前で判断しても言いと思いますけど。)

Sub kani()
  Dim VBC As Object
  With Workbooks("Book1").VBProject
    For Each VBC In .VBComponents
     Select Case VBC.Type
       Case 1
        If VBC.Name <> "Module2" Then
          .VBComponents.Remove VBC
        End If
       'Case 2, 3
       '  .VBComponents.Remove VBC
       'Case 100
       '  With VBC.CodeModule
       '    .Deletelines 1, .Countoflines
       '  End With
     End Select
    Next
  End With
End Sub

【7759】Re:マクロの削除
お礼    - 03/9/17(水) 11:32 -

引用なし
パスワード
   Jakaさん、

いつもありがとうございます。
おかげさまで助かりました。

これからもよろしくお願い致します。

12962 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free