Word (VBA)

Word VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : 指定なし)
他ファイルのマクロを削除する
投稿日時: 18/07/02 15:46:31
投稿者: nac

他のファイル(doc2)内のマクロを削除するコードです。
マクロ名を取得するコードとマクロを削除するコードを組み合わせたものです。
バラバラの状態では動くのですが、組み合わせるとエラーになってしまいます。
正しい方法をおしえてください。
 
Sub マクロ削除()
'==============
Dim i As Integer
Dim マクロ名 As String
'--------------
For i = doc2.VBProject.VBComponents.Count To 1 Step -1
  マクロ名 = doc2.VBProject.VBComponents.Item(i).Name
  Application.OrganizerDelete Source:=doc2, Name:=マクロ名, Object:=wdOrganizerObjectProjectItems
Next
'==============
End Sub

回答
投稿日時: 18/07/02 18:04:46
投稿者: sk

引用:
For i = doc2.VBProject.VBComponents.Count To 1 Step -1
  マクロ名 = doc2.VBProject.VBComponents.Item(i).Name
  Application.OrganizerDelete Source:=doc2, Name:=マクロ名, Object:=wdOrganizerObjectProjectItems
Next

Dim strModuleName As String
Dim vbcModule As Object
 
With doc2.VBProject
    For Each vbcModule In .VBComponents
        strModuleName = vbcModule.Name
        Select Case vbcModule.Type
            Case 100 '定数 vbext_ct_Document と同じ値
                'ドキュメントモジュールは解放できないのでスルー
            Case Else
                .VBComponents.Remove vbcModule
                Debug.Print "モジュール[" & strModuleName & "]を解放しました。"
        End Select
    Next
End With
 
-------------------------------------------------------------------------------
 
但し[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する]
オプションを有効にしない限りは動作しません。

投稿日時: 18/07/06 14:32:00
投稿者: nac

skさん
 
遅くなってすみません。
一瞬で消えました。
まちがって使うと怖いです(笑)。
 
ネットで探しても出てこなかったので、大変助かりました。
ありがとうございます。