Insert Notes with Background Mask Example (VBA)

This example shows how to insert Notes with a background Mask in a drawing document.

'--------------------------------------------------------------
' Preconditions:
' 1. Create a VBA macro in a software product in which VBA is
'    embedded.
' 2. Copy and paste this example into the Visual Basic IDE.
' 3. Add a reference to the DraftSight type library,
'    install_dir\bin\dsAutomation.dll.
' 4. Press F5.
'
' Postconditions:
' 1. Inserts two Notes with a blue background Mask in the drawing.
' 2. Zooms to fit the two Notes in the drawing.
' 3. Examine the drawing.
'----------------------------------------------------------------
Option Explicit
Sub main()
    Dim dsApp As DraftSight.Application
    Dim dsDoc As DraftSight.Document
    Dim dsModel As DraftSight.Model
    Dim dsSketchManager As DraftSight.SketchManager
    Dim dsNote As DraftSight.Note
    Dim x1, y1, z1, x2, y2, z2 As Double
    Dim strArray(0 To 1) As String    
    'Connect to DraftSight
    Set dsApp = GetObject(, "DraftSight.Application")    
    'Get active document
    Set dsDoc = dsApp.GetActiveDocument()
    If Not dsDoc Is Nothing Then        
        'Get model space
        Set dsModel = dsDoc.GetModel()        
        'Get Sketch Manager
        Set dsSketchManager = dsModel.GetSketchManager()        
        'Note parameters
        x1 = 10#
        y1 = 10#
        z1 = 0#
        x2 = 60#
        y2 = 20#
        z2 = 0#
        strArray(0) = "First Note's text line."
        strArray(1) = "Second Note's text line."     

        'Add a Note
        Set dsNote = dsSketchManager.InsertNote(x1, y1, z1, x2, y2, z2, strArray)        
        'Change height of Note text
        dsNote.TextHeight = 2        
        'Change Note to use blue background Mask
        dsNote.UseDrawingBackgroundColor = False
        dsNote.BackgroundMask = True
        dsNote.BackgroundBorderOffsetFactor = 4
        Dim dsColor As DraftSight.Color
        Set dsColor = dsNote.Color
        dsColor.SetNamedColor dsNamedColor_Blue
        dsNote.BackgroundFillColor = dsColor       
        'Zoom to fit the Note
        dsApp.Zoom dsZoomRange_Fit, Null, Null        
    Else        
        MsgBox "There are no open documents in DraftSight."        
    End If
End Sub