Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

VBScript vs. JavaScript





Frage

Hallo Leute, mit VBScript kann man sehr einfach auf Wordbefehle zugreifen. z.B. kann man ja mit Hilfe von VBScript in Worddateien auf Textmarken zugreifen. Kann man das auch mit JavaScript. Also, kann man mit JavaScript auch auf Office-Produkte zugreifen. Für Eure Antworten bedanke ich mich jetzt schonmal! Gruß

Antwort 1 von rfb

nein, JavaScript hat allein Zugriff auf die Elemente einer Seite, die im Browser geladen ist (diese Seite könnte natürlich ein Office-Produkt sein ;-)
sowie auf bestimmte Objekte, die ein Browser zur Verfügung stellt.

JavaScript hat keinen Zugriff auf
- andere Programme
- Dateien

Antwort 2 von joe778

Hallo rfb,

ich danke Dir. Das ist eeeecht schade.

Ich habe mit VB auf Worddateien schreiben können. Dasselbe wollte ich mit JavaScript machen.

Echt schade.

Ich danke Dir für deine Antwort.

Viel Spaß noch.

Gruß

Antwort 3 von rfb

Zitat:
Das ist eeeecht schade.
aber sicherer ist es auch.
Die Vorstellung, ein JavaScript auf irgendeiner Website könnte in meinen Officeanwendungen (oder sonstwo auf meinem Rechner) rumspielen, ist nicht angenehm.

Antwort 4 von joe778

jo,

da hast Du auch recht. Ich stimme Dir zu.

Sorry, war doch ein unüberlegter Gedanke von mir.

Danke Dir.

Gruß

Antwort 5 von Q13

mit jscript kannst das gleiche machen wie mit vbs
http://en.wikipedia.org/wiki/JScript

Antwort 6 von Proggi

abgesehen davon kann man VBScript auch in Webseiten einbinden, und es kann trotzdem nicht auf die Worddokumente zugreifen.

was du meintest ist VBA (was etwas andere funktionen hat als reines VBS in Webseiten)

VBA = Visual Basic for Applications (also Word/Excel...)
VBS = Visual Basic Script (also für in HTML-Dateien)

Die programmiersprachen sind vom aufbau fast gleich jedoch gibt es bei VBS kein "Application" Object wie bei VBA um auf die übergreifende Anwendung zuzugreifen.
VBA kann (Wenn scripte in Dokumenten erlaubt sind) uneingeschränkt auf alle Dokumente der Festplatte zugreifen auf die auch der Benutzer zugriff hat, das ist von einer Webseite her mit VBS nicht möglich, außer du hast deine Sicherheitseinstellungen auf sehr niedrig stehen. In dem Fall kann auch Javascript alle Dateien auf der Fesptlatte Löschen/Ändern die der benutzer ändern könnte (jedoch nicht auf die art wie du in Word auf textmarken zugreifst).

Antwort 7 von Q13

Zitat:
abgesehen davon kann man VBScript auch in Webseiten einbinden, und es kann trotzdem nicht auf die Worddokumente zugreifen.

Sicher kann es!

Zitat:
Die programmiersprachen sind vom aufbau fast gleich jedoch gibt es bei VBS kein "Application" Object wie bei VBA um auf die übergreifende Anwendung zuzugreifen.

Sicher gibt es!

Zitat:
In dem Fall kann auch Javascript alle Dateien auf der Fesptlatte Löschen/Ändern die der benutzer ändern könnte

Kann es nicht. Du meinst JScript.

Antwort 8 von rfb

vielleicht sollte in diesem Expertenstreit erwähnt werden: die Browser unterstützen nur JavaScript-Einbindung auf Webseiten - außer dem IE.

Wenn also die Webseiten nicht gerade nur in einem Intranet mit definierter Umgebung laufen sollen sind alle in den obigen Antworten erwähnten Scriptsprachen - außer JavaScript - unbrauchbar.

