(0, 1) // Copyright ⌐ 1991-1993 Microsoft Corporation
(0, 2)
(0, 3)
(0, 4) Menus
(0, 5)
(0, 6)
(0, 7)
(0, 8)
(0, 9)
(0, 10) Globals
(0, 11) Globals
(0, 12) // These are the tables that map a display to a pronounce format.
(0, 13) Hidden_Lookup
(0, 14) m-d-yy
(0, 15) Hidden_Match
(0, 16) m/d/yy
(0, 17) Lookup_Table
(0, 18)
(0, 19) Match_Table
(0, 20)
(0, 21) Intl.Globals
(0, 23) // This list of variables is quite extensive. The reason that it is needed is that
(1, 0) greeting
(1, 1) greeting
(1, 2)
(1, 3)
(1, 4)
(1, 5)
(1, 6)
(1, 7)
(1, 8)
(1, 9)
(1, 10)
(1, 11)
(1, 12) // The cell addresses are fixed w/in the DLL code.
(1, 14) m-yy
(1, 16) m/yy
(1, 18)
(1, 21) Intl.ExcelCountry
(1, 23) // double quotes needed to be eliminated since Excel does not
(2, 0)
(2, 1)
(2, 2) Menu.RawProof
(2, 3)
(2, 4)
(2, 5)
(2, 6)
(2, 7) xlrdr.hlpxlrdr.hlp!3200
(2, 8)
(2, 9)
(2, 10) tts.MenuSet
(2, 11)
(2, 12) // Any change to Lookup_Table or Match_Table's addresses
(2, 14) mmm/yy
(2, 16) mmmm/yy
(2, 18)
(2, 21) Intl.WindowsCountry
(2, 23) // localize within quotes. International macro sheets could not be used
(3, 0) g.BoardInstalled
(3, 1)
(3, 2) Menu.RawOnEnter
(3, 3)
(3, 4) ProofOnEntrySwap
(3, 5)
(3, 6)
(3, 7) xlrdr.hlpxlrdr.hlp!3410
(3, 8)
(3, 9)
(3, 10) tts.ExecSkeleton
(3, 11)
(3, 12) // must also be changed in the DLL source code.
(3, 14) mmm/d/yyyy
(3, 16) mmmm/d/yyyy
(3, 18)
(3, 21) Intl.DecimalSep
(3, 23) // because currency formatting information is lost (I.e. the currency type) if the language is not English.
(4, 0) g.IniDir
(4, 1)
(4, 3) -
(4, 4)
(4, 5)
(4, 6)
(4, 7)
(4, 8)
(4, 9)
(4, 10) tts.EntryChecked
(4, 11)
(4, 12) Lookup table for Display as/Pronounce as feature
(4, 14) mmm-d-yyyy
(4, 16) mmmm/d/yyyy
(4, 18)
(4, 21) Intl.1000Sep
(4, 23) // In addition, several variables need to contain variables that are language specific, and these must be communicated to the underlying xlrdr.dll (delimiters, RUN, SELECT).
(5, 0)
(5, 1)
(5, 2) Menu.RawRange
(5, 3)
(5, 4) ProofRange
(5, 5)
(5, 6)
(5, 7) xlrdr.hlpxlrdr.hlp!3420
(5, 8)
(5, 9)
(5, 10) tts.WriteIniDir
(5, 11)
(5, 12)
(5, 14) mmm/d/yy
(5, 16) mmmm/d/yy
(5, 18)
(5, 21) Intl.ListSep
(5, 23) // Also, xlrdr.dll needs to get the localized proof menus.
(6, 0)
(6, 1) // Disable cancelling of this macro.
(6, 2) Menu.RawStop
(6, 3)
(6, 4) Pause
(6, 5)
(6, 6)
(6, 7) xlrdr.hlpxlrdr.hlp!3420
(6, 8)
(6, 9)
(6, 10) tts.XlrdrDir
(6, 11)
(6, 12)
(6, 14) mmm-d-yy
(6, 16) mmmm/d/yy
(6, 18)
(6, 21) Intl.RowChar
(7, 0)
(7, 2) Menu.RawResume
(7, 3)
(7, 4) ResumeRange
(7, 5)
(7, 6)
(7, 7) xlrdr.hlpxlrdr.hlp!3430
(7, 8)
(7, 9)
(7, 10) tts.VerAbove3
(7, 11)
(7, 12)
(7, 14) jj-mmm-aa
(7, 16) "_FHACK"jj-mmm-aa
(7, 18)
(7, 21) Intl.ColChar
(8, 0)
(8, 1)
(8, 3) -
(8, 4)
(8, 5)
(8, 6)
(8, 7)
(8, 8)
(8, 9)
(8, 10) tts.HelpFileName
(8, 11)
(8, 12)
(8, 14) jj-mmm
(8, 16) "_FHACK"jj-mmm
(8, 18)
(8, 21) Intl.rowChar
(9, 0)
(9, 1) // Retrieve the name of executeable then create a skeleton command line.
(9, 2) Menu.RawVolume
(9, 3)
(9, 4) SetVolume
(9, 5)
(9, 6)
(9, 7) xlrdr.hlpxlrdr.hlp!3440
(9, 8)
(9, 9)
(9, 10) tts.HelpFileDir
(9, 11)
(9, 12)
(9, 14) j-mmm-aa
(9, 16) "_FHACK"j-mmm-aa
(9, 18)
(9, 21) Intl.colChar
(10, 0)
(10, 2)
(10, 3) -
(10, 4)
(10, 5)
(10, 6)
(10, 7)
(10, 8)
(10, 9)
(10, 10) tts.WinDir
(10, 11)
(10, 12)
(10, 14) j-mmm
(10, 16) "_FHACK"j-mmm
(10, 18)
(10, 21) Intl.LBracketChar
(11, 0)
(11, 1)
(11, 2) Menu.RawOptions
(11, 3)
(11, 4) TTSOptions
(11, 5)
(11, 6)
(11, 7) xlrdr.hlpxlrdr.hlp!3450
(11, 8)
(11, 9)
(11, 10) tts.IniDir
(11, 11)
(11, 12)
(11, 14) j.mmm.aa
(11, 16) "_FHACK"j.mmm.aa
(11, 18)
(11, 21) Intl.RBracketChar
(12, 0)
(12, 2)
(12, 3)
(12, 4)
(12, 5)
(12, 6)
(12, 7)
(12, 8)
(12, 9)
(12, 10)
(12, 11)
(12, 12)
(12, 14) j.mmm
(12, 16) "_FHACK"j.mmm
(12, 18)
(12, 21) Intl.LBraceChar
(13, 0)
(13, 1)
(13, 2)
(13, 3)
(13, 4)
(13, 5)
(13, 6)
(13, 7)
(13, 8)
(13, 9)
(13, 10) tts.DllsLoaded
(13, 11)
(13, 12)
(13, 18)
(13, 21) Intl.RBraceChar
(14, 0)
(14, 2)
(14, 3)
(14, 4)
(14, 5)
(14, 6)
(14, 7)
(14, 8)
(14, 9)
(14, 10)
(14, 11)
(14, 12)
(14, 13)
(14, 18)
(14, 21) Intl.ColSep
(15, 0)
(15, 2)
(15, 9)
(15, 10) tts.XlrdrName
(15, 11)
(15, 12)
(15, 13)
(15, 18)
(15, 19)
(15, 21) Intl.RowSep
(16, 0)
(16, 2)
(16, 10) tts.IniFileName
(16, 11) xlrdr.ini
(16, 12)
(16, 13)
(16, 18)
(16, 19)
(16, 21) Intl.ArraySep
(17, 0)
(17, 2)
(17, 10) tts.AltIniFileName
(17, 11) sndsys.ini
(17, 12)
(17, 13)
(17, 18)
(17, 19)
(17, 21) Intl.DateSep
(18, 0)
(18, 2)
(18, 10) tts.XlrdrRegistry
(18, 11)
(18, 12)
(18, 13)
(18, 18)
(18, 21) Intl.TimeSep
(19, 0)
(19, 2)
(19, 10) tts.DefExeName
(19, 11) xlrdr.dll
(19, 12)
(19, 13)
(19, 18)
(19, 21) Intl.YearDelim
(20, 0)
(20, 2)
(20, 10) tts.Volume
(20, 11) audcntrl.exe
(20, 13)
(20, 18)
(20, 21) Intl.MonthDelim
(21, 0)
(21, 2)
(21, 9)
(21, 10)
(21, 11)
(21, 13)
(21, 18)
(21, 21) Intl.DayDelim
(22, 0)
(22, 1)
(22, 2)
(22, 10) tts.MoveOnEntry
(22, 11) 0
(22, 13)
(22, 18)
(23, 0)
(23, 2)
(23, 10)
(23, 11)
(23, 13)
(23, 18)
(24, 0)
(24, 1)
(24, 2)
(24, 10)
(24, 11) // the next three are for the add-in manager
(24, 13)
(24, 18)
(25, 0)
(25, 1) // Pass the following params, separated by a tilda
(25, 2)
(25, 10) __DemandLoad
(25, 11) FALSE
(25, 18)
(25, 21) Intl.Currency
(26, 0)
(26, 1) // Ini file name
(26, 2)
(26, 10) __ReadOnly
(26, 11) FALSE
(26, 18)
(26, 21) Intl.General
(27, 0)
(27, 1) // Address of cell which we call to place the formats from the dll into
(27, 2)
(27, 10) __LongName
(27, 11) ProofReader for Excel
(27, 18)
(27, 21) Intl.CurDecCount
(28, 0)
(28, 1) // the format table here in the macro sheet.
(28, 2)
(28, 10)
(28, 11)
(28, 18)
(28, 21) Intl.NegCurFormatType
(29, 0)
(29, 1) // Address of cell which we call when proof range ends.
(29, 2)
(30, 0)
(30, 1) // Whether or not remote requests is turned on
(30, 2)
(30, 10)
(31, 0)
(31, 1)
(31, 2)
(31, 10)
(32, 0)
(32, 1) // Note: These must be the last two parameters.
(32, 2)
(32, 10)
(33, 0)
(33, 1)
(33, 2)
(33, 10)
(34, 0)
(34, 1) // Macro sheet name
(34, 2)
(34, 10)
(35, 0)
(35, 1) // Address of cell which we will use for advise loop and run the mapping
(35, 10)
(36, 0)
(36, 1) // macro in R1C1 format.
(36, 10)
(36, 21) Intl.CurSymSpace
(37, 0)
(37, 2)
(37, 10)
(37, 21) Intl.CurSymInFront
(38, 0)
(38, 1)
(38, 2)
(38, 10)
(38, 21) Intl.MinusForNegCur
(39, 0)
(39, 1) // If board isn't installed, exit now.
(39, 2)
(39, 10)
(39, 21) Intl.TrailingCur0
(40, 0)
(40, 2)
(40, 10)
(40, 21) Intl.LeadingCur0
(41, 0)
(41, 10)
(42, 0)
(42, 10)
(43, 0)
(43, 2)
(43, 10)
(44, 0)
(44, 1)
(44, 2)
(44, 10)
(45, 0)
(45, 2)
(45, 10)
(46, 0)
(46, 2)
(46, 10)
(47, 0)
(47, 2)
(47, 10)
(48, 0)
(48, 2)
(48, 10)
(48, 19)
(48, 20)
(49, 0)
(49, 2)
(49, 10)
(49, 19)
(49, 20)
(49, 21) // Other international settings
(50, 0)
(50, 2)
(50, 10)
(50, 19)
(50, 20)
(50, 21) Intl.DirDelim
(50, 22) \
(51, 0)
(51, 10)
(51, 21) Intl.SameDir
(51, 22) .
(52, 0)
(52, 10)
(52, 21) Intl.Equal
(52, 22) =
(53, 0) Auto_Close_TTS
(53, 1) Auto_Close_TTS
(53, 2)
(53, 10)
(53, 21) Intl.DLLDelimTilde
(53, 22) ~
(54, 0)
(54, 1)
(54, 10)
(54, 21) Intl.DLLDelimPercent
(54, 22) %
(55, 0)
(55, 10)
(55, 21) Intl.DLLDelimR
(55, 22) R
(56, 0)
(56, 10)
(56, 21) Intl.DLLDelimC
(56, 22) C
(57, 0)
(57, 10)
(57, 21) Intl.Space
(57, 22)
(58, 0)
(58, 10)
(58, 21) Intl.Comma
(58, 22) ,
(59, 0)
(59, 1) // If the directory path for the executeable has changed, save it in the ini file.
(59, 2)
(59, 10)
(59, 21) Intl.Quote
(59, 22) "
(60, 0)
(60, 2)
(60, 10)
(60, 21) Intl.SheetSep
(60, 22) !
(61, 0)
(61, 2)
(61, 10)
(61, 14)
(61, 21) Intl.BracketLeft
(61, 22) [
(62, 0)
(62, 2)
(62, 10)
(62, 21) Intl.BracketRight
(62, 22) ]
(63, 0)
(63, 2)
(63, 10)
(64, 2)
(64, 21) Intl.ParenLeft
(64, 22) (
(65, 2)
(65, 21) Intl.ParenRight
(65, 22) )
(66, 0) tts.Init
(66, 1) tts.Init()
(66, 2)
(66, 10)
(66, 21) Intl.Ampersand
(66, 22) &
(67, 0)
(67, 1)
(67, 10)
(67, 21) Intl.Number
(67, 22) #
(68, 0)
(68, 10)
(68, 21) Intl.0
(68, 22) 0
(69, 0)
(69, 2)
(69, 10)
(69, 21) Intl.Dollar
(69, 22) $
(70, 0)
(70, 2)
(70, 10)
(70, 21) Intl.Sem
(70, 22) ;
(71, 0)
(71, 2)
(71, 10)
(71, 21) Intl.ParenWidth
(71, 22) _)
(72, 2)
(72, 10)
(72, 21) Intl.Minus
(72, 22) -
(73, 2)
(73, 10)
(73, 21) Intl.Empty
(74, 0) ParseCell
(74, 1) ParseCell
(74, 2)
(74, 10)
(74, 21) // Hardcoded strings
(75, 0)
(75, 1)
(75, 2)
(75, 10)
(75, 21) String.empty
(75, 23) // Directives to xlrdr.dll
(76, 0)
(76, 1) // Disable cancelling of this macro.
(76, 2)
(76, 10)
(76, 21) String._options
(76, 22) _options
(77, 0)
(77, 2)
(77, 10)
(77, 21) String._pause
(77, 22) _pause
(78, 0)
(78, 1)
(78, 2)
(78, 10)
(78, 21) String._param
(78, 22) _param
(79, 0)
(79, 1) // If invalid sheet, return
(79, 2)
(79, 10)
(79, 21) String._mapping
(79, 22) _mapping
(80, 0)
(80, 10)
(80, 21) String._numfmt
(80, 22) _numfmt
(81, 0)
(81, 1)
(81, 10)
(81, 21) String._init
(81, 22) _init
(82, 0)
(82, 2)
(82, 10)
(82, 21) String._exit
(82, 22) _exit
(83, 0)
(83, 1) // Checking for objects
(83, 2)
(83, 10)
(83, 21) String._range
(83, 22) _range
(84, 0)
(84, 2)
(84, 10)
(84, 21) String._setdelims
(84, 22) _setdelims
(85, 0)
(85, 1) // Get current list separator and reset tts.ExecSkeleton. This
(85, 10)
(85, 21) String._setselect
(85, 22) _setselect
(86, 0)
(86, 1) // is in case the user has switched countries after this macro was loaded.
(96, 23) // default return value if xlrdr.dll location not found
(97, 0)
(97, 1) // If its a date, then use our remappe date format. Else use our
(97, 2)
(97, 10)
(97, 21) String.not_found
(97, 22) not_found
(97, 23) // used in finding xlrdr.dll
(98, 0)
(98, 1) // original remapped format.
(98, 2)
(98, 10)
(98, 21) String.location
(98, 22) location
(98, 23) // used in finding xlrdr.dll
(99, 0)
(99, 2)
(99, 21) String.locationBr
(99, 22) [location]
(99, 23) // used in finding xlrdr.dll
(100, 0)
(100, 2)
(100, 21) String.dir
(100, 22) dir
(100, 23) // a sting
(101, 0)
(101, 2)
(101, 21) String.FALSE
(101, 22) FALSE
(101, 23) // a sting
(102, 0)
(102, 2)
(102, 15)
(102, 21) String.TRUE
(102, 22) TRUE
(102, 23) // identifies a blank cell to xlrdr.dll
(103, 0)
(103, 2)
(103, 21) String.BlankCell
(103, 22) _NA
(103, 23) // General format; probably obsolete
(104, 0)
(104, 1)
(104, 2)
(104, 21) String.General
(104, 22) General
(104, 23) // Used for formatting dates internally
(105, 0)
(105, 2)
(105, 21) String.Month
(105, 22) _MONTH
(105, 23) // Used for formatting dates internally
(106, 0)
(106, 2)
(106, 21) String.Day
(106, 22) _DAY
(106, 23) // Used for formatting dates internally
(107, 0)
(107, 1)
(107, 2)
(107, 21) String.Mon
(107, 22) _MON
(107, 23) // Used for formatting dates internally
(108, 0)
(108, 1)
(108, 2)
(108, 21) String.Milenium
(108, 22) _M
(108, 23) // Used for formatting dates internally
(109, 0) SetMen
(109, 1) SetMen
(109, 2)
(109, 21) String.Century
(109, 22) _C
(109, 23) // Used for formatting dates internally
(110, 0) sm.HelpFileNum
(110, 1)
(110, 2)
(110, 21) String.Year
(110, 22) _Y
(110, 23) // Used for formatting dates internally
(111, 0) sm.VolumeFileNum
(111, 1)
(111, 2)
(111, 21) String.CenturyTurn
(111, 22) _YC
(112, 0)
(112, 1)
(112, 2)
(112, 21)
(113, 0)
(113, 2)
(114, 0)
(114, 2)
(114, 21) // Arguments
(115, 0)
(115, 2)
(115, 21) ArgType._FC
(115, 22) >FC
(116, 0)
(116, 2)
(116, 21) ArgType._FI
(116, 22) >FI
(117, 0)
(117, 2)
(117, 21) ArgType.ICCCC
(117, 22) ICCCC
(118, 0)
(118, 2)
(118, 21) ArgType.4CCCFIC
(118, 22) 4CCCFIC
(119, 0)
(119, 2)
(120, 0)
(120, 2)
(120, 21) // Functions
(121, 0)
(121, 2)
(121, 21) Function.kernel
(121, 22) kernel
(122, 0)
(122, 2)
(122, 21) Function.WPPS
(122, 22) WritePrivateProfileString
(123, 0)
(123, 2)
(123, 21) Function.GPPS
(123, 22) GetPrivateProfileString
(124, 0)
(124, 2)
(124, 21) Function.GWD
(124, 22) GetWindowsDirectory
(125, 0)
(125, 2)
(125, 21) Function.Rdr
(125, 22) Rdr
(126, 0)
(126, 2)
(126, 21) Function.WSS
(126, 22) WindowsSoundSystem
(127, 0)
(127, 2)
(127, 22) // Don't touch!
(127, 23) // these are strings put here using Excel 3.0
(128, 0)
(128, 2)
(128, 21) Function.EnableOnEntry
(128, 22) =ON.ENTRY(,REFTEXT(ParseCell))
(129, 0)
(129, 2)
(129, 22) // Don't touch!
(129, 23) // these are strings put here using Excel 3.0
(130, 0)
(130, 21) Function.DisableOnEntry
(130, 22) =ON.ENTRY()
(131, 0)
(131, 1) // In a very special case, the proof menu may already exist. This occurs
(132, 0)
(132, 1) // when the user goes into the introduction or tutorial after proof has already
(132, 2)
(133, 0)
(133, 1) // been loaded. When this happens, excel not only runs our auto_close,
(133, 2)
(133, 21) // Keys
(134, 0)
(134, 1) // they physically remove our macro sheet. Since we don't delete our
(134, 2)
(134, 21) Key.Cntrl
(134, 22) ^
(135, 0)
(135, 1) // menu item anymore, it may still exist when auto_open is run.
(135, 2)
(135, 21) Key.Shift
(135, 22) +
(136, 0)
(136, 2)
(136, 21) Key.LeftEnter
(136, 22) ~
(137, 0)
(137, 1) // We try to enable the menu. If it fails, the menu doesn't exist.
(137, 2)
(137, 21) Key.RightEnter
(137, 22) {ENTER}
(138, 0)
(138, 2)
(138, 21) Key.LeftArrow
(138, 22) {LEFT}
(139, 0)
(139, 2)
(139, 21) Key.RightArrow
(139, 22) {RIGHT}
(140, 0)
(140, 2)
(140, 21) Key.UpArrow
(140, 22) {UP}
(141, 0)
(141, 21) Key.DownArrow
(141, 22) {DOWN}
(142, 0)
(142, 21) Key.Tab
(142, 22) {TAB}
(143, 0)
(143, 2)
(143, 21) Key.Insert
(143, 22) {INSERT}
(144, 0)
(144, 2)
(144, 21) Key.ProofRange
(144, 22) {N}
(145, 0)
(145, 1)
(145, 2)
(145, 21) Key.Stop
(145, 22) {S}
(146, 0)
(146, 2)
(146, 21) Key.Resume
(146, 22) {U}
(147, 0)
(147, 2)
(147, 21) Key.OnEnter
(147, 22)
(148, 0)
(148, 2)
(148, 21) Key.Volume
(148, 22)
(149, 0)
(149, 2)
(149, 9)
(149, 10)
(149, 20) Menu.Options
(149, 21) Key.Options
(149, 22)
(150, 0)
(150, 2)
(150, 9)
(150, 10)
(150, 20)
(151, 0)
(151, 9)
(151, 10)
(151, 20)
(152, 0)
(152, 9)
(152, 10)
(152, 20)
(152, 21) // Menu Strings. The raw items are strings without the & stripped.
(152, 22) // They are set by calling to xlrdr.dll (using String._getmenu...) and are put into the menus, then stripped and put here so they can be en/disabled.
(153, 0)
(153, 9)
(153, 10)
(153, 20) // Arguments to functions
(153, 21) Menu.Proof
(154, 0)
(154, 9)
(154, 10)
(154, 20) Arg.XLSTART
(154, 21) Menu.OnEntry
(155, 0)
(155, 9)
(155, 10)
(155, 20)
(155, 21) Menu.Range
(156, 9)
(156, 10)
(156, 20)
(156, 21) Menu.Stop
(157, 9)
(157, 10)
(157, 20)
(157, 21) Menu.Resume
(158, 9)
(158, 10)
(158, 20)
(158, 21) Menu.Volume
(159, 21)
(160, 21)
(161, 21)
(162, 21)
(163, 21) // GET.WORKSPACE(32) does not work in Excel 3.0
(164, 21) XLSTART
(165, 2)
(165, 21)
(166, 0) ProofRange
(166, 1) ProofRange
(166, 2)
(166, 21)
(167, 0)
(167, 1)
(167, 2)
(167, 21)
(168, 0)
(168, 1) // Disable cancelling of this macro.
(168, 2)
(168, 21)
(169, 0)
(169, 2)
(170, 0)
(170, 1)
(170, 2)
(171, 0)
(171, 1) // if dlls aren't loaded, load them now
(171, 2)
(171, 21) // Localized strings
(172, 0)
(172, 2)
(172, 21) Local.USAGone
(172, 22) could not be found. Please specify a location for it.
(173, 0)
(173, 1)
(173, 2)
(173, 21) Local.USAUAE
(173, 22) Application Execution Error!
(174, 0)
(174, 1) // If invalid sheet, return
(174, 2)
(175, 0)
(175, 2)
(176, 0)
(176, 1)
(176, 2)
(177, 0)
(177, 1) // Checking for objects
(177, 2)
(178, 0)
(178, 2)
(179, 0)
(179, 1)
(180, 0)
(180, 1) // Disable the appropriate items.
(180, 2)
(181, 0)
(181, 2)
(182, 0)
(182, 1)
(182, 2)
(183, 0)
(183, 1) // Pass the following parameters.
(183, 2)
(184, 0)
(184, 1) // - Ranges, each of them are comma separated
(184, 2)
(185, 0)
(185, 1) // - Worksheet type, either A1 or R1C1
(186, 0)
(186, 1) // - The last row and column used on the sheet, in format of RnCn
(186, 10)
(187, 0)
(188, 0)
(191, 0) ResumeRange
(191, 1) ResumeRange
(191, 2)
(192, 0)
(192, 1)
(192, 2)
(193, 0)
(193, 1) // Disable cancelling of this macro.
(193, 2)
(194, 0)
(195, 0)
(195, 1)
(196, 0)
(196, 1) // if dlls aren't loaded, load them now
(196, 2)
(197, 0)
(197, 2)
(198, 0)
(198, 1)
(198, 2)
(199, 0)
(199, 1) // If invalid sheet, return
(199, 2)
(200, 0)
(200, 2)
(201, 0)
(201, 1)
(201, 2)
(202, 0)
(202, 1) // Disable the appropriate items.
(203, 0)
(204, 0)
(204, 1)
(204, 2)
(205, 0)
(205, 1) // Get the cell reference. Be sure to remove the sheet name from it.
(205, 2)
(206, 0)
(206, 2)
(207, 0) rr.ActiveCell
(207, 2)
(208, 0)
(208, 1)
(208, 2)
(209, 0)
(209, 1) // Pass the following parameters.
(209, 2)
(210, 0)
(210, 1) // - Ranges, each of them are comma separated
(210, 2)
(211, 0)
(211, 1) // - Worksheet type, either A1 or R1C1
(211, 2)
(212, 0)
(212, 1) // - The last row and column used on the sheet, in format of RnCn
(212, 2)
(213, 0)
(213, 1) // - The currently active cell
(213, 2)
(214, 0)
(214, 2)
(215, 0)
(215, 2)
(216, 0)
(216, 1)
(216, 2)
(217, 0)
(217, 1)
(217, 2)
(218, 0) ProofOnEntrySwap
(218, 1) ProofOnEntrySwap
(218, 2)
(219, 0)
(219, 1)
(219, 2)
(220, 0)
(220, 1) // if dlls aren't loaded, load them now
(220, 2)
(221, 0)
(221, 2)
(222, 0)
(222, 1)
(222, 2)
(223, 0)
(223, 1) // Get current list separator and reset tts.ExecSkeleton. This
(223, 2)
(224, 0)
(224, 1) // is in case the user has switched countries after this macro was loaded.
(224, 2)
(225, 0)
(225, 2)
(226, 0)
(226, 1)
(226, 2)
(227, 0)
(227, 2)
(228, 0)
(228, 2)
(229, 0)
(229, 2)
(230, 0)
(230, 2)
(231, 0) poe.DisableOnEntry
(231, 1) // =ON.ENTRY()
(231, 2)
(232, 0)
(232, 2)
(233, 0)
(233, 2)
(234, 0)
(234, 2)
(235, 0)
(236, 0)
(236, 2)
(237, 0)
(237, 2)
(238, 0)
(239, 0)
(239, 2)
(240, 0) poe.EnableOnEntry
(240, 1) // =ON.ENTRY(;ParseCell)
(240, 2)
(241, 0)
(241, 2)
(242, 0)
(242, 2)
(243, 0)
(243, 2)
(244, 0)
(244, 1)
(244, 2)
(245, 0)
(245, 2)
(246, 0)
(246, 2)
(247, 0)
(247, 2)
(248, 0)
(248, 2)
(249, 0)
(249, 1)
(249, 2)
(250, 0)
(250, 1)
(250, 2)
(251, 0) Pause
(251, 1) Pause
(251, 2)
(252, 0)
(252, 1)
(252, 2)
(253, 0)
(253, 1) // Disable cancelling of this macro.
(253, 2)
(254, 0)
(254, 2)
(255, 0)
(255, 1)
(255, 2)
(256, 0)
(256, 1) // if dlls aren't loaded, load them now
(256, 2)
(257, 0)
(257, 2)
(258, 0)
(258, 1)
(258, 2)
(259, 0)
(259, 1) // Enable the appropriate items.
(259, 2)
(260, 0)
(260, 2)
(261, 0)
(261, 1)
(261, 2)
(262, 0)
(262, 2)
(263, 0)
(263, 2)
(264, 2)
(264, 10)
(265, 2)
(266, 0) EnableProofItems
(266, 1) EnableProofItems
(266, 2)
(267, 0)
(267, 2)
(268, 0)
(268, 1)
(268, 2)
(269, 0)
(269, 2)
(270, 0)
(270, 2)
(271, 0)
(271, 2)
(272, 0)
(272, 1)
(272, 2)
(273, 0)
(273, 2)
(274, 0)
(274, 2)
(275, 0)
(275, 2)
(276, 0)
(277, 0)
(278, 0)
(278, 2)
(279, 0)
(279, 2)
(280, 0)
(280, 2)
(281, 0)
(281, 2)
(282, 0)
(282, 2)
(283, 0)
(283, 2)
(284, 0)
(284, 2)
(285, 2)
(286, 2)
(287, 0) TTSOptions
(287, 1) TTSOptions
(287, 2)
(288, 0)
(288, 1)
(288, 2)
(289, 0)
(289, 1) // Disable cancelling of this macro.
(289, 2)
(290, 0)
(290, 2)
(291, 0)
(291, 1)
(291, 2)
(292, 0)
(292, 1) // if dlls aren't loaded, load them now
(292, 2)
(293, 0)
(293, 2)
(294, 0)
(294, 1)
(294, 2)
(295, 0)
(295, 2)
(296, 0)
(296, 2)
(299, 0) EntryTrap
(299, 1) EntryTrap
(299, 2)
(300, 0)
(300, 1)
(300, 2)
(301, 0)
(301, 2)
(302, 0)
(302, 2)
(303, 0)
(303, 2)
(304, 0)
(304, 2)
(305, 0)
(305, 2)
(306, 0)
(306, 2)
(307, 0)
(307, 2)
(308, 0)
(308, 2)
(309, 0)
(309, 2)
(310, 0)
(310, 2)
(311, 0)
(311, 2)
(312, 2)
(314, 0)
(314, 1) DisableEntryTrap
(314, 2)
(315, 0)
(315, 1)
(315, 2)
(316, 0)
(316, 2)
(317, 0)
(317, 2)
(318, 0)
(318, 2)
(319, 0)
(319, 2)
(320, 0)
(320, 2)
(321, 0)
(321, 2)
(322, 0)
(322, 2)
(323, 0)
(323, 2)
(324, 0)
(324, 2)
(325, 0)
(325, 2)
(326, 0)
(326, 2)
(327, 0)
(327, 1)
(327, 2)
(328, 0)
(328, 1)
(328, 2)
(329, 0) OnStationary
(329, 1) OnStationary
(329, 2)
(330, 0)
(330, 1)
(330, 2)
(331, 0)
(332, 0)
(333, 0)
(333, 1)
(334, 0)
(334, 1)
(335, 0) OnLeft
(335, 1) OnLeft
(336, 0)
(336, 1)
(337, 0)
(338, 0)
(338, 2)
(339, 0)
(339, 2)
(340, 0)
(340, 1)
(340, 2)
(341, 0)
(341, 1)
(341, 2)
(342, 0) OnRight
(342, 1) OnRight
(342, 2)
(343, 0)
(343, 1)
(343, 2)
(344, 0)
(344, 2)
(345, 0)
(345, 2)
(346, 0)
(346, 2)
(347, 2)
(349, 0) OnUp
(349, 1) OnUp
(350, 0)
(350, 1)
(351, 0)
(352, 0)
(353, 0)
(354, 2)
(355, 2)
(356, 0) OnDown
(356, 1) OnDown
(356, 2)
(357, 0)
(357, 1)
(357, 2)
(358, 0)
(358, 2)
(359, 0)
(359, 2)
(360, 0)
(360, 2)
(361, 2)
(362, 2)
(363, 0) OnNewLeft
(363, 1) OnNewLeft
(363, 2)
(364, 0)
(364, 1)
(364, 2)
(365, 0)
(365, 2)
(366, 0)
(366, 2)
(367, 0)
(367, 2)
(368, 0)
(368, 1)
(368, 2)
(369, 0)
(369, 1)
(369, 2)
(370, 0) OnNewRight
(370, 1) OnNewRight
(370, 2)
(371, 0)
(371, 1)
(371, 2)
(372, 0)
(372, 2)
(373, 0)
(373, 2)
(374, 0)
(377, 0) OnNewUp
(377, 1) OnNewUp
(377, 2)
(378, 0)
(378, 1)
(378, 2)
(379, 0)
(379, 2)
(380, 0)
(380, 2)
(381, 0)
(381, 2)
(382, 2)
(383, 2)
(384, 0) OnNewDown
(384, 1) OnNewDown
(384, 2)
(385, 0)
(385, 1)
(385, 2)
(386, 0)
(386, 2)
(387, 0)
(387, 2)
(388, 0)
(388, 2)
(389, 0)
(389, 2)
(390, 0)
(390, 2)
(391, 0) RetrieveXPath
(391, 1) RetrieveXPath
(391, 2)
(392, 0)
(392, 1)
(392, 2)
(393, 0) rxp.ExePath
(393, 1)
(393, 2)
(394, 0) rxp.ExeName
(394, 1)
(394, 2)
(395, 0) rxp.ExeDir
(395, 1)
(395, 2)
(396, 0)
(396, 1)
(396, 2)
(397, 0)
(397, 1)
(397, 2)
(398, 0)
(398, 1) // Initialize local variables.
(398, 2)
(399, 0)
(399, 2)
(400, 0)
(400, 1)
(400, 2)
(401, 0)
(401, 1) // If excel version 4 and above, we can call getprivate...() directly from the kernel.
(401, 2)
(402, 0)
(402, 1) // Otherwise, we must call our own routine that emulates this.
(403, 0)
(404, 0)
(404, 1)
(405, 0)
(405, 1) // If both directory and filename found, try to open it.
(405, 2)
(406, 0)
(406, 2)
(407, 0)
(407, 2)
(408, 0)
(408, 2)
(409, 0)
(409, 2)
(410, 0)
(410, 2)
(411, 0)
(411, 2)
(412, 0)
(412, 2)
(413, 0)
(413, 1)
(413, 2)
(414, 0)
(414, 1) // The dll wasn't found. Search the sndsys.ini file for a directory and look
(414, 2)
(415, 0)
(415, 1) // for the ddl there.
(415, 2)
(416, 0)
(416, 2)
(417, 0)
(417, 2)
(418, 0)
(418, 2)
(419, 0)
(419, 2)
(420, 0)
(420, 2)
(421, 0)
(422, 0)
(422, 10)
(423, 0)
(423, 2)
(423, 10)
(424, 0)
(424, 2)
(425, 0)
(425, 2)
(426, 0)
(426, 2)
(427, 0)
(427, 1) //=END.IF()
(427, 2)
(428, 0)
(428, 1)
(428, 2)
(429, 0)
(429, 1)
(429, 2)
(430, 0) rxp.EnterPath
(430, 1) // If the filename = the string not_found, query user for new path.
(430, 2)
(431, 0)
(431, 2)
(432, 0)
(432, 2)
(433, 0)
(433, 2)
(434, 0)
(434, 2)
(435, 0)
(435, 2)
(436, 0)
(436, 2)
(437, 0)
(437, 2)
(438, 0)
(438, 2)
(439, 0)
(439, 2)
(440, 0)
(440, 2)
(441, 0)
(441, 2)
(442, 0)
(442, 2)
(443, 0)
(443, 2)
(444, 0)
(444, 1)
(444, 2)
(445, 1)
(445, 2)
(446, 1)
(446, 2)
(447, 1)
(447, 2)
(449, 0) rxp.Init
(449, 1) rxp.Init()
(450, 0)
(450, 1)
(451, 0)
(451, 1) // The ini directory is set to the excel home directory.
(452, 0)
(452, 1) // We find it by parsing off the XLSTART from the retrieve startup directory call.
(996, 1) // Starting at start of GID.DateFormat, we get first char, find first non match of this char
(997, 0) GID.Pos
(998, 0) GID.DateFormat
(999, 0)
(1000, 0)
(1001, 0)
(1002, 0)
(1003, 0)
(1003, 1) // To terminate the while loop
(1004, 0)
(1005, 0)
(1006, 0)
(1007, 0)
(1008, 0)
(1009, 0)
(1010, 0)
(1011, 0)
(1012, 0) GID.StandardDateFormat
(1012, 1) 22666
(1013, 0) GID.FormatDDDDMMMMYYYY
(1013, 1) 23226
(1014, 0) GID.FormatTime
(1014, 1) 0.52
(1015, 0) GID.Call
(1016, 0)
(1016, 1)
(1017, 0)
(1017, 1)
(1018, 0)
(1018, 1)
(1019, 0) LocalizeXlrdr
(1019, 1) LocalizeXlrdr
(1020, 0) Localize.Maxed
(1020, 1)
(1021, 0)
(1022, 0)
(1023, 0)
(1024, 0)
(1024, 1)
(1025, 0)
(1025, 1) // this is because Excel 3.0 does not know about ON.ENTRY and the only way to really find out what it is is to create a slave International Macro Sheet, then do a Copy, Paste.
(1026, 0)
(1026, 1) // The stuff below only happens with Excel4. Unfortunately, the form of Copy that is needed is not known about in Excel 3.0. Hence, the 6 copy commands that are ared must temselves be created.
(1027, 0)
(1027, 1) // Fortunately, this can be done in a non-International Macro sheet and the results go into the 6 commented lines as the equivalent localized code.
(1028, 0)
(1028, 1) // The next problem occurs because we try to minimize visual impact upon creation of a new macro sheet. Doesn't do the job 100%, but that is the reason for the ECHO commands
(1029, 0)
(1029, 1) // The other consequence is that the newly created macro sheet's number has been used up.
(1093, 1) // determine whether MoveOnEntry is set (puts 0/1 (no/yes) result in tts.MoveOnEntry).
(1094, 0) SetMoveOnEntryP1
(1094, 1) SetMoveOnEntryP1
(1095, 0) smoe.StartPos
(1096, 0)
(1097, 0)
(1098, 0)
(1099, 0)
(1100, 0)
(1100, 1)
(1101, 0)
(1101, 1)
(1102, 0) SetMoveOnEntryP2
(1102, 1) SetMoveOnEntryP2
(1103, 0) smoe.EndPos
(1104, 0)
(1105, 0)
(1106, 0)
(1107, 0)
(1108, 0)
(1109, 0)
(1109, 1)
(1110, 0)
(1110, 1)
(1111, 0) SetMoveOnEntryP3
(1111, 1) SetMoveOnEntryP3
(1112, 0)
(1113, 0)
(1114, 0)
(1117, 0) GetMenus
(1117, 1) GetMenus
(1118, 0)
(1118, 1) // To support localization, we obtain the menu items and descriptions from xlrdr.dll which has them stored in its .RC file.
(1119, 0)
(1119, 1) // The menus may contain the & character and also, if there are two contiguous spaces in the menu string, the last character together with a cntrl key indicate an accelerator (such as cntrl+N for proof range)
(1120, 0)
(1120, 1) // At first we get the raw menu information, and then we strip out the extra characters down below when we actually set up the menus.
(1121, 0)
(1121, 1)
(1122, 0)
(1123, 0)
(1124, 0)
(1125, 0)
(1126, 0)
(1127, 0)
(1128, 0)
(1129, 0)
(1129, 1)
(1130, 0)
(1131, 0)
(1132, 0)
(1133, 0)
(1134, 0)
(1135, 0)
(1136, 0)
(1137, 0)
(1137, 1)
(1138, 0)
(1139, 0) GM.Proof
(1140, 0)
(1141, 0) GM.OnEnter
(1142, 0)
(1143, 0)
(1144, 0) GM.Range
(1145, 0)
(1146, 0)
(1147, 0) GM.Stop
(1148, 0)
(1149, 0)
(1150, 0) GM.Resume
(1151, 0)
(1152, 0)
(1153, 0) GM.Volume
(1154, 0)
(1155, 0)
(1156, 0) GM.Options
(1157, 0)
(1158, 0)
(1159, 0)
(1160, 0)
(1160, 1)
(1161, 0)
(1166, 0) SetMatchTable
(1166, 1)
(1167, 0)
(1167, 1) // This is where we set up the format remapping table
(1168, 0)
(1169, 0)
(1170, 0)
(1171, 0)
(1172, 0) SMT.FormatRed
(1172, 1) 0
(1173, 0) SMT.Red
(1173, 1)
(1174, 0) SMT.Cur1
(1174, 1)
(1175, 0) SMT.Cur3
(1175, 1)
(1176, 0)
(1176, 1)
(1177, 0)
(1178, 0)
(1179, 0)
(1180, 0)
(1181, 0)
(1182, 0)
(1183, 0) SMT.DecType
(1183, 1) // Unclear how Intl.TrailingCur0 affects the format, but commented out IF statement below is wrong.