AnsweredAssumed Answered

macro to change drawing title and drawing sheets

Question asked by S. P. on Apr 6, 2016
Latest reply on Apr 11, 2016 by S. P.

Hey guys, this is my first time using forums and macros. I was looking at how to switch multiple sheet names and adjust the title in the sheet format. I got the macro to work for the sheets but I can't get the macro for the title. I want to switch whatever text is in the title to "ABC 10 x i" where i changes on each drawing sheet. The sheet follows the same concept where it is just the latter part "10 x i" and i got that to work using:



Sub main()

Dim swApp                   As Object

Dim swSheet                 As SldWorks.Sheet

Dim swDraw                  As SldWorks.DrawingDoc

Dim vSheetNames             As Variant

Dim i                       As Long


Set swApp = Application.SldWorks

Set swDraw = swApp.ActiveDoc

Set swSheet = swDraw.GetCurrentSheet

vSheetNames = swDraw.GetSheetNames

    For i = 0 To UBound(vSheetNames)

       swDraw.ActivateSheet (vSheetNames(i))

       Set swSheet = swDraw.GetCurrentSheet

       swSheet.SetName "10 X " & (0 + i * 5)

    Next i

    swDraw.ActivateSheet (vSheetNames(0))

    MsgBox ("Complete")

End Sub


This is not my code. I just edited it on a forum I found here. Now I want to use that same for loop configuration and change the title block for each drawing sheet except I'm having trouble getting there. I can understand the coding a little bit but I'm new to these SW classes (or commands), so I don't know how to recall specifically, the title block.


I was using this code below except I don't want to change other stuff in the sheet format, just the title. If it's easier, I have the description for the part already entered in the property configuration manager and this is exactly what I want in the title. So it would be a string in front of the part description. Sorry I should have clarified this earlier but each drawing sheet is a different part configuration so I would like "ABC (part description)" on each drawing sheet title. I'm going to be away from the desk so I may not respond till 3/4 hours later but I would greatly appreciate any help.

' Preconditions: SolidWorks document is open and has a note
'            containing the text string "abc".
' Postconditions: The text string "abc" is replaced with
'             the text string "def".
Option Explicit
Dim swApp   As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw  As SldWorks.DrawingDoc
Dim swView  As SldWorks.View
Dim swNote  As SldWorks.Note
Dim strNoteText As String
Const strReplaceTextAs String = "abc"
Const strNewText    As String = "def"
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swDraw = swModel
    Set swView = swDraw.GetFirstView
    Set swNote = swView.GetFirstNote
    While Not swNote Is Nothing
        strNoteText = swNote.GetText
        strNoteText = Replace(strNoteText, strReplaceText, strNewText, 1, -1, vbTextCompare)
        swNote.SetText strNoteText
        Set swNote = swNote.GetNext
End Sub