Antwort 9 von Q13

Zitat:
Wenn also die Webseiten nicht gerade nur in einem Intranet mit definierter Umgebung laufen sollen sind alle in den obigen Antworten erwähnten Scriptsprachen - außer JavaScript - unbrauchbar.

Intranet wäre aber eben auch die einzig sinnvolle Anwendung dafür. Wobei das Wort Webseite aus joe778s Feder bisher noch nicht explizit gefallen ist. Bisher ist das nur eine Annahme, weil er "Javascript" gesagt hat. Könnte genausogut der WSH oder eine HTA sein.

Antwort 10 von joe778

Hallo Leute,

erstmal danke für Eure Diskussionsbeiträge.

Also, vielleicht gibt es ja jemanden, der mir Helfen kann.

Ich wiederhole meine Aufgabe:

Ich muss mit JavaScript auf Word zugreifen und Textmarken belegen.

Mit VBA geht es, hier der Code:

Set oWord = CreateObject ("Word.Application")
Set MyDoc = oWord.Documents.Open"d:\Daten\Kopie_TEST.doc")

If MyDoc.Bookmarks.Exists("Dokumentenbezeichnung") Then
MyDoc.Bookmarks("Dokumentenbezeichnung").Range.Text = dokubez
End If
MyDoc.Save()
MyDoc.Close()




Jetzt möchte ich dasselbe mit JavaScript machen. Nicht über das Internet. Sonder local auf meinem Rechner. Ich habe es nichtmal gebacken bekommen, auf das Worddokument zugreifen. Denn es wird kein ActiveXautomation unterstützt, bekomme ich als Fehler. Nun versuche ich es über OLE, aber da weiß ich nun auch nicht, wie ich das machen soll.

Danke jetzt schonmal für Eure Hilfestellung!

Viele Grüße

Antwort 11 von rfb

Zitat:
Ich wiederhole meine Aufgabe:

Ich muss mit JavaScript auf Word zugreifen und Textmarken belegen.
und ich wiederhole die Antwort: geht nicht! Nicht mit JavaScript!
Höchstens mit einer der o.g. ähnlichen Scriptsprachen.

Antwort 12 von Q13

Zitat:
Nicht über das Internet. Sonder local auf meinem Rechner.

Da gibt es drei Möglichkeiten: Innerhalb einer normalen Webseite (da gibt es ein Rechteproblem, solange Du nicht in der Arbeitsplatzzone mit den Sicherheitseinstellungen tief runter gehst [ausserdem musst Du die Arbeitsplatzzone zum Editieren der Sicherheitseinstellungen auch erstmal in der Registry freischalten]) oder mit einer JS-Datei, die vom WSH ausgeführt wird, oder mit einer HTA-Datei.
Ich würde WSH oder HTA empfehlen, da sollte es bei createobject("Word.Application") keine Rechteprobleme geben. Was Du nimmst hängt davon ab, ob Du eine Benutzeroberfläche während des Ablaufs brauchst. Dann wäre die HTA erste Wahl. Eine simple HTA bekommst Du einfach durch Umbenennen von *.htm nach *.hta.
Strenggenommen ist das natürlich nicht Javascript, wie Du immer sagst, sondern JScript, aber das kratzt den IE am allerwenigsten. ;-)
Wenn ich später Zeit habe poste ich vielleicht noch den Code oder wenigstens Codeschnipsel für HTA oder JS.

Antwort 13 von Q13

Zitat:
da sollte es bei createobject("Word.Application") keine Rechteprobleme geben.

.. aber ein Syntaxproblem. ;-) Bei JS müsste das Gleiche so aussehen:
var word=new ActiveXObject("Word.Application");


Antwort 14 von joe778

Hallo,

nun, so wie ich es verstanden habe, gibt es doch einen Unterschied zwischen JavaScript und JScript.

@rfb:
Ich glaube Dir. Ich wusste halt nicht, dass es einen Unterschied zwischen den beiden Sprachen gibt.

