![]() |
Capitalise
Hi
I have a great function in VBA which returns the network login name. I use this simply to add the user name to emails. Unfortunately the name is returned in lower case, which doesn't look as good as it could. Is there a way to ensure the name returned is correctly capitalised. Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX < 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "" End If End Function |
Capitalise
Richard,
Try this line fOSUserName = UCase(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Hi I have a great function in VBA which returns the network login name. I use this simply to add the user name to emails. Unfortunately the name is returned in lower case, which doesn't look as good as it could. Is there a way to ensure the name returned is correctly capitalised. Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX < 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "" End If End Function |
Capitalise
Mike
That gives me RICHARD rather than Richard, I should have given an example sorry. "Mike H" wrote: Richard, Try this line fOSUserName = UCase(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Hi I have a great function in VBA which returns the network login name. I use this simply to add the user name to emails. Unfortunately the name is returned in lower case, which doesn't look as good as it could. Is there a way to ensure the name returned is correctly capitalised. Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX < 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "" End If End Function |
Capitalise
Richard,
Try this fOSUserName = WorksheetFunction.Proper(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Mike That gives me RICHARD rather than Richard, I should have given an example sorry. "Mike H" wrote: Richard, Try this line fOSUserName = UCase(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Hi I have a great function in VBA which returns the network login name. I use this simply to add the user name to emails. Unfortunately the name is returned in lower case, which doesn't look as good as it could. Is there a way to ensure the name returned is correctly capitalised. Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX < 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "" End If End Function |
Capitalise
Mike
Thats it thanks. I find it infuriating that what should be so obvious takes me so long and then I have to ask dumb questions. Thanks again Richard "Mike H" wrote: Richard, Try this fOSUserName = WorksheetFunction.Proper(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Mike That gives me RICHARD rather than Richard, I should have given an example sorry. "Mike H" wrote: Richard, Try this line fOSUserName = UCase(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Hi I have a great function in VBA which returns the network login name. I use this simply to add the user name to emails. Unfortunately the name is returned in lower case, which doesn't look as good as it could. Is there a way to ensure the name returned is correctly capitalised. Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX < 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "" End If End Function |
Capitalise
Glad I could help
"Richard" wrote: Mike Thats it thanks. I find it infuriating that what should be so obvious takes me so long and then I have to ask dumb questions. Thanks again Richard "Mike H" wrote: Richard, Try this fOSUserName = WorksheetFunction.Proper(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Mike That gives me RICHARD rather than Richard, I should have given an example sorry. "Mike H" wrote: Richard, Try this line fOSUserName = UCase(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Hi I have a great function in VBA which returns the network login name. I use this simply to add the user name to emails. Unfortunately the name is returned in lower case, which doesn't look as good as it could. Is there a way to ensure the name returned is correctly capitalised. Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX < 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "" End If End Function |
Capitalise
One more...In vbscript use the String Conversion function .For example
=STRCONV("RICHARD",vbProperCase) If this post helps click Yes --------------- Jacob Skaria "Mike H" wrote: Glad I could help "Richard" wrote: Mike Thats it thanks. I find it infuriating that what should be so obvious takes me so long and then I have to ask dumb questions. Thanks again Richard "Mike H" wrote: Richard, Try this fOSUserName = WorksheetFunction.Proper(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Mike That gives me RICHARD rather than Richard, I should have given an example sorry. "Mike H" wrote: Richard, Try this line fOSUserName = UCase(Left$(strUserName, lngLen - 1)) Mike "Richard" wrote: Hi I have a great function in VBA which returns the network login name. I use this simply to add the user name to emails. Unfortunately the name is returned in lower case, which doesn't look as good as it could. Is there a way to ensure the name returned is correctly capitalised. Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If lngX < 0 Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = "" End If End Function |
All times are GMT +1. The time now is 09:58 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com