Top-Themen

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 Powershell Befehle

Mitglied: mguenth83

mguenth83 (Level 1) - Jetzt verbinden

21.07.2014 um 08:32 Uhr, 3140 Aufrufe, 2 Kommentare

Hi,
wollte kurz fragen ob jemand den Befehl für ein "Backspace" kennt.
Habe schon viele Seiten wo Powershell mit Word dokumentiert ist aber der Befehl stand nirgends dabei.
Des weiteren suche ich den Befehl um in einer Tabelle die Umrandungen zu programmieren

Falls sich jemand dazu auskennt wäre ich sehr dankbar ^^

Gruß
Matze
Mitglied: colinardo
21.07.2014, aktualisiert 22.07.2014
Hallo Matze,
ich vermute mal das es bei deinem Thema um Word-Automation via COM-Objekt in Powershell geht ?!
Wenn du schon mal mit VBA in Word gearbeitet hast ist das kein Problem, denn die Befehle lassen sich fast eins zu eins in eine COM-Automation in Powershell übernehmen. Deine erste Anlaufstelle ist also die VBA-Referenz für Word (s.u.). Hierbei sind Word-Konstanten in deren tatsächliche Integer-Werte umzuwandeln. Diese kannst du dir in Word im VBA-Editor im Direktbereich anzeigen lassen indem du dort z.B. folgendes hinein schreibst: debug.print wdCharacter

Hier ein Beispiel das eine Tabelle mit 5 Spalten und 5 Zeilen erstellt, dieser Tabelle einen Rahmen zuweist, dann hinter die Tabelle einen Text schreibt und vom letzen Wort des Textes einen Buchstaben entfernt:
01.
# Word Objekt erzeugen 
02.
$word = new-object -ComObject Word.Application 
03.
# Word sichtbar machen 
04.
$word.Visible = $true 
05.
# neues Dokument erzeugen 
06.
$doc = $word.Documents.Add() 
07.
# neue Tabelle erzeugen 
08.
$tbl = $doc.Tables.Add($doc.Content,5,5) 
09.
# Äußeren Tabellenrand  sichtbar machen 
10.
$tbl.Borders.Enable = $true 
11.
# Beispiel um die inneren Trennlinien in einem anderen Linienstil zu formatieren 
12.
$tbl.Borders.InsideLineStyle = 2 
13.
 
14.
# Beispielinhalte in die Tabelle schreiben 
15.
$tbl.Cell(1, 1).Range.Text = "Montag" 
16.
$tbl.Cell(1, 2).Range.Text = "Dienstag" 
17.
$tbl.Cell(1, 3).Range.Text = "Mittwoch" 
18.
$tbl.Cell(1, 4).Range.Text = "Donnerstag" 
19.
$tbl.Cell(1, 5).Range.Text = "Freitag" 
20.
 
21.
# Überschriftenzeile formatieren 
22.
$tbl.Rows.Item(1).Range.Cells.VerticalAlignment = 1 # wdCellAlignVerticalCenter 
23.
$tbl.Rows.Item(1).Range.ParagraphFormat.Alignment = 1 # wdAlignParagraphCenter 
24.
$tbl.Rows.Item(1).Range.ParagraphFormat.SpaceAfter = 0 # Absatzabstand entfernen 
25.
$tbl.Rows.Item(1).Range.Bold = $true # fett machen 
26.
 
27.
# text am Ende hinzufügen und vom letzen Wort ein Zeichen löschen 
28.
$myRange = $doc.Content 
29.
$myRange.Collapse(0) #wdCollapseEnd 
30.
$myRange.Text = "Das ist ein Testx" 
31.
$myRange.Collapse(0) # Aktuelle Markierung ans Ende des Bereichs verschieben 
32.
$myRange.Move(1, -1) # 1 = wdCharacter 
33.
$myRange.Expand(1) # 1 = wdCharacter 
34.
$myRange.Delete() # letztes Zeichen löschen
Die Tabellenränder lassen sich natürlich auch alle einzeln detailliert formatieren. Mehr dazu findest du in der Word-Referenz im Table-Objekt

Bitte unbedingt beachten wenn du für deine Tests die Powershell ISE benutzt: Diese ist absolut ungeeignet für eine vernünftige Arbeit mit COM-Automation und Office. Hier kommt es regelmäßig zu kuriosen Fehlerbildern, die verschwinden sobald du dein Script in einer normalen Powershell-Session ausführst ! Bei obigem Script würdest du z.B. bei Ausführung in der ISE, einen Fehler beim Abschnitt für die Formatierung der Überschriften bekommen. Also speichere es als Script und führe es in einer normalen Powershell-Session aus.


Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell-Befehl in Variable umleiten
gelöst Frage von CoreknabeBatch & Shell5 Kommentare

Moin, ich möchte unseren Exchange mit einem Powershell-Skript konfigurieren. Die Ausgabe eines Befehls soll in einem Windows-Fenster mit OK-Button ...

Windows Systemdateien

Variablen benutzung in Befehlen (Powershell)

gelöst Frage von VidcrafterWindows Systemdateien6 Kommentare

Hallo ich will einen Befehl mit einer Variable ausführen. Remove-AppxProvisionedPackage -Online -PackageName $app Dies funktioniert nicht und mir wird ...

Batch & Shell

Powershell Befehl in Batch ausführen

gelöst Frage von newit1Batch & Shell4 Kommentare

Hallo! Kann ich einen Powershell Befehl in eine Batch schreiben, damit diese bei Doppelklick den Befehl ausführt? Wie würde ...

Windows Server

Word-Dokument mit Powershell bearbeiten

gelöst Frage von Peter0816Windows Server5 Kommentare

Hallo, ich würde gerne ein Worddokument, welches ich mit Variablen versehen habe, durch Werte mit Powershell ersetzten. Hatte mir ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 16 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 16 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...