View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Andibevan[_4_] Andibevan[_4_] is offline
external usenet poster
 
Posts: 103
Default Environment Variable

Thanks Bob - I didn't know about using GetEnvironmentVariable.

What does the function TrimNull do? I can't work it out.

Ta

Andi



"Bob Phillips" wrote in message
...
You are correct, you do need to use an API.

You should also note that Excel seems to load all variables at startup,

and
the Environ command retrieves the value from this memory store. So you

need
to use the GetEnvironmentVariable to read your new value.

This should demonstrate that

Option Explicit

Private Declare Function GetEnvironmentVariable Lib "kernel32" _
Alias "GetEnvironmentVariableA" _
(ByVal lpName As String, _
ByVal lpBuffer As String, _
ByVal nSize As Long) As Long

Private Declare Function SetEnvironmentVariable Lib "kernel32" _
Alias "SetEnvironmentVariableA" _
(ByVal lpName As String, _
ByVal lpValue As String) As Long

Sub xx()
SetEnvironmentVariable "Rob", "Nuzie!"
MsgBox Environ("Rob")
MsgBox GetEnvironmentVar("Rob")
End Sub

Function GetEnvironmentVar(Name As String) As String
GetEnvironmentVar = String(255, 0)
GetEnvironmentVariable Name, GetEnvironmentVar, Len(GetEnvironmentVar)
GetEnvironmentVar = TrimNull(GetEnvironmentVar)
End Function

Private Function TrimNull(item As String)
Dim iPos As Long
iPos = InStr(item, vbNullChar)
TrimNull = IIf(iPos 0, Left$(item, iPos - 1), item)
End Function


--
HTH

Bob Phillips

"Andibevan" wrote in message
...
Hi All,

Is there a way from within VBA to declare an environment variable?

Or do I have to declare the kernal32 function "SetEnvironmentVariable"?

Thanks

Andy