2008年8月28日 星期四

圓戳章-增益集-Excel 2007版

圓戳章-增益集-Excel 2007版 (之轉貼)

索 引Office 2007 筆記
主 題圓戳章-增益集-Excel 2007版
版 本>= 12.0(Office 2007)
說 明

經過大約10天的摸索學習對於Ribbon(功能區 ) XML 檔語法也有一定的認識,接著就開始進入實戰訓練了(加油!),這次目標是將 圓戳章-增益集 轉換為 2007版增益集,以下將轉換的過程記錄下來….

參 考

  • 先來解說 XML 檔,以下為本範例的XML語法
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <!-- Add Custom group to the Home tab in the ribbon--> <ribbon> <tabs> <tab idMso="TabInsert" > <group id="sealGroup1" label="chijanzen Tools" insertBeforeMso="GroupEditing" > <button id="rxSealbtn1" label="圓戳章" image="seal" size="large" onAction="Callseal" /> <button id="rxSealbtn2" label="選項" imageMso="ControlSetControlDefaults" size="large" onAction="Callsealoption" /> </group> </tab> </tabs> </ribbon> </customUI> 
  • 從下圖就可以看出<ribbon>、<tabs>、<tab>、<group>、<button>的附屬關析
  • 上次文章 Ribbon(功能區 ) 說明中我有整理 出 Ribbon 索引標籤與 XML 標籤名稱的對照表,
  • 我要在 「插入」(TabInsert )索引標籤內新增2個按鈕,所以語法為 
      <tab idMso="TabInsert" > <group id="sealGroup1" label="chijanzen Tools"    insertBeforeMso="GroupEditing" > 

Ribbon 索引標籤

XML 標籤名稱

常用TabHome
插入TabInsert
版面配置TabPageLayoutExcel
公式TabFormulas
資料TabData
校閱TabReview
檢視TabView
開發TabDeveloper
增益集TabAddIns
  • 建立好群組(group)後,我在群組(group)內新增2個按紐(button),語法如下

<button id="rxSealbtn1" label="圓戳章" image="seal"
size="large" onAction="Callseal" />
<button id="rxSealbtn2" label="選項" imageMso="ControlSetControlDefaults"
size="large" onAction="Callsealoption"
/>
 

  • 第一個按鈕 圓戳章 使用自訂的圖示 image="seal" ,要如何插入自定圖示請參考 Custom UI Editor Tool

  • 第二個按鈕 選項 使用Excel 自帶的圖示 imageMso="ControlSetControlDefaults" , 要如何知道Excel 自帶圖示樣式及名稱,

請下載 http://www.rondebruin.nl/files/BtnImages.zip

  • XML 檔語法寫好後,使用 Custom UI Editor Tool 將 XML 檔存入增益集中。
  • 製作完 XML 檔,開始寫 Callback (回乎)程式,程式碼如下

'Callback for rxSealbtn1 onAction
Sub Callseal(control As IRibbonControl)
Dim seal_shp As Shape, actRng As Range
Dim Item As Object
On Error Resume Next
If ThisWorkbook.Sheets("IconSheet").Range("Z1") <> "chijanzen" Then
MsgBox "歡迎使用圓形章程式,第一次使用本程式需作基本資料設定"
sealForm.Show 0
Exit Sub
End If
'插入圓戳章
On Error Resume Next
'刪除已存在的圓戳章
Set seal_shp = ActiveSheet.Shapes("icon")
If Not seal_shp Is Nothing Then seal_shp.Delete
'插入圓戳章(日期為當日)
Set actRng = ActiveCell
With ThisWorkbook.Sheets("IconSheet").Shapes("icon")
.GroupItems.Item(6).TextEffect.Text = Format(Date, "Yyyy/m/d")
.Copy
ActiveSheet.Paste
End With
actRng.Activate
End Sub
 


'Callback for rxSealbtn2 onAction
Sub Callsealoption(control As IRibbonControl)
sealForm.Show 0
End Sub
 


  • 圓戳章-增益集-Excel 2007版 檔案下載檔案下載

  • 安裝說明:

附件內有兩個檔案,請解壓縮到同一資料夾內,請執行Install 按鈕安裝程式

 

VBE 密碼:chijanzen

沒有留言: