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 365 applications with VBA programming. Written in clear terms and understandable language, the book includes systematic tutorials and contains both intermediate and advanced content for experienced VB developers. Designed to be comprehensive, the book addresses not just one Office application, but the entire Office suite. Check out Mastering VBA for Microsoft Office 365 today!
If you have a macro that takes a long time to process a workbook, you might want to continue working in Excel while the ...
Discover MoreWhen creating macros, it is often necessary to change from one type of data to another. Here's how you can change from a ...
Discover MoreUsing macros to step through each cell in a selection is a common occurrence. What if that selected range is made up of ...
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