'-Begin-----------------------------------------------------------------

  '-ReadTableInArray----------------------------------------------------
    Sub ReadTableInArray(TableName, ByRef ArrayName)

      '-Reset the session-----------------------------------------------
        session.findById("wnd[0]/tbar[0]/okcd").text = "/n"
        session.findById("wnd[0]/tbar[0]/btn[0]").press

      '-Open TAC SE16---------------------------------------------------
        session.findById("wnd[0]/tbar[0]/okcd").text = "/nSE16"
        session.findById("wnd[0]/tbar[0]/btn[0]").press

      '-View table------------------------------------------------------
        session.findById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").text = _
          TableName
        session.findById("wnd[0]/tbar[1]/btn[7]").press
        session.findById("wnd[0]/tbar[1]/btn[8]").press

      '-Open user specific parameters dialog----------------------------
      '-
      '- Attention: Here is a language sprecific code
      '-
      '-----------------------------------------------------------------
        Set Menu = session.findById("wnd[0]/mbar")
        Set Einstellungen = Menu.FindByName("Einstellungen", "GuiMenu")
        Set BenutzerPar = Einstellungen.FindByName("Benutzerparameter...", _
          "GuiMenu")
        BenutzerPar.Select()

      '-Set the display-------------------------------------------------
        Set ALVGridView = session.findById("wnd[1]/usr/tabsG_TABSTRIP/" & _
          "tabp0400/ssubTOOLAREA:SAPLWB_CUSTOMIZING:0400/radRSEUMOD-TBALV_GRID")
        If ALVGridView.Selected = vbFalse Then
          ALVGridView.select()
        End If
        session.findById("wnd[1]/tbar[0]/btn[0]").press

      Set BenutzerPar = Nothing
      Set Einstellungen = Nothing
      Set Menu = Nothing

      '-Read data from table into array---------------------------------
        Set table = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell")
        Rows = table.RowCount() - 1
        Cols = table.ColumnCount() - 1
        ReDim ArrayName(Rows + 1, Cols)

        '-Get the title of all columns in the first array line----------
          Set Columns = table.ColumnOrder()
          For j = 0 To Cols
            ArrayName(0, j) = CStr(Columns(j))
          Next

        For i = 0 To Rows
          For j = 0 To Cols
            ArrayName(i + 1, j) = table.GetCellValue(i, CStr(Columns(j)))

            '-Each 32 lines actualize the grid--------------------------
              If i Mod 32 = 0 Then
                table.SetCurrentCell i, CStr(Columns(0))
              End If

          Next
        Next

        Set ALVGridView = Nothing
        Set Columns = Nothing
        Set table = Nothing

    End Sub

  '-Main----------------------------------------------------------------
    If Not IsObject(application) Then
      Set SapGuiAuto = GetObject("SAPGUI")
      Set application = SapGuiAuto.GetScriptingEngine
    End If

    If Not IsObject(connection) Then
      Set connection = application.Children(0)
    End If

    If Not IsObject(session) Then
      Set session = connection.Children(0)
    End If

    '-Read the table SFLIGHT in an array--------------------------------
      Dim SFlight()
      ReadTableInArray "SFLIGHT", SFlight

    '-Get a part from the array-----------------------------------------
      For i = 0 To Ubound(SFlight, 1)
        MsgBox SFlight(i, 1) & "; " & SFlight(i, 2) & "; " & _
          SFlight(i, 3)
      Next

'-End-------------------------------------------------------------------