Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Word macros extern aufrufen

Frage Entwicklung VB for Applications

Mitglied: arnito

arnito (Level 1) - Jetzt verbinden

08.08.2007, aktualisiert 09.08.2007, 4328 Aufrufe, 8 Kommentare

Hallo,
ich habe folgende Aufgabenstellung zu lösen und würde mich freuen wenn mir jemand dazu Hinweise geben könnte:

Ich kann in einer 4D Datenbank mit einer "Live Window" Funktion Office Dokumente anschauen und bearbeiten. Soweit ich das überblicke werden die Dokumente dazu im Explorer geöffnet. Aus der 4D Anwendung habe ich die Möglichkeit beliebige shell Kommandos abzusetzen. Nun die Frage (n): Wie kann ich z.B. in einem vb script an das im Explorer geöffnete Dokument rankommen und da dann vorher aufgezeichnete Macros ausführen, wie z.B Inhalt der Zwischenablage an einer bestimmten Textmarke einfügen.

Ich hoffe die Frage ist soweit nachvollziehbar.

Vielen Dank im Voraus

Arnito
Mitglied: sebele
08.08.2007 um 14:24 Uhr
in Vb besorgt man sich eine Referenz mit CreatObject- bzw GetObject-Funktion. Das erhaltene Objekt kennt das komplette Objektmodell der zugrundeliegenden Applikation.

Set ie = CreateObject("InternetExplorer.Application")

Damit erhält man auch Zugriff auf die Inhalte des Explorers.

Mit Sicherheit muss man sich dann noch auf analoge weise ein entsprechendes Officeobjekt erzeugen um dann die Makros anzustossen.
Bitte warten ..
Mitglied: arnito
08.08.2007 um 15:07 Uhr
Danke für die schnelle Antwort, da ich in vb recht unerfahren bin kann ich damit aber noch nicht so richtig viel Anfangen.
In meinem Fall ist das Wordfile im Explorer bereits geöffnet, ich müßte also mit GetObject erstmal das richtige explorer Fenster festellen (oder?) und dann an diese Instanz die entsprechen vb script befehle absetzen. Wie kann ich das richtige Fenster festellen, über den Dateinamen der geöffneten Datei?

Danke Arnito
Bitte warten ..
Mitglied: sebele
08.08.2007 um 15:27 Uhr
GetObject liefert eine bestehende Explorerinstanz zurück. Normalerweise die mit der höchsten Prozessid. Ist ein bischen unsicher, wenn mehrere instanzen offen sind.

http://www.vbarchiv.net/commands/GetObject.php">http://www.vbarchiv.net/commands/GetObject.php

Hier noch eine andere Variante:

http://www.xtremevbtalk.com/archive/index.php/t-247343.html">http://www.xtremevbtalk.com/archive/index.php/t-247343.html

Damit geht man durch alle offenen Instanzen durch, schaut ob es ein IE ist. Da kann man sich prima reinhängen und auch gleich nachschauen ob es das richtige Dokument ist.
Bitte warten ..
Mitglied: arnito
08.08.2007 um 15:39 Uhr
Hallo Sebele,
da komme ich der Sache doch näher, vor allem wenn da etwas Beispielcode dabei ist, an dem man sich entlanghangeln kann. Vielen Dank schonmal!

Arnito
Bitte warten ..
Mitglied: arnito
09.08.2007 um 13:37 Uhr
Hallo,
mir scheint die zweite Varinate das richtige zu sein allerding kann ich mit folgendem Satz nicht viel anfangen:
"This requires a reference to Microsoft Internet Controls and to Microsoft Shell Controls and Automation. You can also choose to not add the references, but then replace the variable declarations with As Object." Deswegen klappt es warscheinlich auch nicht.

Zum Probieren habe ich in der Zwischenzeit mal folgendes mit einem durch das script selbst geöffnetem Fenster probiert:

Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate2 "http://becks.aknh.de/test.doc"
IE.Visible = True

Das öffnet mir wie gewünscht test.doc im IE was mir aber nicht gelingt ist diese eingebettete wordinstanz mit vb befehlen anzusprechen, also in dem Dokument Text einzufügen etc., geht das überhaupt?

Vielen Dank

Arnito
Bitte warten ..
Mitglied: sebele
09.08.2007 um 14:14 Uhr
Das Beispiel is schon ganz gut, du musst nur warten bis die Seite auch fertig geladen ist. Siehe unten

Dim d as HTMLDocument
Dim IE
Set IE = CreateObject("InternetExplorer.Application")

IE.Navigate2 "http://becks.aknh.de/test.doc"
Dim d As HTMLDocument
While (IE.readyState <> 4)
'Warten bis das Document geladen ist
Wend
IE.Visible = True
Set d = IE.document

bei mir ist es allerdings so, dass sich Word anschließend öffnet. Ich würde also jetzt dann hergehen und die offene Wordinstanz mit GetObjekt einfangen.

Um eine bessere syntaxunterstützung zu bekommen, solltest du auf alle Fälle die Verweise
Mircosoft HTML Obejct Library
Microsoft Internet Controls
und
Mircosoft Word 1.0 Object Library
in das Projekt als verweis einbinden.

Ich hoffe das hilft soweit, bin nämlich die nächste vier Wochen in Urlaub.

Gruss
Bitte warten ..
Mitglied: arnito
09.08.2007 um 14:32 Uhr
Hallo,
das probier ich gleich mal und werd mich da schon irgenwie durchhangeln. Vielen Dank und einen schönen Urlaub!

Arnito
Bitte warten ..
Mitglied: sebele
09.08.2007 um 14:43 Uhr
Ich habe bei einem anderen Projekt mal nachgeschaut, wie das Problem dort gelöst wurde. Den Quelltext darf ich nicht weitergeben, aber da wird folgendes gemacht:
Die IE.-Instanz holt das betreffende Dokument und speichert es lokal zwischen. Anschließend wird es mit der dazu passenden Applikation wieder geöffnet.

Hoffe das hilft noch ein bischen mehr.
Bitte warten ..
Ähnliche Inhalte
Erkennung und -Abwehr
Code ohne Macros in Word ausführen! (1)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Microsoft Office
gelöst Standard Ansicht Word Navigationsleiste (9)

Frage von leofabian zum Thema Microsoft Office ...

Visual Studio
Vb.net Datenfelder aus Word 2003 Dokument auslesen (3)

Frage von Herbrich19 zum Thema Visual Studio ...

PHP
WebShop direkt in PHP aufrufen ohne Webserver (9)

Frage von StefanKittel zum Thema PHP ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (31)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Windows Netzwerk
Netzwerk Neustrukturierung (15)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...