Re: MessageClass Ändern

Tech-Archive recommends: Fix windows errors by optimizing your registry

From: Hans-Juergen Neschtschenko (noSpNeschtschenko_at_t-online.de)
Date: 11/12/04


Date: Fri, 12 Nov 2004 15:45:53 +0100

Wenn man die VBAProject.OTM auf 100 Rechnern synchron halten möchte,
weiß man, dass man den falschen Ansatz gewählt hat ;-)
Exchangeserver-Skripte, event sinks und ComAddIns sind was für Profis.
Da muss man dann ein bißchen gründlicher lernen oder einen Programmierer
engagieren und bezahlen.

-- 
HTH
Hans-Juergen
--
"Bernd K." <BerndK@discussions.microsoft.com> schrieb im Newsbeitrag
news:3CCE848A-0C12-4F5E-9508-A290162A5F4A@microsoft.com...
Danke für Ihre Antwort.
Die Lösung hatte ich gestern abend schon :) dank ihrer ansätze die ich
zu
kompliziert angenommen hatte aber sehr einfach und klar waren, danke
nochmal.
Hier ist mein fertiges Programm:
Public WithEvents myOlItems As Outlook.Items
Private Sub Application_Startup()
End Sub
Public Sub Initialize_handler()
    Set myOlItems =
Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olPublicFolder
sAllPublicFolders).Folders("Kontakte").Folders("Gästeliste").Items
End Sub
Private Sub myOlItems_ItemAdd(ByVal Item As Object)
    Item.MessageClass = "IPM.Contact.gaesteliste"
    Item.Save
