Here's a routine I developed to convert to scientific notation:
Sub Val2Sci(Value As Double, DecPlaces As Int) As String
    Dim bNeg As Boolean
    Dim dTemp As Double
    Dim i As Int
    Dim sTemp As String
   
    If Value < 0 Then
        Value = Value * -1
        bNeg = True
    End If
   
    If Value > 1 Then
        'divide by 10 until Value < 10; count # of times it was divided to get exponent
        i = 0
        Do Until Value < 10
            Value = Value / 10
            i = i + 1
        Loop
        sTemp = NumberFormat2(Value,1,DecPlaces,DecPlaces, False)
        If i < 10 Then
            sTemp = sTemp & "E+0" & i
        Else
            sTemp = sTemp & "E+" & i
        End If
    Else If Value < 1 Then
        'multiply by 10 until Value > 1; count # of times it was multiplied to get the 
        '    negative exponent
        i = 0
        Do Until Value > 1
            Value = Value * 10
            i = i + 1
        Loop
        sTemp = NumberFormat2(Value,1,DecPlaces,DecPlaces, False)
        If i < 10 Then
        sTemp = sTemp & "E" & "-0" & i
        Else
            sTemp = sTemp & "E" & "-" & i
        End If
    Else 'Value = 1; format with as many zeros as specifid by DecPlaces variable
        sTemp = NumberFormat2(Value,1,DecPlaces,DecPlaces,False) & "E+00"
    End If
   
    If bNeg Then
        'append "-" to beginning of string representation
        sTemp = "-" & sTemp
    End If
   
    Return sTemp
End Sub