top of page
Writer's pictureJosh Stroschein

Excel 4 Macros – Get.Workspace Reference

Updated: Feb 11

With the recent resurgence of the use of Excel 4 macros in malicious excel documents, I’ve found myself scouring the internet looking for language references. One such function that was particularly difficult to find documentation for was Get.Workspace, which takes a integer value as an argument and returns information about the environment. Since it appears that it is all but impossible to find Excel 4 macro documentation from Microsoft, I thought I’d create a few posts in the hopes of the content getting indexed and thus easier to find. The source of this information came from this PDF, which used this forum. Both of these resources contain a much more comprehensive overview.


type_num

returns



1


Name of the environment in which Microsoft Excel is running, as text, followed by the environment’s version number

2


The version number of Microsoft Excel, as text (for example, “5.0”)

3


If fixed decimals are set, returns the number of decimals; otherwise, returns 0

4


If in R1C1 mode, returns TRUE; if in A1 mode, returns FALSE

5


If scroll bars are displayed, returns TRUE; otherwise, returns FALSE. See also GET.WINDOW(26) and GET.WINDOW(27)

6


If the status bar is displayed, returns TRUE; otherwise, returns FALSE

7


If the formula bar is displayed, returns TRUE; otherwise, returns FALSE

8


If remote DDE requests are enabled, returns TRUE; otherwise, returns FALSE

9


Returns the alternate menu key as text; if no alternate menu key is set, returns the #N/A error value

10


Number indicating special modes: 1 = Data Find


2 = Copy


Excel 4.0 Macro Functions Reference


3 = Cut


4 = Data Entry


5 = Unused


6 = Copy and Data Entry


7 = Cut and Data Entry


If no special mode is set, returns 0

11


X position of the Microsoft Excel workspace window, measured in points from the left edge of the screen to the left edge of the window. In Microsoft Excel for the Macintosh, always returns 0

12


Y position of the Microsoft Excel workspace window, measured in points from the top edge of the screen to the top edge of the window. In Microsoft Excel for the Macintosh, always returns 0

13


Usable workspace width, in points

14


Usable workspace height, in points

15


Number indicating maximized or minimized status of Microsoft Excel:


1 = Neither


2 = Minimized


3 = Maximized


Microsoft Excel for the Macintosh always returns 3

16


Amount of memory free (in kilobytes)

17


Total memory available to Microsoft Excel (in kilobytes)

18


If a math coprocessor is present, returns TRUE; otherwise, returns FALSE

19


If a mouse is present, returns TRUE; otherwise, returns FALSE. In Microsoft Excel for the Macintosh, always returns TRUE.

20


If a group is present in the workspace, returns a horizontal array of sheets in the group; otherwise returns the #N/A error value.

21


If the Standard toolbar is displayed, returns TRUE; otherwise, returns FALSE

22


DDE-application-specific error code

23


Full path of the default startup directory or folder

24


Full path of the alternate startup directory or folder; returns the #N/A error value if no alternate path has been specified

25


If Microsoft Excel is set for relative recording, returns TRUE; if set for absolute recording, returns FALSE

26


Name of user

27


Name of organisation

28


If Microsoft Excel menus are switched to by the transition menu or help key, returns 1; if Lotus 1-2-3 Help is switched to, returns 2

29


If transition navigation keys are enabled, returns TRUE

30


A nine-item horizontal array of global (default) print settings that can be set by the LINE.PRINT function:


Setup text


Left margin


Right margin


Top margin


Bottom margin


Page length


Logical value indicating whether to wait after printing each page (TRUE) or use continuous form feeding (FALSE)


Logical value indicating whether the printer has automatic line feeding (TRUE) or requires line feed characters (FALSE)


The number of the printer port

31


If a currently running macro is in single step mode, returns TRUE; otherwise, returns FALSE.

32


The current location of Microsoft Excel as a complete path

33


A horizontal array of the names in the New list, in the order they appear

34


