Modal in the VBA sense means a window/form that opens and stays open preventing any other actions from being performed.  This is behavior is seen with windows throughout The Raiser's Edge, and is true for the cRatingForm object.

Public Sub TestProspectRatingForm()
    
    On Error GoTo eh '' error handler
    
    '' Load the constituent record
    Dim oConst As CRecord
    Set oConst = New CRecord
    oConst.Init RE7.SessionContext
    oConst.Load 280 '' Sample Data Hernandez
    
    '' Set prospect info
    Dim oPros As CProspect
    Set oPros = oConst.Prospect
    
    '' Set rating info
    Dim oRating As CRating
    If oPros.Ratings.Count > 0 Then
        Set oRating = oPros.Ratings.Item(1) '' Use the first rating but adjust as-needed
    Else
        Debug.Print "Must have at least one rating on record"
        Goto eh
    End If
    
    '' Init the form and set it's rating info
    Dim oForm As CRatingForm
    Set oForm = New CRatingForm
    oForm.Init RE7.SessionContext
    Set oForm.Rating = oRating

    oForm.ShowForm True ''Open form as Modal
    
    oForm.Closedown 
    oConst.Validate
    oConst.Save
    
eh: '' Label hit regardless if error present

    If Not Err.Number = 0 Then
        Debug.Print Err.Number & "_-_" & Err.Description
    End If
    
    ''Cleanup
    Set oForm = Nothing
    oConst.Closedown
    Set oConst = Nothing
    Set oPros = Nothing
    Set oRating = Nothing
End Sub
Note: The title of the form in the above example cannot be modified and is missing the name of the constituent.  A custom form can be used to work around this but, at this time, the API provides no way of overriding the way this form displays its title.

We provide programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes you are familiar with Microsoft Visual Basic and the tools used to create and debug procedures. Our Customer Support can help explain the functionality of a particular procedure, but we will not modify, or assist you with modifying, these examples to provide additional functionality. If you are interested in learning more about the VBA and API modules, contact your account manager.