End Sub
Mein problem ist jetzt aber noch das ich es automatisch starten möchte
aber
nicht weis wie ich meine Prozedur starten soll und mein 2. Problem ist
wie
verteileich das ganze auf 100 clients ? Mal abgesehn davon was für
möglichkeiten habe ich ein Script, Macro oder ein Comm-Add-In auf 100
Rechner
zu verteilen ? Geht das mit Exchange oder wie ist das möglich?
Danke für ihre tollen Antworten
Bernd K.
"Hans-Juergen Neschtschenko" wrote:
> Korrekturen:
> Die Deklarationen hast Du doch hoffentlich nicht vergessen:
>
> Dim myOlApp As Outlook.Application
> dim ns as outlook.namespace
> Public WithEvents myOlItems As Outlook.Items
>
> Die "createobject"-Zeile muss raus.
> Die "set ns" Zeile muss raus
>
> Dann:
> set ns=application.GetNameSpace("MAPI")
> Set myOlItems = ns.Folders("Öffentliche
> Ordner").folders("Alle Öffentlichen
> Ordner").Folders("Kontakte").Folders("Gästeliste").Items
>
> Anmerkungen:
> Das ist schlechter Programmierstil, sollte aber klappen.
> Der Code gehört ins ThisOutlookSession-Modul
> myOLApp ist m.E. überflüssig -AFAIR ist das application-Objekt
> "intrinsisch", immer da.
>
> Dieses MS-"my" als Variablen-Benennung geht  mir sowieso auf die E...
> Nerven!
>
> Die VBAOUTLX.CHM wird dringend zur Lektüre empfohlen.
>
> -- 
> HTH
> Hans-Juergen
> --
> "Bernd K." <BerndK@discussions.microsoft.com> schrieb im Newsbeitrag
> news:3DB79E8B-DD51-46CA-B13B-DA0C412A3B70@microsoft.com...
> Hallo ich bins nochmal :)
> habe jetzt folgenden code erstellt (soll doch ein Macro sein oder?):
>
> Public Sub Initialize_handler()
>     Set oa = CreateObject("Outlook.Application")
>     Set ns = oa.GetNamespace("MAPI")
>     Set myOlItems = oa.ns.GetDefaultFolder("Alle Öffentlichen
> Ordner").Folders("Kontakte").Folders("Gästeliste").Items
> End Sub
>
> Private Sub myOlItems_ItemAdd(ByVal Item As Object)
>
>     Item.MessageClass = "IPM.Contact.gaesteliste"
>     Item.Save
>
> End Sub
>
> So wie ich es hingeschrieben habe funktioniert es nicht kann mir
irgend
> jemand sagen woran es liegt ? es kommt ein Laufzeitfehler 438.
>
> Wenn ich Ihre aussagen richtig verstanden habe wird das hier ein Macro
> das
> beim Start von Outlook automatisch ausgeführt wird und darauf achtet
das
> wenn
> jemand ein Objekt in meine Fall ein Kontakt in meinen Ordner schiebt
das
> dieses automatisch in meine Message Classe umgewandelt wird oder?
>
> Bin für jede Antwort dankbar
> Bernd K.
>
> PS: Hat jemand noch ein Link für mich wo ich mir VB Scripte anschauen
> kann?
>
> "Hans-Juergen Neschtschenko" schrieb:
>
> > Zwei Änderungen am MS-Beispielcode sind erforderlich:
> > 1.
> > der betreffende Ordner (und seine items-collection) muss im
> > initialize-handler referenziert werden.
> > 2.
> > im  itemAdd-event sollte dann reichen:
> > item.messageclass="IPM.Contact.WasAuchImmer"
> > item.save
> >
> > Gern zu Diensten mit Tipps auf den Weg. Aber fertige Sachen
entwickeln
> > wir hier nicht. Da muss die "Firma" schon in Programmierung
> investieren.
> >
> > Vielleicht weiß aber jemand von den andern, ob's so was schon fertig
> > irgendwo gibt.
> >
> > -- 
> > HTH
> > Hans-Juergen
> > --
> > "Bernd K." <BerndK@discussions.microsoft.com> schrieb im Newsbeitrag
> > news:327EC8C6-5EDF-4007-A6C5-702F7AE847AD@microsoft.com...
> > Danke für diese hilfreiche Antwort, mein Problem ist nur das ich es
> > nicht
> > umsetzen kann weil ich "noch" kein VBA kann möchte es aber gerne
> Lernen
> > könenn Sie mir da hilfestellung geben wie ich íhr Script so anpasse
> das
> > sich
> > die MessageClass automatisch ändert, wenn ich in den neuen Ordner
> einen
> > bestehenden Kontakt hinzufüge.
> >
> > Mir würde damit sehr geholfen weil wir in der Firma dieses Script
> > dringend
> > brauchen.
> >
> > Mit freundlichen Grüßen
> > Bernd K.
> >
> > PS: Hier mein bisheriges Script das ich gefunden und selbst
> > zusammengebastellt habe:
> > Sub ClassChanger()
> >
> > Dim obj As Object
> > Dim myItem
> > Dim objApp
> >
> >     Set objApp = CreateObject("Outlook.Application")
> >     Set myItem = GetCurrentItem()
> >     myItem.MessageClass = "IPM.Contact.gaesteliste"
> >     myItem.Save
> >
> > Set myItem = Nothing
> > Set objApp = Nothing
> >
> > End Sub
> >
> > Function GetCurrentItem() As Object
> >     Dim objApp As Outlook.Application
> >
> >     Set objApp = CreateObject("Outlook.Application")
> >     On Error Resume Next
> >     Select Case TypeName(objApp.ActiveWindow)
> >         Case "Explorer"
> >             Set GetCurrentItem =
> objApp.ActiveExplorer.Selection.Item(1)
> >         Case "Inspector"
> >             Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
> >         Case Else
> >             ' anything else will result in an error, which is
> >             ' why we have the error handler above
> >     End Select
> >
> >  Set objApp = Nothing
> > End Function
> >
> >
> > "Hans-Juergen Neschtschenko" wrote:
> >
> > > Die Antwort lautet JA.
> > >
> > > Einen solchen Code kann man im ItemAdd-Event unterbringen. Hier
ist
> > ein
> > > Beispiel aus der VBAHilfe von Outlook:
> > > Dim myOlApp As Outlook.Application
> > > Public WithEvents myOlItems As Outlook.Items
> > >
> > > Public Sub Initialize_handler()
> > >     Set myOlItems =
> > >
> myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items
> > > End Sub
> > >
> > > Private Sub myOlItems_ItemAdd(ByVal Item As Object)
> > >     Dim myOlMItem As Outlook.MailItem
> > >     Dim myOlAtts As Outlook.Attachments
> > >     Set myOlMItem = myOlApp.CreateItem(olMailItem)
> > >     myOlMItem.Save
> > >     Set myOlAtts = myOlMItem.Attachments
> > >     ' Add new contact to attachments in mail message
> > >     myOlAtts.Add Item, olByValue
> > >     myOlMItem.To = "Sales Team"
> > >     myOlMItem.Subject = "New contact"
> > >     myOlMItem.Send
> > > End Sub
> > > -- 
> > > HTH
> > > Hans-Juergen
> > > --
> > > "Bernd K." <BerndK@discussions.microsoft.com> schrieb im
Newsbeitrag
> > > news:25DD378D-952B-4CE5-9126-A52F7CF3A439@microsoft.com...
> > > Hallo,
> > > mein Problem ist volgendes:
> > > Ich möchte gerne einen Kontakte Ordner selbst erstellen in dem ich
> ein
> > > eigenes Formular benutze mit zusätzlichen Feldern. Das Problem ist
> > jetzt
> > > nur
> > > das wenn ich einen bestehenden Kontakt von mir in den Öffentlichen
> > > selbsterstellen Kontakte Ordner schiebe dann sehe ich nicht meine
> > > hinzugefügten Felder erst dann wenn ich das mit einem Tool oder
> einem
> > > Macro
> > > die MessageClass in mein Formular änder.
> > >
> > > Meine Frage ist jetzt kann ich ein Macro schreiben (am besten
jemand
> > > anderes
> > > kenn mich damit nicht aus) mit dem ich beim verschieben eines
> > > bestehenden
> > > kontaktes in mein selbsterstellen Öffentlichen Ordner Automatisch
> die
> > > MessageClass ändern kann?
> > >
> > > Wir benutzen in der Firma OfficeXP, WindowsXP, ExchangeServer2000.
> > >
> > > Ich bin für jede Antwort dankbar.
> > > Bernd K.
> > >
> > >
> > >
> >
> >
> >
>
>
>
>
>


Relevant Pages

  • Re: Übergabe von E-Mail-Adressen an Outlook
    ... Sub Send_Word_Antrag_e ... End Sub ... Dim iAntwort As Integer ... Set olAnw = GetObject ...
    (microsoft.public.de.word.vba)
  • Re: Verzeichnis löschen
    ... Sub ShellDelete ... End With ... Dim olApp As Outlook.Application ... Set olApp = CreateObject ...
    (microsoft.public.de.excel)
  • Re: Automatisches Anlegen von Ordnern, Freigaben, Berechtigungen
    ... Public intAnzahlOU, intCountDCs, bOUIsSet ... Sub Window_onLoad ... End Sub ... Set objConnection = CreateObject ...
    (microsoft.public.de.german.windows.server.general)
  • Re: 1 Makro aus 8
    ... was ich da genau mit dem Set xxx = Nothing machen muss? ... > - For Each objTmp In objFolder.Items ... > Dim objNamespace As NameSpace ... > End With ...
    (microsoft.public.de.word.vba)
  • Re: Outlook und IMAP
    ... Private Sub Application_Startup ... End Sub ... Dim mpSess As MAPI.Session ... Set Items = GetFolder.Items ...
    (microsoft.public.de.outlook)