Written by Allen Wyatt (last updated September 19, 2020)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and 2021
Walter has a macro that he would like to run on different computers. The macro accesses a file whose name is the same on the different computers but the path to that file may be different. He wonders how he can, within the macro, identify the computer where the macro is running as well as the user running the macro so that the running macro can select the correct path to the file.
Perhaps the easiest way to discover this information is to use the Environ function, in VBA, to return environmental information from the operating system. Consider, for example, the following two lines:
sComputer = Environ("ComputerName") sUser = Environ("UserName")
After running these two code lines, sComputer will contain the name of the computer system (as defined within Windows) and sUser the name of the user logged into the system. Both returned values are strings. With the information in hand, you could compare what is returned in order to set other variables based on the results.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (13227) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and 2021.
Best-Selling VBA Tutorial for Beginners Take your Excel knowledge to the next level. With a little background in VBA programming, you can go well beyond basic spreadsheets and functions. Use macros to reduce errors, save time, and integrate with other Microsoft applications. Fully updated for the latest version of Office 365. Check out Microsoft 365 Excel VBA Programming For Dummies today!
You can run a Personal.xlsb macro from within your Workbook_Open code, but you may get an error if you don't make sure ...
Discover MoreNeed to get rid of extraneous spaces before or after the text in a string? VBA provides three different functions you can ...
Discover MoreWorkbooks can contain macros, or not. It is entirely up to you whether they do or not, but at some future time you might ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2022-12-08 10:43:27
J. Woolley
My Excel Toolbox's NameOf function can return the value of an environment variable. Here are three example cell formulas:
=NameOf("ComputerName")
=NameOf("UserName")
=NameOf("UserProfile")
The following cell formula returns Excel's Application.UserName:
=NameOf("User")
NameOf is described in the following two articles:
https://excelribbon.tips.net/T007850#comment-form-hd (2022-04-06)
https://wellsr.com/vba/2019/excel/vba-udf-to-enhance-excel-cell-and-info-functions/
See https://sites.google.com/view/MyExcelToolbox
2022-12-07 15:59:27
J. Woolley
My Excel Toolbox includes the following dynamic array functions related to Windows environment variables:
=ListEnvironVariables([SkipHeader]) -- returns all environment variables and their values in 2 columns and N rows including header row (optional).
=ListEnvironPath() -- returns items extracted from environment variable PATH in 1 row and N columns.
=ListEnvironPathExt() -- returns items extracted from environment variable PATHEXT in 1 row and N columns.
My Excel Toolbox's SpillArray function simulates a dynamic array in older versions of Excel:
=SpillArray(ListEnviron...())
See https://sites.google.com/view/MyExcelToolbox
2020-09-21 07:22:43
Alex B
If the path is going to be different for each user I would probably start with Environ(“UserProfile”)
Returns something along the lines of C:\Users
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2025 Sharon Parq Associates, Inc.
Comments