Ciao
♪ J'ai examiné votre macro, trouvé quelques erreurs, la principale était que les méthodes que vous utilisiez pour rappeler les feuilles font partie du document de table (drawingdoc) tandis que vous les rappelez dans le document générique (objet), en fait, je vous recommande lors de l'écriture d'une macro pour écraser les deux objets principaux de cette façon, donc vous activez également le menu des méthodes en appuyant sur le point:
dim échange comme objet devient
dim échange comme sldworks. Soldworks
'pour le tableaudim swdraw comme objet 'diventa
dim swdraw comme sldworks.drawingdoc
'pour la partiedim swpart comme objet 'diventa
Dim swpart comme sldworks. Partiedoc
'per l'assiemedim swasm comme objet 'diventa
dim swasm comme sldworks.assemblydoc
ad ogni modo ho riscritto tutto e ti ho inserito i commenti così capisci cosa sta facendo la macro nelle varie fasi.
dim échange comme sldworks. Soldworks
dim swdraw comme sldworks.drawingdoc
dim boolstatus en tant que booléen
dim longstatus aussi longtemps, longs avertissements
dim sheetcount aussi longtemps, i aussi longtemps
Dim swsheet comme sldworks. Feuille
Sous-main()
définir swapp = application. Soldworks
set swdraw = swapp.activedoc
' J'ai utilisé la feuille active en ce momentset swsheet = swdraw.getcurrentsheet
vsheetnamarr = swdraw.getsheetnames
' J'ai utilisé le nom de la feuille active en ce moment' J'en ai besoin à la fin du rapport après le cycle d'insertion des notes
'active la feuille de départ
dim nsheet en chaîne
nsheet = swsheet.getname
'ciclo i brumelipour chaque nom vsheet dans vsheetnamarr
bret = swdraw.activatesheet(vsheetname): debug.assert bret
dim mynote comme objet
dim myannotation comme objet
dim mytextformat comme objet
«J'insère la notedéfinir mynote = swdraw.insertnote("<font size="72pts" style="b">Bozza")
</font>
« Je définit les caractéristiques, l'emplacement, la couleur, etc.Si pas ma note n'est rien alors
mynote.lockposition = faux
mynote.angle = 0
boolstatus = mynote.setballoon(0, 0)
définir myannotation = mynote.getannotation()
si pas la myannotation n'est rien alors
longstatus = myannotation.setleader3(swleaderstyle_f.swno_leader, 0, vrai, faux, faux, faux)
boolstatus = myannotation.setposition(0,115, 0,07, 0)
définir mytextformat = swdraw.getuserpreferencetextformat(0)
mytextformat.italic = faux
mytextformat.underline = faux
mytextformat.strikeout = faux
mytextformat.bold = vrai
mytextformat.escapement = 0
mytextformat.linespacing = 0,001
mytextformat.charheightinpts = true
mytextformat.typefacename = "gothique du siècle"
mytextformat.widthfactor = 1
mytextformat.obliqueangle = 0
mytextformat.linelongueur = 0
mytextformat.vertical = faux
mytextformat.backwards = faux
mytextformat.upsidedown = faux
mytextformat.charspacingfactor = 1
' J'applique les caractéristiques à la noteboolstatus = myannotation.settextformat(0, false, mytextformat)
'deseleziono qualsiasi selezione attiva e aggiorno la grafica
swdraw.clearselection2 vrai
swdraw.windowredraw
fin si
fin si
suivant vsheetname
«Réactivez la feuille initiale, sinon elle reste sur la feuille utimobret = swdraw.activatesheet(nsheet)
fin sous