A horizontal array of template files (with complete paths) in the New list, in the order they appear (returns the names of custom template files and the #N/A error value for built-in document types)

35


If a macro is paused, returns TRUE; FALSE otherwise

36


If the Allow Cell Drag And Drop check box is selected in the Edit tab of the Options dialog box that appears when you click the Options command on the Tools menu, returns TRUE; otherwise, returns FALSE

37


A 45-item horizontal array of the items related to country versions and settings. Use the following macro formula to return a specific item, where number is a number in the list below:


INDEX(GET.WORKSPACE(37), number)


These values apply to country codes:


1 = Number corresponding to the country version of Microsoft Excel.


2 = Number corresponding to the current country setting in the Microsoft Windows Control Panel or the country number as determined by your Apple system software



These values apply to number separators:


3 = Decimal separator


4 = Zero (or 1000) separator


5 = List separator



These values apply to R1C1-style references: 6 = Row character


7 = Column character


8 = Lowercase row character


9 = Lowercase column character


10 = Character used instead of the left bracket ([) 11 = Character used instead of the right bracket (])



These values apply to array characters:


12 = Character used instead of the left bracket ({)


13 = Character used instead of the right bracket (})


14 = Column separator


15 = Row separator


16 = Alternate array item separator to use if the current array separator is the same as the decimal separator



These values apply to format code symbols: 17 = Date separator


18 = Time separator


19 = Year symbol


20 = Month symbol


21 = Day symbol


22 = Hour symbol


23 = Minute symbol


24 = Second symbol


25 = Currency symbol


26 = “General” symbol



These values apply to format codes:


27 = Number of decimal digits to use in currency formats


28 = Number indicating the current format for negative currencies:


0 = ($currency) or (currency$)


1 = -$currency or -currency$


2 = $-currency or currency-$


3 = $currency- or currency$-


where currency is any number and the $ represents the current currency symbol.


29 = Number of decimal digits to use in noncurrency number formats


30 = Number of characters to use in month names


31 = Number of characters to use in weekday names 32 = Number indicating the date order:


0 = Month-Day-Year 1 = Day-Month-Year 2 = Year-Month-Day



These values apply to logical format values:


33 = TRUE if using 24-hour time; FALSE if using 12-hour time.


34 = TRUE if not displaying functions in English; otherwise, returns FALSE.


35 = TRUE if using the metric system; FALSE if using the English measurement system.


36 = TRUE if a space is added before the currency symbol; otherwise, returns FALSE.


37 = TRUE if currency symbol precedes currency values; FALSE if it follows currency values.


38 = TRUE if using minus sign for negative numbers; FALSE if using parentheses.


39 = TRUE if trailing zeros are displayed for zero currency values; otherwise, returns FALSE.


40 = TRUE if leading zeros are displayed for zero currency values; otherwise, returns FALSE.


41 = TRUE if leading zero is displayed in months (when months are displayed as numbers); otherwise, returns FALSE.


42 = TRUE if leading zero is shown in days (when days are displayed as numbers); otherwise, returns FALSE.


43 = TRUE if using four-digit years; FALSE if using two-digit years.


44 = TRUE if date order is month-day-year when displaying dates in long form; FALSE if date order is day-month-year.


45 = TRUE if leading zero is shown in the time; otherwise, returns FALSE

38


The number 0, 1, or 2 indicating the type of error-checking as set by the ERROR function. For more information, see ERROR

39


A reference in R1C1-text form to the currently defined error- handling macro (set by the ERROR function), or the #N/A error value if none is specified

40


If screen updating is turned on (set by the ECHO function), returns TRUE; otherwise, returns FALSE

41


A horizontal array of cell ranges, as R1C1-style text, that were previously selected with the Go To command from the Edit menu or the FORMULA.GOTO macro function. If the book has multiple sheets, or if the single sheet in the workbook is named differently than the workbook itself, returns names as [Book]Sheet

42


If your computer is capable of playing sounds, returns TRUE; otherwise, returns FALSE

43


If your computer is capable of recording sounds, returns TRUE; otherwise, returns FALSE

44


A three-column array of all currently registered procedures in dynamic link libraries (DLLs). The first column contains the names of the DLLs that contain the procedures (in Microsoft Excel for Windows) or the names of the files that contain the code resources (in Microsoft Excel for the Macintosh). The second column contains the names of the procedures in the DLLs (in Microsoft Excel for Windows) or code resources (in Microsoft Excel for the Macintosh). The third column contains text strings specifying the data types of the return values, and the number and data types of the arguments. For more information about DLLs and code resources and data types, see Using the CALL and REGISTER functions in Microsoft Excel Help

45


If Microsoft Windows for Pen Computing is running, returns TRUE; otherwise, returns FALSE

46


If the Move Selection After Enter check box is selected in the Edit tab of the Options dialog box, returns TRUE; otherwise, returns FALSE

47


Reserved


48


Path to the library subdirectory for Microsoft Excel, as text

49


MAPI session currently in use, returned as a string of hex digits encoding the mail session value

50


If the Full Screen mode is on, returns TRUE; otherwise, FALSE

51


If the formula bar is displayed in Full Screen mode, returns TRUE; otherwise, FALSE

52


If the status bar is displayed in Full Screen mode, returns TRUE; otherwise, FALSE

53


The name of the topmost custom dialog sheet currently running in a modal window, or #N/A if no dialog sheet is currently running

54


If the Edit Directly In Cell check box is selected on the Edit tab in the Options dialog box, returns TRUE; otherwise, returns FALSE

55


TRUE if the Alert Before Overwriting Cells check box in the Edit tab on Options dialog box is selected; otherwise, FALSE

56


Standard font name in the General tab in the Options dialog box, as text

57


Standard font size in the General tab in the Options dialog box, as a number

58


If the Recently Used File list check box in the General tab on the Options dialog box is selected, returns TRUE; otherwise, FALSE

59


If the Display Old Menus check box in the General tab on the Options dialog box is selected, returns TRUE; otherwise, FALSE

60


If the Tip Wizard is enabled, returns TRUE; otherwise, FALSE

61


Number of custom list entries listed in the Custom Lists tab of the Options dialog box

62


Returns information about available file converters

63


Returns the type of mail system in use by Excel:


0 = No mail transport detected


1 = MAPI based transport


2 = PowerTalk based transport (Macintosh only)

64


If the Ask To Update Automatic Links check box in the Edit tab of the Options dialog box is selected, returns TRUE; otherwise FALSE


65


If the Cut, Copy, And Sort Objects With Cells check box in the Edit tab on the Options dialog box is selected, returns TRUE; otherwise, FALSE

66


Default number of sheets in a new workbook, as a number, from the General tab on Options dialog box

67


Default file directory location, as text, from the General tab in the Options dialog box

68


If the Show ScreenTips On Toolbars check box in the Options tab in the Customize dialog box is selected, returns TRUE; otherwise, FALSE

69


If the Large Icons check box in the Options tab in the Customize dialog box is selected, returns TRUE; otherwise, FALSE

70


If the Prompt For Workbook Properties check box in the General tab on the Options dialog box is selected, returns TRUE; otherwise, FALSE

71


TRUE if Microsoft Excel is open for in-place object editing (OLE). If FALSE, it is opened normally

72


TRUE if the Color Toolbars check box is selected in the Toolbars dialog box. FALSE if the Color Toolbars check box is not GOAL.SEEK selected. This argument is for compatibility with Microsoft Excel version 5.0


10 views

Comments


Want to know when my latest content drops? Sign-up to receive email notications and access to other exclusive content!

bottom of page