Sub GetDrawingAnnotations() Dim xlApp As Excel.Application Set xlApp = New Excel.Application Dim swApp As SldWorks.SldWorks Dim swDrawing As SldWorks.DrawingDoc Dim swView As View Dim swDispDim As SldWorks.DisplayDimension Dim swAnn As SldWorks.Annotation Dim swDimension As SldWorks.Dimension Dim DimTypeArr() As String Dim DrivenStateArr() As String Dim ArrowSideArr() As String Dim pi pi = 4 * Atn(1) Set swApp = Application.SldWorks Set swDrawing = swApp.ActiveDoc Set swView = swDrawing.GetFirstView ReDim DimTypeArr(0 To 13) DimTypeArr(0) = "Inconnu" DimTypeArr(1) = "Ordonnée" DimTypeArr(2) = "Linéaire" DimTypeArr(3) = "Angulaire" DimTypeArr(4) = "Longeur d'arc" DimTypeArr(5) = "Radiale" DimTypeArr(6) = "Diamètre" DimTypeArr(7) = "Horizontale Ordonnée" DimTypeArr(8) = "Verticale Ordonnée" DimTypeArr(9) = "Profondeur (Axe Z)" DimTypeArr(10) = "Chamfrein" DimTypeArr(11) = "Horizontale Linéaire" DimTypeArr(12) = "Verticale Linéaire" DimTypeArr(13) = "Scalaire" ReDim DrivenStateArr(0 To 2) DrivenStateArr(0) = "Inconnu" DrivenStateArr(1) = "Pilotée" DrivenStateArr(2) = "Pilotante" ReDim ArrowSideArr(0 To 3) ArrowSideArr(0) = "Toujours à l'intérieure" ArrowSideArr(1) = "Toujours à l'extérieure" ArrowSideArr(2) = "Positionnement intelligent" ArrowSideArr(3) = "Par défaut" Do While Not swView Is Nothing Debug.Print "Nom de la vue : " & swView.Name Set swDispDim = swView.GetFirstDisplayDimension5 Do While Not swDispDim Is Nothing Set swAnn = swDispDim.GetAnnotation Set swDimension = swDispDim.GetDimension Debug.Print "" Debug.Print "Nom de l'annotation : " & swAnn.GetName Debug.Print "Nom de la dimension : " & swDimension.Name Debug.Print "Nom complet (dimension) : " & swDimension.FullName Debug.Print "Type de la dimension : " & DimTypeArr(swDispDim.GetType) Debug.Print "État de la dimension : " & DrivenStateArr(swDimension.DrivenState) Debug.Print "Lecteure Seule : " & swDimension.ReadOnly If swDispDim.GetOverride Then If swDispDim.GetType = 3 Then Debug.Print "Valeur Affichée : " & swDispDim.GetOverrideValue * 180 / pi & Chr(176) Else Debug.Print "Valeur Affichée : " & swDispDim.GetOverrideValue * 1000 / 25.4 & """" & " (" & swDispDim.GetOverrideValue * 1000 & "mm)" End If Else If swDispDim.GetType = 3 Then Debug.Print "Valeur : " & swDimension.GetSystemValue2("") * 180 / pi & Chr(176) Else Debug.Print "Valeur : " & swDimension.GetSystemValue2("") * 1000 / 25.4 & """" & " (" & swDimension.GetSystemValue2("") * 1000 & "mm)" End If End If Debug.Print "" Debug.Print "Direction : " & ArrowSideArr(swDispDim.ArrowSide) Debug.Print "Texte : " & swDispDim.GetText(swDimensionTextAll) Debug.Print "Préfixe : " & swDispDim.GetText(swDimensionTextPrefix) Debug.Print "Suffixe : " & swDispDim.GetText(swDimensionTextSuffix) Debug.Print "Référence au dessus : " & swDispDim.GetText(swDimensionTextCalloutAbove) Debug.Print "Référence en dessous : " & swDispDim.GetText(swDimensionTextCalloutBelow) Set swDispDim = swDispDim.GetNext3 Loop Set swView = swView.GetNextView Loop End Sub