Announcement

Collapse
No announcement yet.

mein erstes VBA-Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • mein erstes VBA-Problem

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>Neue Seite 2</title>
    </head>

    <body>

    <p>So, weil ich es in C++ nicht hinkriege, versuche ich es mal mit VBA unter
    Outlook 2000. Ich hab es auf Anhieb geschafft, mir ein kleines Formular mit
    einem Button zu Basteln :-). In der Hilfe hab ich dann zwei schöne Beispiele
    gefunden die ich sofort ausprobieren wollte. Aber da hat &quot;Er&quot; mir
    einen Strich durch die Rechnung gemacht :-(. Im ersten Beispiel meckert
    &quot;er&quot; in der Zeile Set MyAddrList an: &quot;Ein Objekt wurde nicht
    gefunden&quot;.&nbsp; Im zweiten Beispiel sagt er direkt in der ersten Zeile:
    &quot;Ein Objekt ist erforderlich&quot;. Wenn mir keiner helfen kann steig ich
    bald auf Delphi um ;-)</p>

    <pre>Private Sub CommandButton1_Click()
    Set myOlApp = CreateObject(&quot;Outlook.Application&quot
    &nbsp;&nbsp;&nbsp; Set myNamespace = myOlApp.GetNamespace(&quot;MAPI&quot
    &nbsp;&nbsp;&nbsp; Set myAddrList = myNamespace.AddressLists(&quot;Personal Address Book&quot
    &nbsp;&nbsp;&nbsp; Set myAddrEntries = myAddrList.AddressEntries
    &nbsp;&nbsp;&nbsp; Set myEntry = myAddrEntries.Add(&quot;Microsoft Mail Address&quot
    &nbsp;&nbsp;&nbsp; myEntry.Name = &quot;John Q. Public&quot;
    &nbsp;&nbsp;&nbsp; On Error GoTo DialogBox
    &nbsp;&nbsp;&nbsp; myEntry.Address = &quot;[email protected]&quot;
    &nbsp;&nbsp;&nbsp; myEntry.Update
    DialogBox:
    &nbsp;&nbsp;&nbsp; myEntry.Details
    End Sub
    </pre>

    <pre>Private Sub CommandButton1_Click()
    myName = Item.To
    Set myNamespace = Application.GetNamespace(&quot;MAPI&quot
    Set myGAddressList = myNamespace.AddressLists(&quot;Global Address List&quot
    Set myGEntries = myGAddressList.AddressEntries
    Set myGentry = myGEntries(myName)
    myManager = myGentry.Manager
    Set myGentry2 = myGEntries(myManager)
    Set myPAddressList = myNamespace.AddressLists(&quot;Personal Address Book&quot
    Set myPEntries = myPAddressList.AddressEntries
    'Add a new AddressEntry object to the personal
    'address collection with the name, address, and
    'manager of the name in your To field.
    Set myPEntry = myPEntries.Add(&quot;Microsoft Mail Address&quot;, myName)
    myPEntry.Address = myGentry.Address
    myPEntry.Manager = myGentry.Manager
    'Update to persist the collection.
    myPEntry.Update
    'Now add the manager's info. to
    'the Personal address collection.
    Set myPEntry2 = myPEntries.Add(&quot;Microsoft Mail Address&quot;, myManager)
    myPEntry2.Address = myGentry2.Address
    myPEntry2.Manager = myGentry2.Manager
    myPEntry2.Update

    End Sub

    </pre>

    </body>

    </html>
    Günther

  • #2
    Ich bin zwar kein VBA-Profie, hab aber evtl. eine Lösung:

    zu 1. Ich denke mal das Addressbuch "Personal Address Book" gibt es nicht auf deinem Rechner. Probier mal "Persönliches Addressbuch" oder "Globales Adressbuch". Oder einen anderen Eintrag im Outlook-Adrssbuch in der Dropdown-Liste "Namen anzeigen aus".

    zu 2. Ich würde die erste Zeile mal weglassen. und statt desen einen festen Namen Eintragen. z.B. myName = "Günther Weber". Auch mußt die Adresslist-Bezeichnungen auf vorhandene Adressbücher-Namen umstellen

    Comment


    • #3
      Hi Günther,

      ich habe Dir mal die Online-Hilfe zu CreateObject kopiert

      CreateObject-Funktion (Beispiel)
      In diesem Beispiel wird die CreateObject-Funktion verwendet, um einen Verweis (xlApp) auf Microsoft Excel zu setzen. In dem Beispiel wird der Verweis verwendet, um auf die Visible-Eigenschaft von Microsoft Excel zuzugreifen, und anschließend wird Microsoft Excel mit seiner Quit-Methode beendet. Schließlich wird der Verweis selbst wieder freigegeben.

      Dim xlAnw As Object ' Variable für Verweis deklarieren.

      Set xlAnw = CreateObject("excel.application")
      ' Sie müssen die Visible-Eigenschaft auf True
      ' setzen, wenn die Anwendung angezeigt werden soll.
      xlAnw.Visible = True
      ' Greifen sie auf die anderen Objekte von
      ' Microsoft Excel mit xlAnw zu.
      xlAnw.Quit ' Wenn Sie fertig sind, beenden Sie die
      ' Anwendung mit der Quit-Methode, und geben Sie
      Set xlAnw = Nothing ' dann den Verweis frei.

      Ich denke was deinem Programm nur fehlt ist 'Dim my01App As Object'.
      Du mußt "ihm" my01App ja erstmal bekannt machen. Probier es mal.

      Gruß
      Ale

      Comment

      Working...
      X