'Form
Option Compare Database
Option Explicit
Private Sub Form_Open(Cancel As Integer)
rbn01.CreateRibbon
Me.RibbonName = rbn01.rbnName
End Sub
'module:rbn01
Option Compare Database
Option Explicit
Public Const rbnName = "rbn01"
Private rbn As IRibbonUI
Public Function Onload(ribbon As IRibbonUI)
Set rbn = ribbon
End Function
Sub CreateRibbon()
If Not rbn Is Nothing Then Exit Sub
On Error GoTo ErrHnd
Dim xdoc As New DOMDocument
Dim xelem(10) As IXMLDOMElement
Dim i As Integer, j As Integer
Set xelem(0) = xdoc.createElement("customUI")
xelem(0).setAttribute "xmlns", "http://schemas.microsoft.com/office/2009/07/customui"
xelem(0).setAttribute "onLoad", "Onload"
xdoc.appendChild xelem(0)
Set xelem(1) = xdoc.createElement("ribbon")
xelem(1).setAttribute "startFromScratch", "true"
xelem(0).appendChild xelem(1)
Set xelem(2) = xdoc.createElement("tabs")
xelem(1).appendChild xelem(2)
For j = 0 To 8
Set xelem(3) = xdoc.createElement("tab")
xelem(3).setAttribute "id", "tab" & Format(j, "00")
xelem(3).setAttribute "label", "タブ" & Format(j, "00")
xelem(2).appendChild xelem(3)
Set xelem(4) = xdoc.createElement("group")
xelem(4).setAttribute "id", "group" & Format(j, "00")
xelem(4).setAttribute "label", "グループ" & Format(j, "00")
xelem(3).appendChild xelem(4)
For i = j * 1000 To (j + 1) * 1000 - 1
Set xelem(5) = xdoc.createElement("button")
xelem(5).setAttribute "id", "button" & Format(i, "0000")
xelem(5).setAttribute "label", "B" & Format(i, "0000")
xelem(5).setAttribute "imageMso", "HappyFace"
xelem(4).appendChild xelem(5)
Next
Next
' Debug.Print xdoc.XML
Application.LoadCustomUI rbnName, xdoc.XML
Done:
Exit Sub
ErrHnd:
If Err.Number <> 32609 Then MsgBox Err.Number & vbCrLf & Err.Description
End Sub
0 件のコメント:
コメントを投稿