Text Documents (Writer)
HTML Documents (Writer Web)
Spreadsheets (Calc)
Presentations (Impress)
Drawings (Draw)
Database Functionality (Base)
Formulae (Math)
Charts and Diagrams
Macros and Scripting
Office Installation
Common Help Topics
OneOffice Logo

CompatibilityMode() Function

CompatibilityMode() function controls or queries runtime mode. It affects all code executed after setting or resetting the runtime mode.

Use this feature with caution, limit it to document conversion for example.

Syntax:


      CompatibilityMode(Optional Enable As Boolean) As Boolean
    

Return value:

CompatibilityMode function always returns the mode that is active after its execution. That is if called with argument, it returns the new mode, if called without argument, it returns active mode without modifying it.

Parameters:

Enable: Sets or unsets new compatibility mode when the argument is present.

CompatibilityMode function relates to Option VBASupport 1, in which case it always returns True. It is unrelated to Option Compatible compiler directive.

This function may affect or help in the following situations:

  • Scoping of variables.
  • Running RmDir command in VBA mode. In VBA only empty directories are removed by RmDir while Office Basic removes a directory recursively.
  • Changing behaviour of Basic Dir command. The directory flag (16) for the Dir command means that only directories are returned in Office Basic, while in VBA normal files and directories are returned.
  • Colour components calculation with the Red and Blue functions which are interchanged (The Green function is not affected).

Example:

Given a NOT empty directory at file:///home/me/Test


      Sub RemoveDir
      
    MsgBox CompatibilityMode() ' False

      
          CompatibilityMode( True )
          RmDir( "file:///home/me/Test" )
          CompatibilityMode False 
      
      
    MsgBox CompatibilityMode ' False


      End Sub
   

With CompatibilityMode( True ) the program raises an error, otherwise the Test directory and all its content is deleted.

Example:

Modifying Dir behaviour


    Sub VBADirCommand
        CompatibilityMode( Enable := True )   ' Shows also normal files
        Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )
        Total$ = ""
        While Entry$ <> ""
            Total$ = Total$ + Entry$ + Chr$(13)
            Entry$ = Dir
        Wend
        MsgBox Total$
        CompatibilityMode Enable := False ' Shows only directories
    End Sub