Macro To Toggle Transparency ON or OFF

Good day everyone,

 

I have a macro that toggles face transparency on and off. I know the right-click option exists, but it doesn’t allow me to record it, and I used transparency frequently, so I want to make it accessible easily. The macro works fine for making faces transparent, but when I try to revert them back to opaque, a new color appears instead of the original body color.

Does anyone know how to fix this so that the face returns to its original body color? Thanks in advance!

 

Option Explicit
Sub main()
   Dim swApp As SldWorks.SldWorks
   Dim swModel As ModelDoc2
   Dim swSelMgr As SelectionMgr
   Dim swFace As Face2
   Dim vMatProps As Variant
   Dim currentTransparency As Double
   
   Set swApp = Application.SldWorks
   Set swModel = swApp.ActiveDoc
   
   If swModel Is Nothing Then
       MsgBox "No document open."
       Exit Sub
   End If
   Set swSelMgr = swModel.SelectionManager
   If swSelMgr.GetSelectedObjectType3(1, -1) <> swSelectType_e.swSelFACES Then
       MsgBox "Please select a face."
       Exit Sub
   End If
   Set swFace = swSelMgr.GetSelectedObject6(1, -1)
   
   ' Get current material properties
   vMatProps = swFace.MaterialPropertyValues
   If IsEmpty(vMatProps) Then
       ' Default material properties if none set
       ReDim vMatProps(0 To 8)
       vMatProps(0) = 1# ' Red
       vMatProps(1) = 1# ' Green
       vMatProps(2) = 1# ' Blue
       vMatProps(3) = 0# ' Ambient
       vMatProps(4) = 1# ' Diffuse
       vMatProps(5) = 0# ' Specular
       vMatProps(6) = 0# ' Shininess
       vMatProps(7) = 0# ' Transparency (0 = opaque)
       vMatProps(8) = 0# ' Emission
   End If
   
   ' Get current transparency value
   currentTransparency = vMatProps(7)
   
   ' Toggle transparency (if 0, make it transparent, if > 0, make it opaque)
   If currentTransparency = 0 Then
       vMatProps(7) = 0.7 ' Set transparency to 70% (adjust as needed)
   Else
       vMatProps(7) = 0 ' Set transparency to 0 (fully opaque)
   End If
   
   ' Apply the updated material properties
   swFace.MaterialPropertyValues = vMatProps
   
   swModel.GraphicsRedraw2
End Sub