Ich muss in "JavaScript" auf Word zugreifen :-)

Und Du hast mir nun geantwortet.


@Q13:

Dein Codeschnippsel:
var word=new ActiveXObject("Word.Application");

hab ich auch, ich bekomme einen Fehler (ActiveXObject ist not defined).

Deshalb bin ich nicht in der Lage, auf Word zu zugreifen.

Ich habe aber bei Google "JCOM" gefunden, womit ich auch Office-Produkte zugreifen kann. Ist aber Java-Basiert. Keine Ahnung, ob ich es in JavaScript auch anwenden kann. Dabei gibt es eine jar und eine .dll datei. Diese müssen irgendwie, irgendwo abgelegt werden.-->Das ist aber ein anderes Thema

Also, hoffentlich verursache ich hier niemandem Stress, und wenn es so ist, dann entschuldige ich mich.

Viele Grüße

joe778

Antwort 15 von joe778

ja und noch was,

der Titel dieses Themas ist falsch, er sollte heißen:

VBA vs. JavaScript.

Sprich, ich hatte in VBA (Visual Basic for Application) den Wordzugriff programmiert.

sorry

Antwort 16 von Q13

Grosse babylonische Sprachverwirrung!!!!!!! ;-)
Mittlerweile frage ich mich, warum Du J(ava)Script benutzen willst. Es gibt ja auch noch VBScript, welches Du offensichtlich mit VBA verwechselt hast. VBScript und JScript unterscheiden sich fast nur in der Syntax. Was die Möglichkeiten angeht, auf ActiveX-Objekte zuzugreifen, sind sie identisch. Wenn Du VBA benutzt, wirst Du wohl aufgrund der Syntax mit VBScript besser als mit JScript zurechtkommen.

Zitat:
Dein Codeschnippsel:
var word=new ActiveXObject("Word.Application");

hab ich auch, ich bekomme einen Fehler (ActiveXObject ist not defined).

Komisch. Sag mal genauer was, Du gemacht hast. Wie heisst die Dateiendung? Wie hast Du gestartet? In einer JS-Datei funktioniert diese Codezeile bei mir:
var excel=new ActiveXObject("Excel.Application");

Word habe ich nicht installiert, kann ich also nicht testen. Aber es sollte eigentlich genauso funktionieren.
Die VBS-Version der Codezeile wäre übrigens identisch mit VBA (Dateiendung *.vbs):
set word=createobject("Word.Application")


Antwort 17 von Q13

Zitat:
der Titel dieses Themas ist falsch, er sollte heißen:

VBA vs. JavaScript.

Oder besser: "VBS vs. VBScript oder J(ava)Script" ;-)

Antwort 18 von Q13

Korrektur:
Oder besser: "VBA vs. VBScript oder J(ava)Script" ;-)

Antwort 19 von joe778

Hallo,

was ich maches ist folgendes:

es gibt das Tool Aris7 (Business Architect). Dort wird die Scriptsprache "javascript" verwendet. Und hiermit muss ich meine Aufgabe (word ...) erledigen.

Ich habe keine andere Alternative. Ich muss leider mit javascript auf die word zugreifen.

Ich danke Euch allen für Eure Beiträge. Finde ich super stark von Euch.

gruß

joe778

Antwort 20 von Q13

Zitat:
es gibt das Tool Aris7 (Business Architect). Dort wird die Scriptsprache "javascript" verwendet.

Hättest Du auch mal früher erwähnen können. ;-) Jetzt kommts halt drauf an, ob dieses Javascript mit Jscript identisch ist. Könnte mir vorstellen, dass dieses Tool die Sprache nicht selbst interpretiert und ausführt, sondern dafür den WSH (=>JScript) benutzt. Musst Du Dich informieren.
Falls Aris7 auch externe Programme starten kann, könntest Du auch auf diese Art ein WSH-Script starten.