Files
2023-01-05 16:32:28 +00:00

942 lines
32 KiB
VB.net

'TODO: Follow these steps to enable the Ribbon (XML) item:
'1: Copy the following code block into the ThisAddin, ThisWorkbook, or ThisDocument class.
'Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility
' Return New Ribbon1()
'End Function
'2. Create callback methods in the "Ribbon Callbacks" region of this class to handle user
' actions, such as clicking a button. Note: if you have exported this Ribbon from the
' Ribbon designer, move your code from the event handlers to the callback methods and
' modify the code to work with the Ribbon extensibility (RibbonX) programming model.
'3. Assign attributes to the control tags in the Ribbon XML file to identify the appropriate callback methods in your code.
'For more information, see the Ribbon XML documentation in the Visual Studio Tools for Office Help.
Imports Microsoft.Office.Core
Imports Word = Microsoft.Office.Interop.Word
<Runtime.InteropServices.ComVisible(True)>
Public Class Ribbon1
Implements Office.IRibbonExtensibility
Private ribbon As Office.IRibbonUI
'Private App As Word.Application
'Public Path2Setup As String
Private MyFormat As String
Public Sub New()
End Sub
Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
Return GetResourceText("W2PAddIn.Ribbon1.xml")
End Function
#Region "Ribbon Callbacks"
'Create callback methods here. For more information about adding callback methods, visit https://go.microsoft.com/fwlink/?LinkID=271226
Public Sub Ribbon_Load(ByVal ribbonUI As Office.IRibbonUI)
Me.ribbon = ribbonUI
End Sub
Public Sub BtnSearch(ByVal ctl As IRibbonControl)
'perform initial search for document elements
Dim sMsg As String
sMsg = "This action will search for procedure elements and mark them with Comments. This may take some time."
sMsg = sMsg & vbCrLf & "Do you wish to continue?"
If MsgBox(sMsg, vbOKCancel + vbQuestion + vbDefaultButton1, "Search For Procedure Elements") = vbOK Then
'FindItems
PreSearchCleanup
FindShapes
FindSteps
FindStuff
'FindShapes
'FindSections
App.ActiveDocument.Paragraphs(1).Range.Select()
App.StatusBar = "Seach - Done"
MsgBox("Search Complete", vbOKOnly, "Search For Procedure Elements")
End If
End Sub
Public Sub BtnDecrease(ByVal ctl As IRibbonControl)
Dim rng As Word.Range
Dim rCmt As Word.Range
Dim para As Word.Paragraph
Dim sAuthor As String
Dim vLevel As Object
rng = App.Selection.Range
For Each para In rng.Paragraphs
rCmt = GetComment(para.Range)
If Not rCmt Is Nothing Then
sAuthor = rCmt.Comments(1).Author
If sAuthor Like "STEP*" Then
vLevel = Mid(sAuthor, 6, 1)
If vLevel > 2 Then
ThisLevel = vLevel - 1
Else
ThisLevel = 2
End If
rCmt.Comments(1).Author = "STEP " & ThisLevel
End If
End If
Next para
rng.Select()
End Sub
Public Sub BtnIgnore(ByVal ctl As IRibbonControl)
'RemoveComments
InsertComment("IGNORE")
End Sub
Public Sub BtnIncrease(ByVal ctl As IRibbonControl)
Dim rng As Word.Range
Dim rCmt As Word.Range
Dim para As Word.Paragraph
Dim sAuthor As String
Dim vLevel As Object
rng = App.Selection.Range
For Each para In rng.Paragraphs
rCmt = GetComment(para.Range)
If Not rCmt Is Nothing Then
sAuthor = rCmt.Comments(1).Author
If sAuthor Like "STEP*" Then
vLevel = Mid(sAuthor, 6, 1)
If vLevel < 9 Then
ThisLevel = vLevel + 1
Else
ThisLevel = 9
End If
rCmt.Comments(1).Author = "STEP " & ThisLevel
End If
End If
Next para
rng.Select()
End Sub
Public Sub BtnNote(ByVal ctl As IRibbonControl)
'mark selected text as a note
'RemoveComments
InsertComment("NOTE")
End Sub
Public Sub BtnNext(ByVal ctl As IRibbonControl)
If MoveNext = True Then
GetSection
If InStr(LCase(ThisSection.Type), "word") + App.Selection.Comments.Count = 0 Then
WhatIsThis
End If
End If
End Sub
Public Sub BtnPrevious(ByVal ctl As IRibbonControl)
If MovePrevious = True Then
GetSection
If InStr(LCase(ThisSection.Type), "word") + App.Selection.Comments.Count = 0 Then
WhatIsThis
End If
End If
End Sub
Public Sub BtnCaution(ByVal ctl As IRibbonControl)
'mark selected text as a note
'RemoveComments
InsertComment("CAUTION")
End Sub
Public Sub BtnTable(ByVal ctl As IRibbonControl)
'mark selected table as a table
App.Selection.Tables(1).Select()
'RemoveComments
InsertComment("TABLE")
End Sub
Public Sub BtnTitle(ByVal ctl As IRibbonControl)
'mark selected text as a section title
'RemoveComments
InsertComment("SECTION TITLE")
End Sub
Public Sub BtnFigure(ByVal ctl As IRibbonControl)
'mark selected shape as a figure
App.Selection.InlineShapes(1).Select()
'RemoveComments
InsertComment("FIGURE")
End Sub
Public Sub BtnDelete(ByVal ctl As IRibbonControl)
'remove all comments from the current selection
RemoveComments(True)
End Sub
Public Sub BtnFindSections(ByVal ctl As IRibbonControl)
FindSections
App.StatusBar = "Find Sections - Done"
If Not Me.ribbon Is Nothing Then
Me.ribbon.Invalidate()
End If
End Sub
Public Sub btnMergeSections(ByVal ctl As IRibbonControl)
MergeSections
App.StatusBar = "Merge Sections - Done"
If Not Me.ribbon Is Nothing Then
Me.ribbon.Invalidate()
End If
End Sub
Public Sub BtnSection(ByVal ctl As IRibbonControl)
'RemoveComments
'InsertComment "SECTION", ThisSection.Name & vbCrLf & ThisSection.Description & vbCrLf & ThisSection.Type
If Len(App.Selection.Text) < 2 Then
App.Selection.InsertBefore("SECTION")
End If
FlagSection(ThisSection)
If Not Me.ribbon Is Nothing Then
Me.ribbon.Invalidate()
End If
End Sub
Public Sub BtnSecMoveUp(ByVal ctl As IRibbonControl)
MoveComment("SECTION", "Up")
End Sub
Public Sub BtnSecMoveDown(ByVal ctl As IRibbonControl)
MoveComment("SECTION", "Down")
End Sub
Public Sub BtnSecGoNext(ByVal ctl As IRibbonControl)
App.Selection.GoTo(What:=Word.WdGoToItem.wdGoToComment, Which:=Word.WdGoToDirection.wdGoToNext, Name:="SECTION")
End Sub
Public Sub BtnSecGoPrevious(ByVal ctl As IRibbonControl)
App.Selection.GoTo(What:=Word.WdGoToItem.wdGoToComment, Which:=Word.WdGoToDirection.wdGoToPrevious, Name:="SECTION")
End Sub
Public Sub BtnXMLMake(ByVal ctl As IRibbonControl)
MakePromsXML
End Sub
Public Sub BtnXMLView(ByVal ctl As IRibbonControl)
frmXML.Show
End Sub
Public Sub BtnPXML(ByVal ctl As IRibbonControl)
MakeImportFile
End Sub
Public Sub BtnPSI(ByVal ctl As IRibbonControl)
frmProperties.Show
End Sub
Public Sub OnGetScreentip(ByVal ctl As IRibbonControl, ByRef text As Object)
Dim sText As String
Select Case ctl.Id
Case "btnReset"
sText = "Remove all comments and markups in this document"
Case "btnSearch"
sText = "Locate and markup the elements of this document"
Case "boxTitle"
sText = "Enter title for this section of the document"
Case "btnSection"
sText = "Mark selected location in the document as a Section"
Case "btnDelete"
sText = "Remove all comments and markups from the selected portion of this document"
Case "cbIdent"
sText = "Step identifier such as number or bullet"
Case "cbSeparator"
sText = "Separator between steps at this level"
Case "cbLevel"
sText = "Indentation level for the selected step"
Case "btnDecrease"
sText = "Move this step's indentation level to the left"
Case "btnIncrease"
sText = "Move this step's indentation level to the right"
Case "btnMakeXML"
sText = "Create PROMS Import File"
Case "btnImport2PROMS"
sText = "Under Development"
Case "cbSetup"
sText = "File containing setup parameters"
Case "cbSection"
sText = "Mark the selected text as the start of a Section"
Case "btnTitle"
sText = "Mark the selected text as the Title of this procedure section"
Case "mnuCaution"
sText = "Mark the selected text as a Caution"
Case "mnuEquation"
sText = "Mark the selected text as an Equation"
Case "mnuFigure"
sText = "Mark the selected shape as a Figure"
Case "mnuNote"
sText = "Mark the selected text as a Note"
Case "mnuStep"
sText = "Mark the selected text as a Step"
Case "mnuTable"
sText = "Mark the selected table as a Table"
Case Else
sText = ""
End Select
text = sText
End Sub
Public Sub OnGetItemCount(ByVal ctl As IRibbonControl, ByRef Count As Object)
Select Case ctl.Id
Case "cbLevel"
Count = 9
Case "cbIdent"
GetIdents
Count = UBound(Idents) + 1
Case "cbSeparator"
GetSeparators
Count = UBound(Separators) + 1
Case "cbSetup"
SetupFiles = GetSetupFiles
Count = UBound(SetupFiles) + 1
Case "cbSection"
GetSections
Count = UBound(VESections) + 1
End Select
End Sub
Public Sub OnGetItemLabel(ByVal ctl As IRibbonControl, ByVal Index As Integer, ByRef Label As Object)
Select Case ctl.Id
Case "cbLevel"
Label = CStr(Index + 1)
Case "cbIdent"
Label = Idents(Index)
Case "cbSeparator"
Label = Separators(Index)
Case "cbSetup"
Label = SetupFiles(Index)
Case "cbSection"
Label = VESections(Index).name
End Select
End Sub
Public Sub OnGetContent(ByVal ctl As IRibbonControl, ByRef content As Object)
Dim sXML As String
Dim sName As String
Dim I As Integer
Dim J As Integer
sXML = ""
Select Case ctl.Id
Case "mnuReset"
sXML = MakeMenuReset()
Case "mnuSection", "CTmnuSection"
GetSections
sXML = MakeMenuSection()
Case "mnuStep", "CTmnuStep"
GetSteps(ThisSection.FmtFile)
sXML = MakeMenuStep()
Case "mnuNote", "CTmnuNote"
GetSteps(ThisSection.FmtFile)
sXML = MakeMenuNCTF("Note")
Case "mnuCaution", "CTmnuCaution"
GetSteps(ThisSection.FmtFile)
sXML = MakeMenuNCTF("Caution")
Case "mnuTable", "CTmnuTable"
GetSteps(ThisSection.FmtFile)
sXML = MakeMenuNCTF("Table")
Case "mnuFigure", "CTmnuFigure"
GetSteps(ThisSection.FmtFile)
sXML = MakeMenuNCTF("Figure")
Case "mnuEquation", "CTmnuEquation"
sXML = MakeMenuEquation()
Case "mnuCheckoff", "CTmnuCheckoff"
GetCheckoffs(ThisSection.FmtFile)
sXML = MakeMenuCheckoff()
End Select
content = sXML
End Sub
Private Function MakeMenuSection() As String
Dim Cmt As Word.Comment
Dim sID As String
Dim sNumber As String
Dim sTitle As String
Dim sLabel As String
Dim sNew As String
Dim sXML As String
Dim bAttUseNumbers As Boolean
Dim bSecFound() As Boolean
Dim I As Integer
Dim iAtt As Integer
Dim iSec As Integer
iSec = 1
iAtt = 1
ReDim bSecFound(UBound(VESections))
bAttUseNumbers = False
If GetNodeValue("//AttUseNumbers") = "True" Then
bAttUseNumbers = True
End If
sXML = "<menu xmlns='http://schemas.microsoft.com/office/2006/01/customui' >"
For Each Cmt In App.ActiveDocument.Comments
If Cmt.Author = "SECTION" Then
'existing section found
With Cmt.Range
If .Paragraphs.Count > 5 Then
sNumber = Replace(.Paragraphs(4).Range.Text, Chr(13), "")
sTitle = Replace(.Paragraphs(5).Range.Text, Chr(13), "")
sID = Replace(.Paragraphs(6).Range.Text, Chr(13), "")
If IsNumeric(sID) Then
I = CInt(sID)
bSecFound(I) = Not VESections(I).IsMultiple
'If VESections(I).IsMultiple And (VESections(I).MergeStyle = "") Then
If InStr(1, LCase(sNumber), "attachment") + InStr(1, LCase(sNumber), "appendix") > 0 Then
If bAttUseNumbers Then
sNumber = sNumber & " " & iAtt
Else
sNumber = sNumber & " " & Chr(64 + iAtt)
End If
iAtt = iAtt + 1
End If
sLabel = Trim(sNumber & " " & sTitle)
sXML = sXML & "<menu id='mnuSec" & CStr(iSec) & "' label='" & sLabel & "' >"
sXML = sXML & "<button id='btnSecGoTo" & Cmt.Index & "' label='Go To' onAction='OnAction_SectionGoTo' />"
If sTitle = "" Then
sLabel = "Add Title"
Else
sLabel = Trim("Edit Title: " & sTitle)
End If
sXML = sXML & "<button id='btnSecTitle" & Cmt.Index & "' label='" & sLabel & "' onAction='OnAction_SectionTitle' />"
sXML = sXML & "</menu>"
Else
sXML = sXML & "<button id='btnUnknown" & CStr(iSec) & "' label='Unknown Section Type' />"
End If
End If
End With
iSec = iSec + 1
End If
Next Cmt
sNew = ""
For I = LBound(bSecFound) To UBound(bSecFound)
If bSecFound(I) = False Then
sNew = sNew & "<button id='btnSecNew" & I & "' label='" & VESections(I).name & "' onAction='OnAction_SectionNew' />"
End If
Next I
If sNew <> "" Then
If iSec > 1 Then
sXML = sXML & "<menuSeparator id='mnuSepNew' />"
End If
sXML = sXML & "<menu id='mnuSecNew' label='New' >"
sXML = sXML & sNew
sXML = sXML & "</menu>"
End If
sXML = sXML & "</menu>"
MakeMenuSection = sXML
End Function
Private Function MakeMenuStep() As String
Dim sXML As String
Dim I As Integer
Dim J As Integer
sXML = "<menu xmlns='http://schemas.microsoft.com/office/2006/01/customui' >"
sXML = sXML & "<menu id='mnuHLS' label='HLS' >"
For I = 0 To UBound(VESteps)
With VESteps(I)
If .Type = "HLS" Then
sXML = sXML & "<button id='btnStep1" & I & "' label='" & .Menu & "' onAction='OnAction_Step' />"
End If
End With
Next I
sXML = sXML & "</menu>"
sXML = sXML & "<menuSeparator id='mnuSepHLS' />"
sXML = sXML & "<menu id='mnuSub' label='Substep' >"
For I = 0 To UBound(VESteps)
With VESteps(I)
If .Type = "Substep" Then
sXML = sXML & "<menu id='mnuSub" & I & "' label='" & .Menu & "' >"
For J = 2 To 9
sXML = sXML & "<button id='btnStep" & J & I & "' label='Level " & J & "' onAction='OnAction_Step' />"
Next J
sXML = sXML & "</menu>"
End If
End With
Next I
sXML = sXML & "</menu>"
sXML = sXML & "</menu>"
MakeMenuStep = sXML
End Function
Private Function MakeMenuNCTF(ByVal sType As String) As String
Dim sXML As String
Dim I As Integer
sXML = "<menu xmlns='http://schemas.microsoft.com/office/2006/01/customui' >"
For I = 0 To UBound(VESteps)
With VESteps(I)
If InStr(LCase(.Type), LCase(sType)) > 0 Then
sXML = sXML & "<button id='btnStep" & Left(sType, 1) & I & "' label='" & .Menu & "' onAction='OnAction_" & sType & "' />"
End If
End With
Next I
sXML = sXML & "</menu>"
MakeMenuNCTF = sXML
End Function
Private Function MakeMenuTable() As String
Dim sXML As String
sXML = "<menu xmlns='http://schemas.microsoft.com/office/2006/01/customui' >"
sXML = sXML & "<button id='btnTCTT' label='Text Table' onAction='OnAction_Table' />"
sXML = sXML & "<button id='btnTATT' label='AER Table' onAction='OnAction_Table' />"
sXML = sXML & "</menu>"
MakeMenuTable = sXML
End Function
Private Function MakeMenuFigure() As String
Dim sXML As String
sXML = "<menu xmlns='http://schemas.microsoft.com/office/2006/01/customui' >"
sXML = sXML & "<menu id='mnuFC' label='Centered' >"
sXML = sXML & "<button id='btnFCWB' label='With Border' onAction='OnAction_Figure' />"
sXML = sXML & "<button id='btnFCWOB' label='Without Border' onAction='OnAction_Figure' />"
sXML = sXML & "</menu>"
sXML = sXML & "<menuSeparator id='mnuSepFC' />"
sXML = sXML & "<menu id='mnuFL' label='Left' >"
sXML = sXML & "<button id='btnFLWB' label='With Border' onAction='OnAction_Figure' />"
sXML = sXML & "<button id='btnFLWOB' label='Without Border' onAction='OnAction_Figure' />"
sXML = sXML & "</menu>"
sXML = sXML & "</menu>"
MakeMenuFigure = sXML
End Function
Private Function MakeMenuEquation() As String
Dim sXML As String
sXML = "<menu xmlns='http://schemas.microsoft.com/office/2006/01/customui' >"
sXML = sXML & "<menu id='mnuEC' label='Centered' >"
sXML = sXML & "<button id='btnECWB' label='With Border' onAction='OnAction_Equation' />"
sXML = sXML & "<button id='btnECWOB' label='Without Border' onAction='OnAction_Equation' />"
sXML = sXML & "</menu>"
sXML = sXML & "<menuSeparator id='mnuSepEC' />"
sXML = sXML & "<menu id='mnuEL' label='Left' >"
sXML = sXML & "<button id='btnELWB' label='With Border' onAction='OnAction_Equation' />"
sXML = sXML & "<button id='btnELWOB' label='Without Border' onAction='OnAction_Equation' />"
sXML = sXML & "</menu>"
sXML = sXML & "</menu>"
MakeMenuEquation = sXML
End Function
Private Function MakeMenuReset() As String
Dim sXML As String
sXML = "<menu xmlns='http://schemas.microsoft.com/office/2006/01/customui' >"
sXML = sXML & "<button id='ResetSections' label='Sections' onAction='OnAction_Reset' />"
sXML = sXML & "<button id='ResetSteps' label='Steps' onAction='OnAction_Reset' />"
sXML = sXML & "<button id='ResetNotes' label='Notes' onAction='OnAction_Reset' />"
sXML = sXML & "<button id='ResetCautions' label='Cautions' onAction='OnAction_Reset' />"
sXML = sXML & "<button id='ResetTables' label='Tables' onAction='OnAction_Reset' />"
sXML = sXML & "<button id='ResetFigures' label='Figures' onAction='OnAction_Reset' />"
sXML = sXML & "<button id='ResetEquations' label='Equations' onAction='OnAction_Reset' />"
sXML = sXML & "<button id='ResetIgnored' label='Ignored' onAction='OnAction_Reset' />"
sXML = sXML & "<menuSeparator id='mnuSepEC' />"
sXML = sXML & "<button id='ResetAll' label='All' onAction='OnAction_Reset' />"
sXML = sXML & "</menu>"
MakeMenuReset = sXML
End Function
Private Function MakeMenuCheckoff() As String
Dim sXML As String
Dim sName As String
Dim I As Integer
sXML = "<menu xmlns='http://schemas.microsoft.com/office/2006/01/customui' >"
For I = 0 To UBound(VECheckoffs)
With VECheckoffs(I)
If .Menu <> "" Then
sName = "CO_" & .FmtFile & "(" & .ID & ")"
sXML = sXML & "<menu id='mnuCO" & I & "' label='" & .Menu & "' >"
sXML = sXML & "<button id='btnMarkCO" & I & "' label='Mark As " & sName & "' onAction='OnAction_Checkoff' />"
sXML = sXML & "<button id='btnReplaceCO" & I & "' label='Find And Replace All' onAction='OnAction_Checkoff' />"
sXML = sXML & "</menu>"
End If
End With
Next I
sXML = sXML & "</menu>"
MakeMenuCheckoff = sXML
End Function
Public Sub OnChange(ByVal ctl As IRibbonControl, ByRef text As Object)
Dim I As Integer
Select Case ctl.Id
Case "cbLevel"
ThisLevel = text
Case "cbIdent"
ThisIdent = text
Case "cbSeparator"
ThisSeparator = text
Case "cbSetup"
ClearDocProperties
ThisSetup = text
DocPropertySave(App.ActiveDocument, "SetupFile", ThisSetup)
LoadSetup
ChangeSetup
ThisSection = VESections(0)
UpdateRibbon
Case "cbSection"
For I = 0 To UBound(VESections)
If VESections(I).name = text Then
ThisSection = VESections(I)
ThisSectionID = I
Exit For
End If
Next I
End Select
End Sub
Public Sub OnAction_Step(ByVal ctl As IRibbonControl)
Dim rng As Word.Range
Dim sID As String
Dim I As Integer
Dim iCount As Integer
sID = Replace(ctl.Id, "btnStep", "")
If IsNumeric(Left(sID, 1)) Then
ThisLevel = Left(sID, 1)
End If
sID = Mid(sID, 2)
'RemoveComments False
With App.Selection
If .Information(Word.WdInformation.wdInCommentPane) Then
.Comments(1).Scope.Select()
End If
rng = .Range
iCount = .Paragraphs.Count
For I = 1 To iCount
.Paragraphs(I).Range.Select()
.End = .End - 1
FlagStep(sID)
Next I
rng.Select()
End With
End Sub
Public Sub OnAction_SectionNew(ByVal ctl As IRibbonControl)
Dim sSecNum As String
'strip off common button text to reveal section number
sSecNum = Replace(ctl.Id, "btnSecNew", "")
If IsNumeric(sSecNum) Then
'RemoveComments
With App.Selection
If Len(App.Selection.Text) < 2 Then
.InsertParagraphBefore()
.Paragraphs(1).Range.Select()
.InsertBefore("SECTION")
.Font.Italic = True
End If
End With
ThisSection = VESections(CInt(sSecNum))
FlagSection ThisSection
End If
End Sub
Public Sub OnAction_SectionGoTo(ByVal ctl As IRibbonControl)
Dim sCmtIndex As String
'strip off common button text to reveal section number
sCmtIndex = Replace(ctl.Id, "btnSecGoTo", "")
If IsNumeric(sCmtIndex) Then
App.ActiveDocument.Comments(CInt(sCmtIndex)).Scope.Select()
End If
End Sub
Public Sub OnAction_SectionTitle(ByVal ctl As IRibbonControl)
Dim Cmt As Word.Comment
Dim rng As Word.Range
Dim sCmtIndex As String
Dim sOld As String
Dim sNew As String
'strip off common button text to reveal section number
sCmtIndex = Replace(ctl.Id, "btnSecTitle", "")
If IsNumeric(sCmtIndex) Then
Cmt = App.ActiveDocument.Comments(CInt(sCmtIndex))
With Cmt.Range
sOld = Replace(.Paragraphs(5).Range.Text, Chr(13), "")
If sOld = "" Then
sOld = Replace(App.Selection.Text, Chr(13), "")
End If
sNew = InputBox("Title", "Change Title", sOld)
If sNew <> "" Then
rng = .Paragraphs(5).Range
rng.End = rng.End - 1
rng.Text = sNew
Cmt.Scope.Select()
End If
End With
End If
Me.ribbon.Invalidate()
End Sub
Public Sub OnAction_Caution(ByVal ctl As IRibbonControl)
Dim sID As String
Dim I As Integer
I = Len(ctl.Id)
While I > 0 And IsNumeric(Mid(ctl.Id, I, 1))
sID = Mid(ctl.Id, I)
I = I - 1
End While
ThisIdent = "CAUTION"
FlagStep(sID)
End Sub
Public Sub OnAction_Note(ByVal ctl As IRibbonControl)
Dim sID As String
Dim I As Integer
I = Len(ctl.Id)
While I > 0 And IsNumeric(Mid(ctl.Id, I, 1))
sID = Mid(ctl.Id, I)
I = I - 1
End While
ThisIdent = "NOTE"
FlagStep(sID)
End Sub
Public Sub OnAction_Table(ByVal ctl As IRibbonControl)
Dim sID As String
Dim I As Integer
I = Len(ctl.Id)
While I > 0 And IsNumeric(Mid(ctl.Id, I, 1))
sID = Mid(ctl.Id, I)
I = I - 1
End While
FlagTable(sID)
End Sub
Public Sub OnAction_Figure(ByVal ctl As IRibbonControl)
Dim sID As String
Dim I As Integer
I = Len(ctl.Id)
While I > 0 And IsNumeric(Mid(ctl.Id, I, 1))
sID = Mid(ctl.Id, I)
I = I - 1
End While
FlagFigure(sID)
End Sub
Public Sub OnAction_Equation(ByVal ctl As IRibbonControl)
Dim sMsg As String
Select Case ctl.Id
Case "ECWB"
sMsg = "Centered With Border"
Case "ECWOB"
sMsg = "Centered Without Border"
Case "ELWB"
sMsg = "Left With Border"
Case "ELWOB"
sMsg = "Left Without Border"
End Select
'RemoveComments False
InsertComment("EQUATION", sMsg)
End Sub
Public Sub OnAction_Reset(ByVal ctl As IRibbonControl)
Dim rng As Word.Range
Dim I As Integer
rng = App.Selection.Range
App.ActiveDocument.Content.Select()
Select Case ctl.Id
Case "ResetSections"
RemoveComments(False, "SECTION")
Case "ResetSteps"
For I = 9 To 1 Step -1
RemoveComments(False, "STEP " & I)
Next I
Case "ResetNotes"
RemoveComments(False, "NOTE")
Case "ResetCautions"
RemoveComments(False, "CAUTION")
Case "ResetTables"
RemoveComments(False, "TABLE")
Case "ResetFigures"
RemoveComments(False, "FIGURE")
Case "ResetEquations"
RemoveComments(False, "EQUATION")
Case "ResetIgnored"
RemoveComments(False, "IGNORE")
Case "ResetAll"
RemoveComments(True)
End Select
rng.Select()
End Sub
Public Sub OnAction_Checkoff(ByVal ctl As IRibbonControl)
Dim rng As Word.Range
Dim Cmt As Word.Comment
Dim sID As String
Dim sFmtFile As String
Dim sTag As String
Dim I As Integer
Dim J As Integer
'ensure VECheckoffs have been loaded
On Error Resume Next
I = UBound(VECheckoffs)
If Err.Number <> 0 Then
GetCheckoffs(ThisSection.FmtFile)
Err.Clear()
End If
On Error GoTo 0
If ctl.Id Like "btnMark*" Then
sID = Replace(ctl.Id, "btnMarkCO", "")
sFmtFile = VECheckoffs(CInt(sID)).FmtFile
sTag = "CO_" & sFmtFile & "(" & sID & ")"
If App.Selection.Information(Word.WdInformation.wdInCommentPane) = True Then
Set Cmt = App.Selection.Comments(1)
AddCheckoff(Cmt, sTag)
Else
Set rng = App.Selection.Range
For I = 1 To rng.Paragraphs.Count
For J = rng.Paragraphs(I).Range.Comments.Count To 1 Step -1
Set Cmt = rng.Paragraphs(I).Range.Comments(J)
AddCheckoff(Cmt, sTag)
Next J
Next I
rng.Select()
End If
End If
End Sub
Public Sub OnGetText(ByVal ctl As IRibbonControl, ByRef text As Object)
Select Case ctl.Id
Case "cbLevel"
If ThisLevel = "" Then
ThisLevel = 1
End If
text = ThisLevel
Case "cbIdent"
If ThisIdent = "" Then
GetIdents
ThisIdent = Idents(0)
End If
text = ThisIdent
Case "cbSeparator"
If ThisSeparator = "" Then
GetSeparators
ThisSeparator = Separators(0)
End If
text = ThisSeparator
Case "cbSetup"
If ThisSetup = "" Then
ThisSetup = DocPropertyGet(App.ActiveDocument, "SetupFile")
If ThisSetup = "" Then
SetupFiles = GetSetupFiles()
ThisSetup = SetupFiles(0)
DocPropertySave(App.ActiveDocument, "SetupFile", ThisSetup)
End If
LoadSetup
ChangeSetup
ThisSection = VESections(0)
UpdateRibbon
End If
text = ThisSetup
Case "cbSection"
If ThisSection.name = "" Then
GetSections
ThisSection = VESections(0)
End If
text = ThisSection.name
End Select
End Sub
Public Sub OnGetItemID(ByVal ctl As IRibbonControl, ByRef Index As Integer, ByRef value)
Select Case ctl.Id
Case "cbLevel"
Case "cbIdent"
Case "cbSeparator"
Case "cbSetup"
Case "cbSection"
value = ThisSection.ID
End Select
End Sub
#End Region
#Region "Helpers"
Private Shared Function GetResourceText(ByVal resourceName As String) As String
Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()
Dim resourceNames() As String = asm.GetManifestResourceNames()
For i As Integer = 0 To resourceNames.Length - 1
If String.Compare(resourceName, resourceNames(i), StringComparison.OrdinalIgnoreCase) = 0 Then
Using resourceReader As IO.StreamReader = New IO.StreamReader(asm.GetManifestResourceStream(resourceNames(i)))
If resourceReader IsNot Nothing Then
Return resourceReader.ReadToEnd()
End If
End Using
End If
Next
Return Nothing
End Function
#End Region
End Class