PrintTempVars() will be part of my programmer's toolbox, the other routines aren't particularly useful in themselves, other than as demos. You can see by inspection that using TempVars is really simple, and you can use the TempVars Collection's methods directly in most situations.

Code:
Attribute VB_Name = "mdlTempVarsDemo"
Option Compare Database
Option Explicit

' module  mdlTempVarsDemo
'
' Demo Module for VBA syntax to add, remove or print a TempVar item
' including how to cycle through the TempVars collection looking for stuff
'
' There's nothing magical here, but it's all in one place
'
Sub AddTempVar(strVarName As String, objValue As Variant)
   If strVarName = "" Then
      Debug.Print "An empty string is invalid as a name for a [TempVars] variable."
      Exit Sub
   End If
  
   If Not IsNull([TempVars].Item(strVarName)) Then
       Debug.Print "The value of [TempVars].[" & strVarName & "] w a s  " & _
       [TempVars].Item(strVarName).Value
   End If

' the TempVars.Add method doesn't care if the TempVar is there already
   TempVars.Add strVarName, objValue
   Debug.Print "The value of [TempVars].[" & strVarName & "] is now " & _
               [TempVars].Item(strVarName).Value
  
End Sub
Sub RemoveTempVar(Optional strVarName As String = "")
   If strVarName = "" Then
      Debug.Print "Okay, I removed nothing for you."
      Exit Sub
   End If
  
   If Not IsNull([TempVars].Item(strVarName)) Then
       Debug.Print "The value of [TempVars].[" & strVarName & "] w a s  " & _
                    [TempVars].Item(strVarName).Value
       TempVars.Remove strVarName
       Debug.Print "But it's gone now."
       Exit Sub
   End If

   ' no such TempVar, do nothing
   Debug.Print "There was no such variable [TempVars].[" & strVarName & _
               "] to be removed. "
  
End Sub
Sub PrintTempVar(Optional strVarName As String = "")
    Dim intI As Integer
    
    ' if there is a strVarName passed, then we're looking for a single variable
    If strVarName <> "" Then
       If IsNull([TempVars].Item(strVarName)) Then
          Debug.Print "The value of [TempVars].[" & strVarName & "] has not been defined."
          Exit Sub
       Else
        ' for just the value, you can use this
        
          Debug.Print "The value of [TempVars].[" & strVarName & "] is " & _
                      [TempVars].Item(strVarName).Value
          
        '
        ' if you need the index for some reason, you can use this:
        '
        ' For intI = 0 To [TempVars].Count - 1
        '     If [TempVars].Item(intI).Name = strVarName Then
        '         Debug.Print "Index " & Format(intI, "000") & ": The value of [TempVars].[" & _
        '                  [TempVars].Item(intI).Name & "] is " & [TempVars].Item(intI).Value
        '     End If
        ' Next intI
          
          Exit Sub
       End If
    End If
    
    ' check for nothing in the TempVars Collection
    If [TempVars].Count < 1 Then
       Debug.Print "There are no TempVars to print at this time."
       Exit Sub
    End If
       
    ' we got either a null or an empty string, so we'll print everything
    Debug.Print " There are " & [TempVars].Count & " TempVars to be printed. "
    
    For intI = 0 To [TempVars].Count - 1
       Debug.Print "Index " & Format(intI, "000") & ": The value of [TempVars].[" & _
                   [TempVars].Item(intI).Name & "] is " & [TempVars].Item(intI).Value
    Next intI
End Sub
Notes about indexes - in the middle of PrintTempVars(), I included a commented-out demo of how to find out what the index of a particular TempVars.Item is, at the moment the code runs, although I haven't yet found a reason that anyone would need to know.

Please be aware that the index is not persistent. For instance, if [TempVars].[george] has an index of 4, and you delete the TempVars item that was at index 2, then [TempVars].[george] will have an index of 3. Hey, it's a collection, what did you expect?