{"id":120,"date":"2018-02-16T08:00:05","date_gmt":"2018-02-16T07:00:05","guid":{"rendered":"https:\/\/development-by.schwarzer.de\/blog\/?p=120"},"modified":"2020-09-21T13:54:45","modified_gmt":"2020-09-21T11:54:45","slug":"microsoft-office-apps-powerpoint-javascript-api","status":"publish","type":"post","link":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/","title":{"rendered":"Microsoft Office Apps: Powerpoint und das Javascript API"},"content":{"rendered":"<p><!-- <ezTOC> -->Was tun, wenn die IT-Abteilung den Einsatz von <strong>ComAddIns<\/strong> zur Automation von <strong>Word<\/strong>, <strong>Excel<\/strong> und <strong>Powerpoint<\/strong> verweigert? Diese Frage stellten wir uns j\u00fcngst in einem Projekt. CI\/CD sollen mit Hilfe eines <strong>Powerpoint Toolkits<\/strong> an 25.700 Anwender ausgerollt werden. Word und Excel sollen sp\u00e4ter folgen. Unsere CI-Toolkits auf Basis von ComAddIns machen den Job mit Links bei \u00fcber 123.000 Anwendern, doch wenn die flei\u00dfigen Heinzelm\u00e4nnchen ihren Job nicht machen d\u00fcrfen, wird der Ruf nach einer tragf\u00e4higen Alternative laut. Wir haben den Microsoft Office Apps auf den Zahn gef\u00fchlt &#8211; <em>\u201eEvaluiert\u201c<\/em> haben wir die Br\u00fcder.<br \/>\n<!--more--><\/p>\n<h2>Microsoft Office Apps <br \/>f\u00fcr Word, Excel und Powerpoint<\/h2>\n<p>Nach unserer Exkursion in Microsofts Produktdschungel melden wir uns zur\u00fcck und haben erst mal das Bed\u00fcrfnis, in den Wildwuchs an Namen und Begriffen ein wenig Ordnung zu bringen, damit Sie mit Ihrem bereits vorhandenen Wissen besser andocken k\u00f6nnen.<\/p>\n<h2>Das JavaScript AddIn<\/h2>\n<p>Die <strong>Microsoft Office Apps<\/strong> nutzen das sogenannte <strong>JavaScript AddIn<\/strong>. Das JavaScript AddIn wird in den Dokumentationen von Microsoft mit verschiedenen Namen gerufen. Es h\u00f6rt auf<\/p>\n<ol>\n<li>Office-JS<\/li>\n<li>Office Javascript<\/li>\n<li>Apps for Office<\/li>\n<li>Office Add-In<\/li>\n<\/ol>\n<p>Gemeint ist aber immer das Gleiche. Wir werden hier einheitlich von den <strong>Apps for Office<\/strong> sprechen.<\/p>\n<h2>Office 365, Office Online und Office Desktop<\/h2>\n<p>Auch bei den Microsoft Office Produkten gibt es eine ganze Reihe von Kandidaten, auf die immer wieder Bezug genommen wird.<\/p>\n<ul>\n<li>Microsoft Office 365<\/li>\n<li>Microsoft Office Online<\/li>\n<li>Microsoft Office Desktop<\/li>\n<\/ul>\n<h3>Microsoft Office 365<\/h3>\n<p><strong>Microsoft Office 365<\/strong> ist ein Online-Produkt und es besitzt ein kostenpflichtiges Lizenzmodell. Es beinhaltet Microsoft Office Online.<br \/>\nMehr Informationen zu Microsoft Office 365 findet man hier:<br \/>\nhttps:\/\/de.wikipedia.org\/wiki\/Microsoft_Office_365<\/p>\n<h3>Microsoft Office Online<\/h3>\n<p><strong>Microsoft Office Online<\/strong> ist ein kostenfreies Produkt. Es ist in Microsoft Office 365 enthalten.<\/p>\n<h3>Microsoft Office Desktop<\/h3>\n<p>Mit <strong>Microsoft Office Desktop<\/strong> bezeichnet man den Klassiker, wie wir alle ihn auf unserem PC und Schlepptop kennen. Microsoft schreibt, dass alles, was in Microsoft Office auf dem Desktop unterst\u00fctzt wird, auch online unterst\u00fctzt wird. Das soll zumindest f\u00fcr die 2016er Version gelten. Na, das ist doch schon mal was.<\/p>\n<h2>Das API in den Microsoft Office Produkten<\/h2>\n<p>Die Anwendungsentwicklung w\u00e4re ja so einfach, wenn ein Standard sich durch alle Office-Produkte und ihre Versionen durchziehen w\u00fcrde. Es w\u00e4re ein Traum! Wir entwickeln CI\/CD-Toolkits f\u00fcr Microsoft Office seit dem Jahr 2000 und wir haben die Hoffnung noch nicht aufgegeben, dass Microsoft uns unseren Wunsch dereinst erf\u00fcllen wird.<\/p>\n<h3>Das Microsoft Word Javascript API<\/h3>\n<p>Das <strong>Microsoft Word Javascript API<\/strong> ist mit <strong>Microsoft Office 2016<\/strong> verf\u00fcgbar. Bislang kennen Sie sicher bereits das <strong>VBA\/.Net-API<\/strong>. Wir haben uns vor Jahren mit ihm angefreundet und entlocken mit seiner Hilfe dem Microsoft Office Paket immer wieder Kunstst\u00fcckchen, die man dem angegrauten Package nie zutrauen w\u00fcrde. Jetzt w\u00e4re es nat\u00fcrlich sch\u00f6n, wenn Microsoft z.B. in der <strong>Word Javascript API<\/strong> einfach die bisher verf\u00fcgbare VBA\/.Net-API nachbilden w\u00fcrde. <\/p>\n<p>Um es in der Sprache der Generation Y auszudr\u00fccken\u2026<br \/>\nWir so: <strong>\u201eNa, w\u00e4r doch toll\u201c<\/strong>\u2026 Microsoft dann so: <strong>\u201eN\u00f6!\u201c<\/strong><\/p>\n<p>In Ans\u00e4tzen gibt das neue JavaScript API schon einiges her, was wir von fr\u00fcher kennen und auch hier erwartet haben. Leider aber nicht alles. Es ist unvollst\u00e4ndig. Offenbar kam der Rollout-Termin zu schnell.<\/p>\n<p>Wer mehr im Detail nachlesen m\u00f6chte, kann dies hier tun:<br \/>\n<a href=\"https:\/\/dev.office.com\/reference\/add-ins\/word\/word-add-ins-reference-overview\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/dev.office.com\/reference\/add-ins\/word\/word-add-ins-reference-overview<\/a><\/p>\n<h3> Das Microsoft Excel Javascript API <\/h3>\n<p>Zum Microsoft Word Javascript API haben wir gerade ein paar Worte verloren. Das <strong>Microsoft Excel Javascript API<\/strong> hat mit seinem Word-Geschwister vieles gemeinsam, leider nicht alles. Gemein haben beide, dass sie erst ab Microsoft Office 2016 verf\u00fcgbar sind. Nicht gemein hat das Excel-Geschwister den Abbildungs-Umfang des bekannten VBA\/.Net-API des Word-API. Es ist schlichtweg weniger. Damit steht auch fest, dass man in Microsoft Excel Apps sehr viel weniger abbilden kann, als man es \u00fcber VBA \/ ComAddIns gewohnt war. <\/p>\n<p>Das sollte uns nicht abschrecken. Es bleibt zu hoffen, dass da noch ein wenig in Folgeversionen nachgelegt wird. Es wird ja sicher nicht nur uns aufgefallen sein.<\/p>\n<p>Wer mehr im Detail nachlesen m\u00f6chte, kann dies hier tun:<br \/>\n<a href=\"https:\/\/dev.office.com\/reference\/add-ins\/excel\/excel-add-ins-reference-overview\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/dev.office.com\/reference\/add-ins\/excel\/excel-add-ins-reference-overview<\/a><\/p>\n<h3> Das Microsoft Powerpoint Javascript API <\/h3>\n<p>Wer bei dem Microsoft Javascript API f\u00fcr Word und Excel bereits mit schmerzverzerrtem Gesicht aufgeschrieen hat, der sollte sich eines zufriedenen L\u00e4chelns beflei\u00dfigen, denn wirklich schlimm dran sind WIR, die wir uns im oben angesprochenen Projekt mit Microsoft Powerpoint befassen d\u00fcrfen.<\/p>\n<p>Das <strong>Microsoft Powerpoint Javascript API<\/strong>\u2026 \u00c4hem\u2026 das gibt\u2019s leider nicht. (Stand: 12.02.2018)<\/p>\n<p>Man f\u00fchlt sich an die bekannte Fehlermeldung von Microsoft Sharepoint erinnert, die da lautet <em>\u201eLeider das hat nicht geklappt!\u201c<\/em><\/p>\n<p>Hier w\u00fcrden wir eigentlich gerne einen Link zu einer Microsoft Seite geben, aber wo nix ist, wird auch nix dr\u00fcber geschrieben. Die Kollegen auf <strong>StackOverflow<\/strong> haben sich allerdings ein wenig dar\u00fcber ausgelassen. Bitte sehr. Hier geht\u2019s lang.<br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/42060429\/powerpoint-command-like-insert-slide-or-apply-theme-equivalent-on-office-javascr\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/stackoverflow.com\/questions\/42060429\/powerpoint-command-like-insert-slide-or-apply-theme-equivalent-on-office-javascr<\/a><\/p>\n<h3>Die Rettung? Shared API, JavaScript API for Office (Office.js)<\/h3>\n<p>Die <strong>allgemeine API<\/strong> k\u00f6nnte ja auch etwas Unterst\u00fctzung beisteuern. Sie wurde in <strong>Microsoft Office 2013<\/strong> eingef\u00fchrt. Dar\u00fcber kann man bei Microsoft auch einiges Nachlesen (<a href=\"https:\/\/dev.office.com\/reference\/add-ins\/javascript-api-for-office\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/dev.office.com\/reference\/add-ins\/javascript-api-for-office<\/a>). Leider leistet die allgemeine API von Microsoft nicht so wirklich viel. Facebook und YouTube w\u00fcrden jetzt sagen <em>\u201eDas tut uns leid.\u201c<\/em>. Jedoch ist Microsoft nicht zu derlei Zugest\u00e4ndnissen bereit.<\/p>\n<p>Da die allgemeine API unter Microsoft Powerpoint die einzige Basis f\u00fcr die Entwicklung einer Microsoft Office App ist, m\u00fcssen wir uns zwangsl\u00e4ufig damit befassen. Tun wir auch. Kommt gleich. Oder um in der Sprache \u201eY\u201c zu bleiben: Microsoft so: <strong>\u201eN\u00f6\u201c<\/strong>. Wir dann so: <strong>\u201eDoch\u201c<\/strong>.<\/p>\n<figure id=\"attachment_127\" aria-describedby=\"caption-attachment-127\" style=\"width: 1320px\" class=\"wp-caption alignnone\"><img src=\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/Das-allgemeine-Microsoft-Javascript-API.jpg\" alt=\"Das allgemeine Microsoft Javascript API kommt ins Spiel, wenn kein spezifisches API verf\u00fcgbar ist. Doch was genau leistet das allgemeine Javascript API f\u00fcr unser Projektziel mit Microsoft Powerpoint? (#1)\" width=\"1320\" height=\"857\" class=\"size-full wp-image-127\" srcset=\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/Das-allgemeine-Microsoft-Javascript-API.jpg 1320w, https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/Das-allgemeine-Microsoft-Javascript-API-300x195.jpg 300w, https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/Das-allgemeine-Microsoft-Javascript-API-1024x665.jpg 1024w, https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/Das-allgemeine-Microsoft-Javascript-API-214x140.jpg 214w\" sizes=\"(max-width: 1320px) 100vw, 1320px\" \/><figcaption id=\"caption-attachment-127\" class=\"wp-caption-text\">Das allgemeine Microsoft Javascript API kommt ins Spiel, wenn kein spezifisches API verf\u00fcgbar ist. Doch was genau leistet das allgemeine Javascript API f\u00fcr unser Projektziel mit Microsoft Powerpoint? (#1)<\/figcaption><\/figure>\n<h2>Das allgemeine Microsoft Javascript API<\/h2>\n<p>Okay, wir haben uns den Kandidaten mal vorgekn\u00f6pft und aufs Unerbittlichste evaluiert. Was kann das <strong>allgemeine Microsoft Javascript API<\/strong> in einer Powerpoint-App leisten?<\/p>\n<p>Nachfolgend finden Sie unsere Ergebnisse. Kleine Anmerkung dazu? Wir haben nicht nur gelesen, wir haben auch gecodet. Unser Robert (das ist der Herr Preis mit dem Foto in der Marginalie) hat sich das angetan. Sein Kaffeeverbrauch ist gestiegen. Nicht so sehr wie bei mancher Sharepoint-Aufgabe (pro Schuchtung ben\u00f6tigt man zwei Kannen starken Kaffee) aber doch beachtlich.<\/p>\n<h3>#1 Lesen der Selektion<\/h3>\n<p>Die Selektion ist das, was unser Anwender gerade markiert hat. In Powerpoint kann das vielerlei sein, von Shape \u00fcber Text bis zu einem Platzhalter. In Word ist es etwas textlastiger, in Excel ein wenig numerischer. Je nachdem, in welcher Anwendung wir uns aufhalten, sind die Ergebnisse des Auslesens auch verschieden.<br \/>\nWer in die Details eintauchen m\u00f6chte, kann dies hier tun: <a href=\"https:\/\/dev.office.com\/reference\/add-ins\/shared\/coerciontype-enumeration\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/dev.office.com\/reference\/add-ins\/shared\/coerciontype-enumeration<\/a> . <\/p>\n<p>Microsoft nennt es so: PowerPoint supports only <\/p>\n<ul>\n<li>Office.CoercionType.Text,<\/li>\n<li>Office.CoercionType.Image and<\/li>\n<li>Office.CoercionType.SlideRange<\/li>\n<\/ul>\n<p>Was bei unseren Tests zuverl\u00e4ssig funktionierte, das war das Erhalten von Text, also der Stringrepr\u00e4sentation der selektierten Ojekte.<\/p>\n<h3>#2 Schreiben der Selektion<\/h3>\n<p>Unsere <strong>CI\/CD-Toolkits<\/strong> nehmen auch \u00c4nderungen in den Microsoft Office Dokumenten vor, in diesem Fall auch in der Powerpoint Pr\u00e4sentation. Das <strong>Zur\u00fcckschreiben in die Selektion<\/strong> ist ein wenig grobschl\u00e4chtig, da es ja stets den gesamten Selektionsinhalt betrifft. Da stellte sich unsereiner nat\u00fcrlich schon mal die Frage, wie denn unterschiedliche Objekte in der Selektion anzusprechen sein werden.<br \/>\nGl\u00fccklicherweise ist diese technische Detailfrage gar nicht relevant. Wir k\u00f6nnen ausschlie\u00dflich <\/p>\n<ul>\n<li>Text (<strong>Office.CoercionType.Text<\/strong>) oder ein<\/li>\n<li>Image (<strong>Office.CoercionType.Image<\/strong>)<\/li>\n<\/ul>\n<p>zur\u00fcckschreiben. Diese geschmackvolle Auswahl an Datentypen macht es deutlich: Wenn das Lesen der Selektion Objekte geliefert h\u00e4tte, w\u00fcrden wir sie definitiv NICHT zur\u00fcckschreiben k\u00f6nnen. <\/p>\n<p>Diese umwerfende Funktionsvielfalt ist bei Microsoft wohldokumentiert, n\u00e4mlich hier: <a href=\"https:\/\/dev.office.com\/reference\/add-ins\/shared\/document.setselecteddataasync\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/dev.office.com\/reference\/add-ins\/shared\/document.setselecteddataasync<\/a><\/p>\n<h3>Mehr erfahren\u2026<\/h3>\n<p>Wenn Sie jetzt darauf hoffen, an dieser Stelle ungeahnte Sch\u00e4tze bergen zu k\u00f6nnen, dann sagen wir es mal mit Microsoft: <strong>\u201eN\u00f6!\u201c<\/strong>. Wir (vor allem unser Robert) waren auch \u00fcberrascht bis irritiert. Text lesen und Text\/Image schreiben ist das, was geht. Wie es aussieht, kann Microsoft Word momentan am meisten, danach kommt Microsoft Excel und Microsoft Powerpoint kommt gar nicht.<\/p>\n<h3>Eigenschaften eines Image mit dem Microsoft Javascript API auslesen<\/h3>\n<p>Das sollte man vielleicht noch anmerken: Das Einf\u00fcgen eines Image kann in einen Platzhalter stattfinden oder unspezifisch als floating auf der aktuellen Folie. Jetzt w\u00e4re es nat\u00fcrlich traumhaft einige Minimalinformationen auslesen zu k\u00f6nnen, wie beispielsweise die Bildgr\u00f6\u00dfen. Aber auch das ist leider nicht m\u00f6glich. Aber zumindest kann man beim Einf\u00fcgen eines Bildes einige Daten an PowerPoint \u00fcbergeben.<\/p>\n<h3>Beispielcode f\u00fcr das Einsetzen eines Image in Powerpoint<\/h3>\n<figure id=\"attachment_138\" aria-describedby=\"caption-attachment-138\" style=\"width: 859px\" class=\"wp-caption alignnone\"><img src=\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/Infografik-Beispielcode-Office-App-Einfuegen-Grafik-Platzhalter.jpg\" alt=\"Infografik: Der Beispielcode l\u00e4sst mittels einer Microsoft Office App ein Image in einen Platzhalter einf\u00fcgen.\" width=\"859\" height=\"334\" class=\"size-full wp-image-138\" srcset=\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/Infografik-Beispielcode-Office-App-Einfuegen-Grafik-Platzhalter.jpg 859w, https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/Infografik-Beispielcode-Office-App-Einfuegen-Grafik-Platzhalter-300x117.jpg 300w\" sizes=\"(max-width: 859px) 100vw, 859px\" \/><figcaption id=\"caption-attachment-138\" class=\"wp-caption-text\">Infografik: Der Beispielcode l\u00e4sst mittels einer Microsoft Office App ein Image in einen Platzhalter einf\u00fcgen.<\/figcaption><\/figure>\n<h3>Die Microsoft Dialog API<\/h3>\n<p>Auch die Microsoft Dialog API ist dokumentiert: <a href=\"https:\/\/dev.office.com\/reference\/add-ins\/requirement-sets\/dialog-api-requirement-sets\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/dev.office.com\/reference\/add-ins\/requirement-sets\/dialog-api-requirement-sets<\/a>.<\/p>\n<h3>Das Microsoft Office Addin<\/h3>\n<p>Es gibt auch f\u00fcr das Microsoft Office Addin eine Dokumentation, auch zu den Anforderungen: <a href=\"https:\/\/dev.office.com\/reference\/add-ins\/requirement-sets\/office-add-in-requirement-sets\" rel=\"noopener noreferrer\" target=\"_blank\">https:\/\/dev.office.com\/reference\/add-ins\/requirement-sets\/office-add-in-requirement-sets<\/a>.<\/p>\n<h2>Was genau kann man sinnvolles \u00fcber eine Microsoft Office App entwickeln?<\/h2>\n<p>Kopf hoch! Wer die ersten Zeilen dieses Artikels gelesen hat, der k\u00f6nnte m\u00f6glicherweise etwas verstimmt oder deprimiert sein. Das muss aber gar nicht sein. Es gibt eine Reihe von Services, die man in einer Microsoft Powerpoint App unterbringen kann.<\/p>\n<h3>#1: Zugriff auf Bildbibliotheken<\/h3>\n<p>Die Powerpoint App verh\u00e4lt sich wie eine ganz normale Webseite. So kann man dort via eingegebenem Suchbegriff oder \u00fcber Klick ausgew\u00e4hlte Tags in Bild-Datenbanken Assets ausw\u00e4hlen und in die Powerpoint-Pr\u00e4sentation einf\u00fcgen.<\/p>\n<p>Der Code f\u00fcr all dies liegt in der als App eingebundenen Webseite \/ Web-Applikation, die auch auf einem internen Server liegen kann. Damit hat man alle Zugriffe nach au\u00dfen unter Kontrolle. Auch die sp\u00e4tere Weiterentwicklung und Pflege der Web-Applikation kann erfolgen, ohne an der Microsoft Powerpoint App \u00c4nderungen vornehmen zu m\u00fcssen, sofern die verabredete Schnittstellendefinition weiter eingehalten wird.<\/p>\n<h3>#2: Zugriff auf Datengeber<\/h3>\n<p>Textdaten k\u00f6nnen auch lecker schmecken. Dies k\u00f6nnen aktuelle Zahlenwerke aus der Organisation sein oder Textbausteine oder andere generierte Texte \u2013 oder auch schlicht der aktuelle Disclaimer.<\/p>\n<p>Hier liegt der Nutzen auf der Benutzung eines einheitlichen Datenrepository durch alle angeschlossenen Nutzer in der Organisation.<\/p>\n<h3>#3: Zugriff auf Datenbanken<\/h3>\n<p>Ja, da sind wir nerdige Entwickler voll in unserem Element. Datenbanken gehen auf dem per Powerpoint App angedockten Web-Applikation nat\u00fcrlich auf jeden Fall. Der Datenbankzugriff belastet auch nicht unsere Ressourcen auf dem System, auf dem die Microsoft Powerpoint App gerade l\u00e4uft. <\/p>\n<h2>Wie liefere ich eine Tabelle per Powerpoint App zur\u00fcck?<\/h2>\n<p>Wer eine Tabelle zur\u00fcckliefern m\u00f6chte, muss nicht verzweifeln. Das einfachste ist hier, die Tabelle gleich als CI\/CD-konforme Grafik aufzubereiten. Damit nimmt man dem Anwender auch die Arbeit ab, die Daten der Tabelle CI\/CD-konform auszubereiten.<\/p>\n<h2>Wie liefere ich ein Chart per Powerpoint App zur\u00fcck?<\/h2>\n<p>Das w\u00e4re die klassische Anwendung, mit der man aus einer Excelddatei oder einer anderen Quelle ein Chart in die aktuelle Powerpoint Pr\u00e4sentation einf\u00fcgen m\u00f6chte. Liegt die Quelle auf einem Server, welcher \u00fcber die Web-Applikation zugreifbar ist, dann empfiehlt es sich auch hier, direkt eine aufbereitete Grafik zur\u00fcckzuliefern. Das Chart wird sich dann nicht bei \u00c4nderung der zugrunde liegenden Daten aktualisieren, aber das nimmt man dann eben in Kauf.<\/p>\n<h2>Unser Fazit<\/h2>\n<p>Die Microsoft Office Apps sind in keiner Weise ein vollwertiger Ersatz f\u00fcr VBA bzw. ComAddIns. Dennoch kann es durchaus Sinn machen, eine Powerpoint App mit dem Minimal-Javascript-API aufzubauen.<\/p>\n<p>Im oben genannten Projekt haben wir uns dazu entschlossen, genau die hier genannten Einsatzm\u00f6glichkeiten vorzustellen.<\/p>\n<p>Es wird wie immer vom Einzelfall abh\u00e4ngen, aber da beraten wir gerne. Wenn Sie Fragen zum Microsoft Office Apps haben\u2026 Ich helfe Ihnen gerne weiter.<\/p>\n<p>Rufen Sie mich jetzt an: 06131 \/ 36 80 51<\/p>\n<p>Hans-J\u00fcrgen Schwarzer<\/p>\n<hr>\n<p>Bildnachweis: &copy; schwarzer.de Infografik, shutterstock &#8211; Titelbild CHEN WS, #1 Ev. Safronov<!-- <\/ezTOC> --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Was tun, wenn die IT-Abteilung den Einsatz von ComAddIns zur Automation von Word, Excel und Powerpoint verweigert? Diese Frage stellten [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":125,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"features_image":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/microsoft-office-apps-powerpoint-javascript-api.jpg","rk_cat":null,"rk_date":"16.02.2018","yoast_head":"<title>Microsoft Office Apps: Powerpoint und das Javascript API - development-by.schwarzer.de<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microsoft Office Apps: Powerpoint und das Javascript API - development-by.schwarzer.de\" \/>\n<meta property=\"og:description\" content=\"Was tun, wenn die IT-Abteilung den Einsatz von ComAddIns zur Automation von Word, Excel und Powerpoint verweigert? Diese Frage stellten [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/\" \/>\n<meta property=\"og:site_name\" content=\"development-by.schwarzer.de\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-16T07:00:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-21T11:54:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/microsoft-office-apps-powerpoint-javascript-api.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"335\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hans-J\u00fcrgen Schwarzer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#website\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/\",\"name\":\"development-by.schwarzer.de\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/development-by.schwarzer.de\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#primaryimage\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/microsoft-office-apps-powerpoint-javascript-api.jpg\",\"contentUrl\":\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/microsoft-office-apps-powerpoint-javascript-api.jpg\",\"width\":700,\"height\":335,\"caption\":\"Microsoft Office Apps: Powerpoint und das Javascript API\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#webpage\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/\",\"name\":\"Microsoft Office Apps: Powerpoint und das Javascript API - development-by.schwarzer.de\",\"isPartOf\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#primaryimage\"},\"datePublished\":\"2018-02-16T07:00:05+00:00\",\"dateModified\":\"2020-09-21T11:54:45+00:00\",\"author\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06\"},\"breadcrumb\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/development-by.schwarzer.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Microsoft Office Apps: Powerpoint und das Javascript API\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06\",\"name\":\"Hans-J\u00fcrgen Schwarzer\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#personlogo\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g\",\"caption\":\"Hans-J\u00fcrgen Schwarzer\"},\"description\":\"Hans-J\u00fcrgen Schwarzer leitet die Digital-Agentur schwarzer.de software + internet gmbh. Als Unternehmer und Verleger in Personalunion wie auch als leidenschaftlicher Blogger geh\u00f6rt er zu den Hauptautoren verschiedener Online-Magazine. Innerhalb seiner breiten Palette an Themen liegen dem Mainzer Lokalpatrioten dabei vermeintlich \u201eschr\u00e4ge\u201c Ideen und technische Novit\u00e4ten besonders am Herzen - Nerdstuff, wie es heute hei\u00dft.\",\"sameAs\":[\"http:\/\/www.schwarzer.de\"],\"url\":\"#\"}]}<\/script>","yoast_head_json":{"title":"Microsoft Office Apps: Powerpoint und das Javascript API - development-by.schwarzer.de","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/","og_locale":"de_DE","og_type":"article","og_title":"Microsoft Office Apps: Powerpoint und das Javascript API - development-by.schwarzer.de","og_description":"Was tun, wenn die IT-Abteilung den Einsatz von ComAddIns zur Automation von Word, Excel und Powerpoint verweigert? Diese Frage stellten [&hellip;]","og_url":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/","og_site_name":"development-by.schwarzer.de","article_published_time":"2018-02-16T07:00:05+00:00","article_modified_time":"2020-09-21T11:54:45+00:00","og_image":[{"width":700,"height":335,"url":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/microsoft-office-apps-powerpoint-javascript-api.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Hans-J\u00fcrgen Schwarzer","Gesch\u00e4tzte Lesezeit":"10 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/development-by.schwarzer.de\/blog\/#website","url":"https:\/\/development-by.schwarzer.de\/blog\/","name":"development-by.schwarzer.de","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/development-by.schwarzer.de\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":"ImageObject","@id":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#primaryimage","inLanguage":"de-DE","url":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/microsoft-office-apps-powerpoint-javascript-api.jpg","contentUrl":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2018\/02\/microsoft-office-apps-powerpoint-javascript-api.jpg","width":700,"height":335,"caption":"Microsoft Office Apps: Powerpoint und das Javascript API"},{"@type":"WebPage","@id":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#webpage","url":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/","name":"Microsoft Office Apps: Powerpoint und das Javascript API - development-by.schwarzer.de","isPartOf":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#primaryimage"},"datePublished":"2018-02-16T07:00:05+00:00","dateModified":"2020-09-21T11:54:45+00:00","author":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06"},"breadcrumb":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/development-by.schwarzer.de\/blog\/microsoft-office-apps-powerpoint-javascript-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/development-by.schwarzer.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Microsoft Office Apps: Powerpoint und das Javascript API"}]},{"@type":"Person","@id":"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06","name":"Hans-J\u00fcrgen Schwarzer","image":{"@type":"ImageObject","@id":"https:\/\/development-by.schwarzer.de\/blog\/#personlogo","inLanguage":"de-DE","url":"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g","caption":"Hans-J\u00fcrgen Schwarzer"},"description":"Hans-J\u00fcrgen Schwarzer leitet die Digital-Agentur schwarzer.de software + internet gmbh. Als Unternehmer und Verleger in Personalunion wie auch als leidenschaftlicher Blogger geh\u00f6rt er zu den Hauptautoren verschiedener Online-Magazine. Innerhalb seiner breiten Palette an Themen liegen dem Mainzer Lokalpatrioten dabei vermeintlich \u201eschr\u00e4ge\u201c Ideen und technische Novit\u00e4ten besonders am Herzen - Nerdstuff, wie es heute hei\u00dft.","sameAs":["http:\/\/www.schwarzer.de"],"url":"#"}]}},"_links":{"self":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/120"}],"collection":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/comments?post=120"}],"version-history":[{"count":20,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/120\/revisions"}],"predecessor-version":[{"id":822,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/120\/revisions\/822"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/media\/125"}],"wp:attachment":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/media?parent=120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/categories?post=120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/tags?post=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}