Verwenden eines JSL-Skripts zum Exportieren von Diagrammen nach PowerPointHallo zusammen,
Versuchen Sie hier, sich Gedanken zu machen und herauszufinden, was der beste Weg für diese Idee wäre.
Die Idee besteht darin, alle Grafiken/Plots aus einem Skript übernehmen und in Powerpoint übertragen zu können. Ich möchte dies anpassen, um Diagramme auf die Folie ziehen und sie zusammen mit dem Text außerhalb von Powerpoint positionieren und dann an Powerpoint übertragen zu können.
Ich habe gerade den ersten Teil grob fertig. Mit dem Application Builder konnte ich eine App erstellen, die den Benutzer zur Eingabe eines Skripts auffordert, das Skript ausführt, alle im Skript geöffneten Fenster abruft und sie in eine Liste einfügt, in der der Benutzer auswählen kann, welche Diagramme geöffnet werden sollen zu PPT.
Danach habe ich ein VBscript, das aufgerufen wird, sobald der Benutzer eine Vorlage auswählt. Jedes in HTML gespeicherte Diagramm erstellt einen GFX-Ordner mit dem Inhalt dieses Diagramms, und das VB-Skript erfasst den Inhalt dieses GFX-Ordners und übergibt ihn an PowerPoint.
Es ist sehr grob, ein Diagramm pro Folie, der Benutzer muss in Powerpoint Text hinzufügen.
Meine Frage ist, ob Sie denken, dass dies die richtige Richtung ist. Ich habe gestern mit einigen Leuten bei JMP gesprochen und sie haben erwähnt, dass ein weiterer zu prüfender Weg die Verwendung von R ist. Ich habe keine Erfahrung mit R, aber wenn es ein besserer/effizienterer Weg ist, würde ich es mir ansehen.
Um meine aktuelle Arbeit zu erweitern, könnte ich dem Benutzer vielleicht einfach die Möglichkeit geben, auszuwählen, in welchem Teil der PowerPoint-Präsentation das Diagramm zusammen mit dem Text platziert werden soll. Aber ich wäre mir nicht sicher, wie ich das an das VB-Skript übergeben soll.
Vielen Dank im Voraus für jede Hilfe oder Idee. Alles ist willkommen.
-Matt
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPoint<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ok, ich habe es für mich selbst getan, hier bist du
Dies sind einzelne Module. Fügen Sie sie in eine größere Schleife ein oder verwenden Sie sie nach Belieben (und verzeihen Sie mir mein Englisch ...)
*Aus jmp exportieren – Bild
Generieren Sie Ihr Diagramm wie gewohnt und erstellen Sie einen Verweis darauf (z. B
graph_reference = datatable <
Anschließend speichern Sie das Bild wie gewohnt
graph_reference <
*Export aus JMP – Text
Fügen Sie einfach zu Testzwecken etwas in Ihre Variablen ein. Der eigentliche Nutzen besteht darin, dass sie die Informationen enthalten, die Sie exportieren müssen
string_tained_title1 = "erste Zeile";
string_tained_title2 = "\!Nzweite Zeile";
Textdatei speichern("titles.txt",string_tained_title1, mode ("replace"));
Textdatei speichern("titles.txt",string_tained_title2, mode ("append"));
Und da Sie nun über Bilder und Text verfügen, können Sie diese direkt in Powerpoint importieren (achten Sie auf das Format .pptm, die Sicherheit der Makros und so weiter ...)
Dies ist der VBA-Code, der ein Bild importiert und platziert
' Definitionsvariablenfolien
oSlide als Folie dimmen
Dim numero As Integer
Dimmen Sie das Bild als Form
'Definitionsvariablenbilder
Dim ImgFolder As String: ImgFolder = „C:\Users\john_ronald_reuel\Documents\toy_box\pet01\test_im\“
Dim piazza1 als String
Dimmen Sie Datei1 als Zeichenfolge
'-Wert wurde zu Testzwecken festgelegt. Für den tatsächlichen Gebrauch erstellen Sie einen Zyklus, um sie zu definieren. Hier haben wir 5831_pie.jpg in Folie 02 eingefügt
file1 = "5831_pie.jpg"
Zahl = 2
' Vollständigen Pfad für Bilddateien erstellen
piazza1 = (ImgFolder & file1)
' Folie 02 als aktiv setzen
Setze oSlide = ActiveWindow.Presentation.Slides(numero)
' Bild platzieren, kein Link, mit Speichern, bei den Koordinaten 10,10 von oben links, keine Neuskalierung
Setze oPicture = oSlide.Shapes.AddPicture(piazza1, msoFalse, msoTrue, 10, 10)
' Bearbeiten: Verwenden Sie Zuschneiden und andere zum Zuschneiden, Platzieren oder Neuskalieren.
Mit ActivePresentation.PageSetup
oPicture.PictureFormat.CropBottom = 30
oPicture.Height = 450
oPicture.Left = 450
Ende mit
Anmerkungen dazu:
*Sie können mit diesem Code einen relativen Pfad verwenden -> ImgFolder = ActivePresentation.Path & "\output\"
*Die Bildbearbeitung ist sequentiell und mag keine negativen Zahlen: Wenn Sie 40 zuschneiden und bei 10 enden möchten, können Sie nicht bei -30 beginnen und zuschneiden und stoppen, sondern müssen bei 10 beginnen, zuschneiden und dann nach der Verwendung links (oder oben). )
*piazza und numero werden verwendet, um sicherzustellen, dass der Code nicht fest verdrahtet ist, sondern dass es sich um ein einzelnes Modul handelt. Verwenden Sie besser einen Kreis und ein Array, um Bildnamen und Foliennummern zu speichern
und hier ist der Code zum Laden der aus JMP exportierten Informationen und zum Einfügen in ein Array. Jede Zeile geht an ein Element des Arrays
'Definitionsvariablen für Cicle
Dim ilivelli als Ganzzahl
Dim i als Ganzzahl
Temperatur als String dimmen
'Definitionsvariablen für Textdatei
Indexordner als String dimmen
Dim ImgFolder als String
Dimmen Sie sFileName als String
Dimmen Sie iFileNum als Ganzzahl
'Definitionsordner
indexfolder = "C:\Users\john_ronald_reuel\Documents\toy_box\pet01\config\"
'Definition dynamisches Array, enthält die Zeilen der Textdatei
Dimmen Sie sparam() als String
„Dimensionieren Sie es groß.“
ReDim sparam(75) als String
'Dateinamen definieren
sFileName = Indexordner & „levels_DD.txt“
'Lade die Datei
iFileNum = FreeFile()
Öffnen Sie sFileName zur Eingabe als iFileNum
Führen Sie EOF aus: Laden Sie die Zeile i-eth, legen Sie sie in temp ab, weisen Sie sie dann dem i-eth-Element des Arrays zu und aktualisieren Sie dann die Ganzzahl ilivelli
ich = 1
Tun, ohne EOF(iFileNum)
Zeileneingabe #iFileNum, temp
sparam(i) = CStr(temp)
ilivelli = ich
ich = ich + 1
Schleife
'Dimensionieren Sie das Array auf die richtige Zeilenanzahl neu, ohne es zu löschen
ReDim Preserve sparam(ilivelli)
'Schließen Sie die Originaldatei
Schließen Sie iFileNum
Das funktioniert bei mir, ich hoffe, es hilft!
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPointNur zur Information für alle, die es lesen: Das Predictum-Add-In stürzt mit Powerpoint 2007 ab, obwohl es die Datei erstellt.
Außerdem scheinen die JSL-Skripte verschlüsselt zu sein und rufen eine separate Exe-Datei auf, um den Powerpoint zu erstellen.
Mit anderen Worten, dieser Weg ist verschlossen (zumindest für mich), ich werde den VBA-Skript-Weg gehen
Dank an alle
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPointIch bin mir ziemlich sicher, dass es eine Möglichkeit gibt, dies zu tun, und es sollte einfacher sein, als in eine Textdatei zu schreiben. VBA hat viele Verbindungen zu JMP. Wenn Sie JMP auf Ihrem Computer installiert haben, gehen Sie zu VBA-Editor > Extras > Referenzen... und Sie sollten eine lange Liste auswählbarer Anwendungen sehen, die Sie als Referenzen verwenden können. Suchen Sie nach „JMP“ und klicken Sie auf das Kästchen. Jetzt verfügen Sie über eine integrierte Befehlsbibliothek, die Sie an JMP senden können. Auf diese Weise können Sie JMP grundsätzlich aus VBA heraus skripten.
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPointDanke für alle Infos m477. Ich wollte, dass dies in JMP enthalten bleibt. Erstellen Sie einfach ein Add-In, das ich auf jedem Computer mit JMP installieren und ausführen kann. Das ist nicht ganz in Stein gemeißelt. Wenn diese Option also völlig daneben liegt, kann ich mit VBA arbeiten.
Das aktuelle Add-In, das ich in JMP erstellt habe, erfasst alle geöffneten Plots und fügt die ausgewählten einem Ordner hinzu. Ich habe also einen Ordner mit allen Plots, die ich in PPT übernehmen möchte. Der nächste Schritt, den ich suche, ist eine Form der Individualisierung. Innerhalb des JMP-Add-Ins möchte ich den Benutzer nach Folieneigenschaften fragen, einschließlich der Anzahl der Diagramme pro Folie, dem Titel der Folie, zusätzlichem Text und den Positionen von Folien/Text.
Meine aktuelle Idee besteht darin, dies alles in JMP abzufragen, alle Folieneigenschaften zu erfassen und sie dann an ein VBA-Makro zu übergeben, damit es die jeweiligen Folieneigenschaften ausführen kann.
Ist es möglich, Parameter von JMP an das Makro zu übergeben? Speichern Sie die Folienparameter möglicherweise in einer Art Textdatei
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPointEDIT: Sie müssten auch die Unterroutine AddSlides schreiben
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPointHaben Sie einen wirklich guten Grund, warum Sie nicht aus PowerPoint heraus ausführen möchten?
Mein Vorschlag wäre, Ihre JMP-Anwendung zu schreiben, sie die Analyse durchführen zu lassen, die gewünschten Diagramme zu generieren und diese als Bilder zu speichern, völlig unabhängig von der Präsentation, die Sie erstellen möchten. Schreiben Sie dann ein Makro in PowerPoint, das zunächst Ihr JMP-Skript zur Ausführung aufruft und dann die erstellten Bilder aus dem angegebenen Ordner abruft.
Ich sage das, weil die Formatierung in PowerPoint in VBA ein Kinderspiel ist (so ziemlich das Einzige, was in VBA einfach ist), weil es viele integrierte Methoden und viele Online-Beispiele für deren Verwendung gibt.
Die Unterroutine zum Aufrufen von JMP aus Powerpoint würde wie folgt aussehen:
Öffentlicher Sub RunJSL()
Setze MyJMP = CreateObject("JMP.Application")
MyJMP.Visible = True
MyJMP.RunJSLFile („C:\.jsl“)
End Sub
Dann schreiben Sie eine weitere VBA-Unterroutine, die RunJSL aufruft, dann in einem bestimmten Ordner nachschaut und für jedes Bild in diesem Ordner eine Folie hinzufügt, mit der Sie machen können, was Sie wollen, z. B.:
Öffentliches Sub MakePics()
oSlide als Folie dimmen
Dimmen Sie das Bild als Form
Dimmen Sie oTitel als Form
Dim ImgFldr als String: ImgFldr = "$Documents\Plot Images"
Dimmen Sie CurrentFile als String
ich = 1
Rufen Sie RunJSL auf
CurrentFile = Dir(ImgFldr & "\")
Do While CurrentFile <> ""
Rufen Sie AddSlides(CurrentFile) auf.
//Neue Folie mit neuem Bild formatieren, zentrieren, skalieren, Titel hinzufügen, was auch immer
ActiveWindow.View.GotoSlide i
CurrentFile = Dir()
ich = ich + 1
Schleife
End Sub
EDIT: Sie müssten auch die Unterroutine AddSlides schreiben
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPointWenn Sie VB-Skript verwenden, gehe ich davon aus, dass Sie sich bereits mit der OLE-Automatisierungsunterstützung in JMP befasst haben.Ich habe das noch nicht ausprobiert, aber vielleicht möchten Sie XML als Schnittstellenmechanismus verwenden – probieren Sie es aus Öffnen Sie das XML SDK.
Dave
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPointJa, ich habe mir ihre Lösung angesehen, aber im Grunde habe ich bereits getan, was sie getan haben. Jetzt möchte ich es so erweitern, dass ich Grafiken/Text auf der Folie platzieren kann, ohne Powerpoint zu öffnen.
Ich habe auch nach möglichen anderen Routen oder Lösungen gesucht, die anderen einfallen könnten.
Betreff: Wählen Sie Ihr Gehirn aus ... Skript zum Exportieren nach PowerPointPredictum verfügt über ein kostenloses Paket, das JMP-Ausgaben nach Powerpoint exportiert.http://predictum.com/