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.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!
Need to gather some information about the drives on a system? It can be pretty easy to do using a macro, as shown in this ...
Discover MoreExcel allows you to easily paste graphics into a worksheet. Once added, you may want to quickly process the graphics by ...
Discover MoreWhen creating a workbook to be used by others, you may want any worksheets they add to the workbook to contain some ...
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