While designing classes, one of the most boring tasks is to create properties for member variables. Here is a macro (more about macros here) that helps with that.
Here is the code that creates the property:
Public Sub FMS_MakeProperty()
	   
	Dim edtrWin As 
	Window = Nothing
	    Dim prjItm
	As ProjectItem = 
	Nothing
	    Dim txtDoc
	As TextDocument = 
	Nothing
	    Dim cc 
	As CodeElement = Nothing
	    Dim cv 
	As CodeVariable = Nothing
	    Dim varName
	As String =
	String.Empty
	    Dim varType 
	As
	String = String.Empty
	    Dim linProp 
	As
	String = String.Empty
	   
	Try
	      ' get the 
	active editor
	      
	edtrWin = DTE.ActiveDocument.ActiveWindow
	     
	If edtrWin Is
	Nothing Then
	        DTE.StatusBar.Text = "No 
	text editor open."
	        Return
	      End 
	If
prjItm = edtrWin.ProjectItem
	     
	' this may happen if the document is 
	      ' not part 
	of the project
	      If 
	prjItm
	Is Nothing
	Then
	        DTE.StatusBar.Text = "Projectitem 
	is null !!"
	        Return
	      End 
	If
	
	     
	' get the textdocument associated with this
	      
	txtDoc 
	= prjItm.Document.Object("TextDocument")
	     
	
	
	' get the code element from the user location
	
	      cc = 
	prjItm.FileCodeModel.CodeElementFromPoint
         (txtDoc.Selection.AnchorPoint, 
	_ vsCMElement.vsCMElementVariable)
	     
	If cc Is
	Nothing Then
	        DTE.StatusBar.Text = 
	"Please position cursor on a member variable.."
	        Return
	      End 
	If 
cv = CType(cc, CodeVariable)
	      
	varName = cv.Name
      varType = cv.Type.AsFullName
	     
	If Not 
	DTE.UndoContext.IsOpen Then
	        DTE.UndoContext.Open("FMS Inc Make 
	property macro.")
	      End 
	If
	     
	If prjItm.FileCodeModel.Language = _
	       "{B5E9BD33-6D3E-4B5D-925E-8A43B79820B4}"
	Then
	        
	
	' language is VB
	
	        ' NOTE 
	: change this logic to comply to your standards
	
	        ' 
	make the property
	        linProp = "Property " + varName 
	+ "Property() As " + _
          
	varType + 
	System.Environment.NewLine
	        
	linProp = linProp + "Get" + System.Environment.NewLine
	        linProp = linProp + "Return " + 
	varName + System.Environment.NewLine
	        linProp = linProp + "End Get" + 
	System.Environment.NewLine
	        linProp = linProp + "Set" + 
	System.Environment.NewLine
	        linProp = linProp + varName + " = 
	Value" + System.Environment.NewLine
	        linProp = linProp + "End Set" + 
	System.Environment.NewLine
	        linProp = linProp + "End 
	Property"
	      
	ElseIf prjItm.FileCodeModel.Language = _
	     
	
	
	"{B5E9BD34-6D3E-4B5D-925E-8A43B79820B4}" Then
	        
	
	' language is C#
	
	        ' NOTE 
	: change this logic to comply to your standards
	       
	Const leftBracket 
	As String = "{"
	        Const 
	rightBracket
	As String = 
	"}"
	       
	' make the property
	        linProp = "public " + 
	varType + " " + varName + "Property" + _
	          
	System.Environment.NewLine
	        linProp = linProp + leftBracket + 
	System.Environment.NewLine
	        linProp = linProp + "get" + 
	System.Environment.NewLine
	        linProp = linProp + leftBracket + 
	System.Environment.NewLine
	        linProp = linProp + "return " + 
	varName + ";" + System.Environment.NewLine
	        linProp = linProp + rightBracket 
	+ System.Environment.NewLine
	        linProp = linProp + "set" + 
	System.Environment.NewLine
	        linProp = linProp + leftBracket + 
	System.Environment.NewLine
	        linProp = linProp + varName + " = 
	value;" + System.Environment.NewLine
	        linProp = linProp + rightBracket 
	+ System.Environment.NewLine
	        linProp = linProp + rightBracket 
	+ System.Environment.NewLine
	      Else
	        
	' Macro works for VB and C#. It is not applicable for other languages.
	        DTE.StatusBar.Text = "Not 
	applicable to this language."
	        DTE.StatusBar.Highlight(True)
	        Return
	     
	End If
	
	       
	txtDoc.Selection.EndOfLine()
       txtDoc.Selection.NewLine()
	      
	' store line number for later
	      Dim 
	firstPropertyLine
	As Integer = 
	txtDoc.Selection.ActivePoint.Line
	      
	' insert string
	      txtDoc.Selection.Insert(linProp)
	      
	' select the inserted property block to 
	auto-format 
	      
	txtDoc.Selection.MoveToLineAndOffset(firstPropertyLine, 1,
	True)
DTE.UndoContext.Close()
	     
	' format selected inserted block and keep selected
	      
	DTE.ExecuteCommand("Edit.FormatSelection")
	   
	Catch e As 
	System.Exception
	      DTE.StatusBar.Text = "Macro failed.."
	      DTE.StatusBar.Highlight(True)
	    End 
	Try
End Sub
To use this macro, just highlight the variable you want to turn in to a property ("foo" in this case) and run the macro.
	  ' VB
	  Dim
	foo
	As Boolean =
	False
	  // 
	C#
	  
	
	private
	bool
	foo =
	false;
Which becomes this code:
	  ' VB
	 
	Dim foo As
	Boolean = False
	 
	Property fooProperty()
	As System.Boolean
    Get
	
	 
	
	       Return 
	foo
  
	  End Get
	    Set(ByVal 
	Value As System.Boolean)
	        foo = Value
	    End 
	Set
	  End 
	Property
	   
	// C#
	  private bool foo =
	false;
	
	
	  public System.Boolean fooProperty
	  
	{
	    get
	    {
	      return foo;
	    }
	    set
	    {
	      foo = value;
	    }
	  }
Now this may not be the naming standard which you use for your projects, but that can be easily modified.
Thank you! Thank you! I just finished reading this document, which was part of a link in the recent Buzz newsletter. I have printed it for others to read, especially those skeptical on the powers of Access and its capabilities.
Darren D.
		
        	
        
        All Our Microsoft Access Products