用VBA刪除Word裏的巨集(Macro、宏) - 鳥毅的Blog
文章推薦指數: 80 %
用VBA刪除Word裏的巨集(Macro、宏) · Word必須信任存取Visual Basic 專案 · 要引用Microsoft Visual Basic for Application Extensibility.
跳到主要內容
用VBA刪除Word裏的巨集(Macro、宏)
9月04,2007
VBA是VisualBasicforApplications,和VisualBasic6並不是同個東西。
在下敝人小弟我遇到某些Word檔裏有AutoClose的巨集,而且內容不正確,可能是刪除病毒留下來的?OfficeScan並不把它視為病毒,但ClamAV、Nod32等均視為病毒直接刪除整個檔案,造成user困擾,而且AutoClose巨集會造成自動感染Normal.dot(Word97)。
本來想用ApachePOI處理,但沒找到VBE相關的東西,只好以夷制夷,呼叫Word自己來刪Macro。
由於我並沒有裝VSTO套件,所以也沒有試用.net存取Word的方式,直接用長得很像的VB6。
在下手上沒有VBA的書,照著網路上的範例在Word的VB編輯器可以,但試半天用VB6呼叫都沒有成功。
隔天敝公司的VB超人出差回來,他告訴我兩個keypoint:Word必須信任存取VisualBasic專案要引用MicrosoftVisualBasicforApplicationExtensibility我只注意到要引用WordObjectLibrary,忽略了VBE引擎,所以才會一直無法使用VBE。
請在VB6專案引用MicrosoftWord11.0ObjectLibrary(這是Word2003,從8.0~12.0應該都可以,看Client的Word,所以這個程式還和Word綁在一起)及MicrosoftVisualBasicforApplicationExtensibility5.3(同樣和Word綑綁,Word97的VBE無版號),我再加上了MicrosoftScriptingRuntime以提供FileSystemObject。
開檔的部份就不寫了,以下是刪除巨集的subroutine:PublicSubEraseWordMacro(wdAppAsWord.Application)DimwdDocAsWord.DocumentSetwdDoc=wdApp.ActiveDocumentDimjAsIntegerDimiAsIntegerDimnLinesAsIntegerDimoVBCompAsVBIDE.VBComponentDimcodeoflineAsStringDimnProjectsAsIntegernProjects=wdDoc.VBProject.Collection.CountForj=1TonProjectsDimnAsIntegerDimstrAsStringIfwdDoc.VBProject.Collection.Item(j).Protection=FalseThenDimkkkAsVBIDE.VBComponentForEachkkkInwdDoc.VBProject.Collection.Item(j).VBComponentskkk.CodeModule.DeleteLines1,kkk.CodeModule.CountOfLinesNextEndIfNextjEndSub這支程式主要是先找出Storage上所有doc檔,循序開啟刪除巨集,我設定是掃所有project,因此若Normal.dot有巨集也會刪除,若只想刪開啟的word檔上的巨集,就只要處理wdDoc.VBProject.Collection.Item(1)。
建議用Word2003,把安全性設為高以避免感染Normal.dot。
在測試Word2007時會顯示不提供版本功能,所以不建議使用,以免誤砍user資料。
Protection屬性在用Word97時會遇到,如ETKeys。
參考:以程式設計方式存取OfficeVBA專案遭到拒絕判斷巨集是否存在如何用VBA語句刪除工作表的類模塊或其中的宏HOWTO:使用FileSystemObject遞迴搜尋目錄
分享
取得連結
Facebook
Twitter
Pinterest
以電子郵件傳送
其他應用程式
標籤
Programming
VB
Word
標籤:
Programming
VB
Word
分享
取得連結
Facebook
Twitter
Pinterest
以電子郵件傳送
其他應用程式
留言
這個網誌中的熱門文章
自然人憑證讀卡機驅動程式
4月06,2008
鳥毅用的是第一代的自然人憑證讀卡機,EZ100PU(後來有同事買EZmini可以讀SIM卡似乎更好),每年報稅時用一次。
本來只是要申請些政府業務,一時之間找不到光碟,沒想到在驅動程式下載居然看到Linux和Mac的驅動程式,剩下的就是政府單位的網頁和程式應該改版了吧!!!
分享
取得連結
Facebook
Twitter
Pinterest
以電子郵件傳送
其他應用程式
2則留言
閱讀完整內容
DBeaver介面語言
1月12,2018
DBeaver是我個人頗常用的一套跨平台Database管理工具,最近升級後發現Windows版本居然變成簡體中文,而且無法切換為英文。
分享
取得連結
Facebook
Twitter
Pinterest
以電子郵件傳送
其他應用程式
張貼留言
閱讀完整內容
在WindowsServer設定L2TPoverIPSecVPN
10月20,2016
簡單地說,macOSSierra與iOS10發表後,大家忽然發現Apple不再支援PPTP,所以一定得設定其他的VPN型態。
若不要另外裝client,用L2TP是最方便的,SSLVPN雖然好,但若沒有安裝Agent要連線到任一電腦或是非網頁服務還是挺麻煩的。
分享
取得連結
Facebook
Twitter
Pinterest
以電子郵件傳送
其他應用程式
5則留言
閱讀完整內容
關於鳥毅
鳥毅
瀏覽簡介
封存
2022
4
04
1
01
3
2021
9
11
1
08
1
07
2
06
1
05
1
03
1
01
2
2020
6
07
3
05
2
01
1
2019
8
12
3
10
1
08
1
06
1
03
1
01
1
2018
12
12
1
11
1
09
2
08
1
07
1
05
1
04
1
01
4
2017
14
12
1
11
3
10
2
08
1
05
3
04
3
01
1
2016
9
12
1
10
2
09
2
07
1
06
1
04
1
02
1
2015
8
12
2
11
1
10
1
09
1
08
1
05
1
01
1
2014
25
12
4
11
1
10
1
07
1
06
1
05
6
04
2
03
3
02
4
01
2
2013
19
12
3
11
2
10
1
09
1
06
2
05
3
04
5
02
2
2012
43
12
1
11
1
10
5
09
5
08
3
07
3
06
1
05
3
04
14
03
2
02
2
01
3
2011
37
12
4
11
3
10
3
09
3
08
3
07
7
06
4
05
3
04
2
03
1
01
4
2010
42
12
2
11
2
09
2
08
7
07
1
06
10
05
4
04
2
03
7
02
3
01
2
2009
63
12
6
11
3
10
5
09
5
08
4
07
7
06
5
05
4
04
6
03
5
02
7
01
6
2008
301
12
5
11
19
10
17
09
14
08
32
07
23
06
38
05
49
04
38
03
27
02
17
01
22
2007
351
12
20
11
29
10
28
09
21
不拘泥於招式
無責任新聞評論
準備虛擬化Server
售MacMini(已售出)
昨天做的夢
晴天霹靂
懷念的訊息
宅男大忌
故技重施
身為Programmer&IT人的下場!!
代友找工作
盜版行為不可取
遊戲外掛
Flash還會活蠻久的
不是普通人
近況報告
讓Ubuntu可以解rar
到底是誰的錯?
SunODFPluginforMicrosoftOffice
用VBA刪除Word裏的巨集(Macro、宏)
管理是最重要的事
08
31
07
33
06
29
05
32
04
29
03
33
02
21
01
45
2006
331
12
42
11
70
10
73
09
52
08
28
07
11
06
10
05
18
04
7
03
17
02
1
01
2
2005
20
12
4
11
5
10
8
07
1
04
1
02
1
2004
1
12
1
顯示更多
顯示較少
標籤
.net
小米2S
不是錯誤特攻隊
白爛網管日誌
宅男
宅男電影觀點
防毒
奇異果
持續整合
笑話
專案管理
軟體
無責任美食
硬體
虛擬化
閒聊
資訊安全
網路
臺灣泥水工
熱水器
壁癌
盧擬化
鍵盤
職場
AI
Android
AndroidStudio
Antivirus
Apache
Apple
asp.net
ASP.NetCore
asp.netMVC
BIOS
BlogBackup
Blogger
C#
C++
CentOS
CI
CoffeeScript
CrystalReports
CSharp
CSS
Database
Dedup
Development
DFS
DHCP
DistrubutedFileSystem
DIY
DNS
dotnet
Dovecot
Encoding
EntityFramework
ESXi
Excel
Firefox
Firewall
Fortigate
Fortran
FreeBSD
FreeNAS
FullCalendar
gcc
GIT
Go
Grub
HTML
Hyper-V
Internet
InternetExplorer
iPhone
IPSec
Java
JavaScript
jQuery
jRuby
L2TP
Linux
Lisp
LiveReload
Lubuntu
LXDE
Mac
macOS
NAS4Free
NetBeans
Netezza
Network
Nexenta
NFS
Nginx
NTLM
nuget
Objective-C
OpenWebMail
OSX
PDA
PHP
Postfix
Programming
Proxmox
PureData
Python
Rails
Roundcube
Ruby
SageFrame
SCM
SDS
Security
SNMP
Software
Solaris
SonarQube
Spam
SQLServer
System
TypeScript
Ubuntu
VB
VersionControl
Virtualization
VisualStudio
Vite
VMWare
VPN
vSphere
Vue
Windows
Word
WSUS
WWW
Xen
ZFS
顯示更多
顯示較少
檢舉濫用情形
延伸文章資訊
- 1請問如何消去word中巨集- PCZONE 討論區
請問如何消去word中巨集-- OFFICE 相關軟體討論版. ... 可是失敗,可是在那個檔就產生了一個巨集結果後來用word2000去開啟都會失敗 ... 找到那個〔巨集〕-〔刪除〕
- 2用VBA刪除Word裏的巨集(Macro、宏) - 鳥毅的Blog
用VBA刪除Word裏的巨集(Macro、宏) · Word必須信任存取Visual Basic 專案 · 要引用Microsoft Visual Basic for Application E...
- 3巨集病毒簡易排除法
Word 讀入文件檔(.doc)時,會檢查該檔是否含有巨集模組,若有,則會出現「關閉巨 ... 早期的Word 版本通常是在 C:\Program Files\Ms Office\Templat...
- 4刪除ThisDocument內巨集- word 2003 - 彰化一整天的論壇
刪除ThisDocument內巨集看全部 ... 您好, 您可以上傳您的測試檔案嗎? ... 謝謝您提供的解答. 這個是移除word文件中的程式碼,但是沒辦法移除模組內的程式.跟您 ...
- 5word老彈出巨集的視窗,怎麼辦? - 好問答網
1樓:夕攸能曼衍. 在word“工具/巨集/巨集/巨集的位置/所有的活動文件和模版”,選中介面已有的巨集,全部刪除,就不會再有彈出視窗出現。