XL5: Visual Basic Examples Using DDE with Program Manager

ID: Q123443

5.00 5.00c WINDOWS kbprg kbcode

The information in this article applies to:

SUMMARY

The following information includes Visual Basic procedures that you can use in Microsoft Excel to return information from Program Manager and to perform actions on Program Manager groups and items using Dynamic Data Exchange (DDE) commands.

These examples demonstrate how to do the following:

MORE INFORMATION

The application name for Program Manager is "ProgMan." The topic available in the Program Manager application is also "ProgMan." The following is a list of commands available in the ProgMan topic that you can use in a DDE conversation with Program Manager:

CreateGroup(GroupName,GroupPath)   Creates a new group at Program Manager
                                   or activates the window of an existing
                                   group.

DeleteGroup(GroupName)             Deletes an existing program group.

AddItem(CmdLine,Name,IconPath,     Creates a new program item (icon) in the
        IconIndex,xPos,yPos,       active group.
        DefDir,HotKey,,fMinimize)

ShowGroup(GroupName,ShowCommand)   Maximizes, minimizes, or restores a
                                   group window.

You can also request the "progman" item to return a list of your Program Manager groups.

EXAMPLES

Create New Group

The following example creates a group called "Excel Files" or activates an existing group named "Excel Files" in Program Manager.

   Sub CreateGroup()
      Dim Chan As Integer
      Chan = DDEInitiate("Progman", "progman")
      DDEExecute Chan, "[CreateGroup(Excel Files)]"

      ' Terminate channel
      DDETerminate Chan
   End Sub

Delete Existing Group

The following example deletes the group "Excel Files." Note that the group is deleted even if it contains items.

   Sub DeleteGroup()

      Dim Chan As Integer
      Chan = DDEInitiate("Progman", "progman")
      DDEExecute Chan, "[DeleteGroup(Excel Files)]"

      ' Terminate channel
      DDETerminate Chan
   End Sub

Add New Item

The following example prompts you to enter a path to the item (c:\excel\excel.exe) and a name for the item (Excel), and then adds the item to the active group:

   Sub AddItem()
      Dim qt As String
      Dim Chan As Integer
      Dim path As String, item As String

      ' Set qt equal to quotation mark character
      qt = Chr(34)

      Chan = DDEInitiate("Progman", "progman")
      path = InputBox("Enter path for item")
      item = InputBox("Enter name for item")

      DDEExecute Chan, _
         "[AddItem(" & qt & path & qt & "," & qt & item & qt & ")]"

      ' Terminate channel
      DDETerminate Chan
   End Sub

Maximize, Minimize or Restore Group Window

   Sub GroupWindow()
      Dim Chan As Integer
      Chan = DDEInitiate("Progman", "progman")
      ' Maximize Excel Files group
      DDEExecute Chan, "[ShowGroup(Excel Files,3)]"
      ' Minimize Excel Files group
      DDEExecute Chan, "[ShowGroup(Excel Files,2)]"
      ' Restore Excel Files group
      DDEExecute Chan, "[ShowGroup(Excel Files,1)]"

      ' Terminate channel
      DDETerminate Chan
   End Sub

Return List of Groups

The following example returns a list of your Program Manager groups to Sheet1 in the active workbook:

Dim Chan as Integer Dim listing as Variant Dim i as Integer

   Sub ListGroups
      Chan = DDEInitiate("Progman","Progman")
      listing = DDERequest(Chan,"Progman")

      ' Terminate channel
      DDETerminate Chan

      i=1
      While i <= UBound(listing)
         Sheets("sheet1").Cells(i,1).FormulaR1C1=listing(i,1)
         i=i+1
      Wend

   End Sub

Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support professionals can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.

For additional information, please see the following article(s) in the Microsoft Knowledge Base:

   ARTICLE-ID: Q72907
   TITLE     : Manipulating Program Manager Groups Using DDE Interface

REFERENCES

For more information about the DDEExecute Method, the DDEInitiate Method, or the DDETerminate Method, choose the Search button in the Visual Basic Reference and type:

   DDE: channels

Additional reference words: 5.00 5.00c howto vbappcode
Keywords          : kbenv kbinterop kbprg 
Version           : 5.00 5.00c
Platform          : WINDOWS

Last Reviewed: May 17, 1999