註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Word
» VBA-自訂CommandBarButton事件 (插入自動圖文集)
返回列表
下一主題
上一主題
發帖
[轉貼]
VBA-自訂CommandBarButton事件 (插入自動圖文集)
偉婕
發短消息
加為好友
偉婕
(偉婕)
當前離線
UID
4
帖子
376
主題
84
精華
0
積分
419
金錢
419
點名
0
作業系統
Win 8
軟體版本
Office 2007
閱讀權限
100
性別
女
在線時間
99 小時
註冊時間
2010-4-30
最後登錄
2022-6-2
暱稱:
偉婕
版主
帖子
376
主題
84
精華
0
積分
419
點名
0
作業系統
Win 8
軟體版本
Office 2007
閱讀權限
100
性別
女
註冊時間
2010-4-30
最後登錄
2022-6-2
1
#
跳轉到
»
正序看帖
打印
字體大小:
t
T
發表於 2010-6-30 23:25
|
只看該作者
[轉貼]
VBA-自訂CommandBarButton事件 (插入自動圖文集)
VBA
,
自動圖文集
原發表者:leonchou (2005-05-28)
這次的需求是自訂一個下拉式功能表,加入數個按鈕;按鈕的動作是在文件中插入以按鈕名稱為名的
自動圖文集
項目。
由於 CommandBarButton的 OnAtion 不接受帶參數的
巨集
,又不想重複寫多個類似的巨集,所以有以下的解決方案。
其實在建立CommandBarButton時直接指定爲自動圖文集項目是可行的,但如果你真的不想那樣做,那麼以下介紹自訂 CommandBarButton 的 Click 事件:
1. 新增一個
物件
類別模組 (使用預設名稱Class1),包含以下代碼 --
Public WithEvents cmdBarButton As Office.CommandBarButton
Private Sub cmdBarButton_Click(ByVal Ctrl As Office.CommandBarButton, _
CancelDefault As Boolean)
InsertAutoText Ctrl.Caption
CancelDefault = True
End Sub
複製
代碼
2. 建立下拉式功能表巨集所在模組的程式碼 --
Dim btnClass() As New Class1
Public Sub CreateCommandBarPopup()
Dim objCommandBarControl As Office.CommandBarControl
Dim objCommandBarButton As Office.CommandBarButton
'刪除原有的下拉式功能表控制項
For
Each
objCommandBarControl In CommandBars("Standard").Controls
If objCommandBarControl.Caption = "我的功能表\" Then
objCommandBarControl.Delete
End If
Next objCommandBarControl
'在"一般"工具列建立下拉式功能表及按鈕
With CommandBars("Standard").Controls.Add(msoControlPopup)
.Caption = "我的功能表\\"
myCount = 0
For Each itm In Array("審計單位", "建設單位")
Set objCommandBarButton = .Controls.Add(msoControlButton)
With objCommandBarButton
.Caption = itm
.Tag = .Caption
End With
myCount = myCount + 1
ReDim Preserve btnClass(1 To myCount)
'將CommandBarButton逐一連結到上面自定義的cmdBarButton物件
Set btnClass(myCount).cmdBarButton = objCommandBarButton
Next itm
End With
End Sub
Sub InsertAutoText(strAutoText As String)
' 在目前位置插入自動圖文集
ActiveDocument.AttachedTemplate.AutoTextEntries(strAutoText).Insert Where:=Selection.Range
End Sub
複製代碼
如此當按下自定義功能表的按鈕就會觸發物件類別模組Class1 的cmdBarButton_Click 事件,自動判別其 Caption 屬性並呼叫 InsertAutoText 程式。
PS.
1. 相關的自動圖文集項目必須已存在,若沒有請先建立。
2. 在文件中插入自動圖文集的代碼也可以直接寫在類模組 Class1 的 cmdBarButton_Click 事件之中。
樓主熱帖
「空白身份證正反面」列印範本
在Word中設定公式運算
請教關於合併列印問題
在 PowerPoint內放置/連結excel檔案
推薦偉婕版主新作品《由淺入深快樂學Excel函
將Word檔案轉成PPT檔案
頁面框線的底部不見了!?
請教關於截取儲存格中的唯一值
為什麼文件內多了很多的藍色底線?
更改投影片頁碼位置
收藏
分享
偉婕電子書,歡迎免費下載參考
http://www.twbts.com/ebook/?subject=office
http://www.twbts.com/ebook/?subject=soft
偉婕藏書庫---https://www.facebook.com/groups/669579416484096/
有一家柑仔店---https://www.facebook.com/sadodona
yangjie
發短消息
加為好友
yangjie
當前離線
UID
1158
帖子
258
主題
77
精華
0
積分
385
金錢
385
點名
0
作業系統
Win7
軟體版本
Office2010
閱讀權限
20
性別
男
來自
Taiwan
在線時間
146 小時
註冊時間
2010-8-8
最後登錄
2021-1-25
中學生
帖子
258
主題
77
精華
0
積分
385
點名
0
作業系統
Win7
軟體版本
Office2010
閱讀權限
20
性別
男
來自
Taiwan
註冊時間
2010-8-8
最後登錄
2021-1-25
2
#
發表於 2014-1-19 14:01
|
只看該作者
回復
1#
偉婕
可否請教版主大大
Excel VBA裡
Path1 = Application.ActiveWorkbook.Path
在Excel VBA裡 應如何寫語法 去打開 path1 & "\A4_3x7.doc"
萬分感激
TOP
靜思自在 :
【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表
下一主題
上一主題
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 ‧ 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