Anstupsen einer Tabelle (Microsoft Word)
Ray fragt sich, ob es eine Möglichkeit gibt, eine gesamte Word-Tabelle Pixel für Pixel vertikal zu verschieben. Alles, was er gelesen hat, deutet darauf hin, dass das Greifen und Halten der Alt-Taste dies ermöglicht, aber es funktioniert nicht reibungslos.
Ich bin nicht sicher, wo Ray gelesen hat, aber die Alt-Taste erlaubt kein Anstupsen von Tabellen. Tatsächlich scheint es überhaupt nicht für Tabellenbewegungen zu funktionieren, mit einer Ausnahme: Wenn Sie Umschalt + Alt drücken und dann die Aufwärts- oder Abwärtspfeiltasten verwenden, wird die Tabelle in Ihrem Dokument um einen ganzen Absatz nach oben oder unten verschoben.
Andere Tastenkombinationen funktionieren ebenfalls nicht. Sie würden denken, dass Nudging-Tabellen genauso funktionieren wie für andere Objekte in einem Dokument. Sie wählen das Objekt aus und geben dann mit den Pfeiltasten den Nudge an. Es funktioniert jedoch überhaupt nicht mit Tabellen. Wenn Sie die Tabelle auswählen und dann die Aufwärts- oder Abwärtspfeiltaste drücken, hebt Word die Auswahl der Tabelle auf und verschiebt die Einfügemarke entweder über oder unter die Tabelle im Dokument.
Es gibt jedoch einige Problemumgehungen, die Sie verwenden können. Zunächst können Sie anpassen, wie Sie Ihre Tabellen in das Dokument einfügen. Fügen Sie sie einfach in ein Textfeld ein, und verwenden Sie dann die Pfeiltasten, um das Textfeld zu verschieben.
(Sie können den Rand des Textfelds auch so formatieren, dass er nicht angezeigt wird.)
Eine andere Problemumgehung besteht darin, ein Makro zu verwenden, um die Bewegung auszuführen. Das folgende Makro verschiebt die Tabelle um ein einzelnes Pixel nach oben:
Sub MoveTableUp1() ' set pxl to the number of pixels to move: positive for down and ' negative for up Const pxl As Single = -1 If Not Selection.Information(wdWithInTable) Then Exit Sub With Selection.Tables(1) .Rows.VerticalPosition = .Rows.VerticalPosition + PixelsToPoints(pxl) End With End Sub
Sie müssen lediglich sicherstellen, dass sich die Einfügemarke in der Tabelle befindet, die Sie anstoßen möchten. Wenn Sie die Tabelle nach unten statt nach oben verschieben möchten, ändern Sie einfach die Definition der pxl-Konstante in eine positive 1 anstelle einer negativen 1.
Es gibt noch etwas, das Sie an diesem Makro beachten sollten – es kann Ihr Dokumentlayout durcheinander bringen. Sie sehen, die VerticalPosition-Eigenschaft ist nur wirksam, wenn Ihre Tabelle so konfiguriert ist, dass Text um sie gewickelt werden kann.
(Dies wird im Bereich „Tabellenumbruch“ des Dialogfelds „Tabelleneigenschaften“ konfiguriert.) Wenn Sie das Makro zum Anpassen der VerticalPosition-Eigenschaft verwenden, wird die Tabelle automatisch von „keine“ in „um“ geändert. Dies kann sich natürlich auf das Seitenlayout auswirken, wenn Sie zuvor keinen Umbruch aktiviert haben und die Tabelle schmaler als Ihr Textbereich ist.
Auch hier gibt es ein weiteres potenzielles „Gotcha“. Sie könnten denken, dass Sie die horizontale Position der Tabelle anpassen können, indem Sie die VerticalPosition-Eigenschaft im obigen Makro in HorizontalPosition ändern. Dies scheint logisch, aber wie es im Makro funktioniert, kann Sie für eine Schleife werfen.
Wenn Sie durch Anpassen der VerticalPosition-Eigenschaft den Tabellenumbruch von „none“ in „around“ ändern, wird dies durch Anpassen der HorizontalPosition-Eigenschaft nicht geändert. In einigen Versionen von Word wird stattdessen ein Fehler angezeigt.
Der sicherste Weg, um mit all diesen Macken umzugehen, besteht darin, das Makro so anzupassen, dass sichergestellt ist, dass eine Tabelle nur angepasst wird, wenn ihre Wrapping-Eigenschaft auf True gesetzt ist, und zwar auf folgende Weise:
Sub MoveTableUp2() Dim sTemp As String ' set pxl to the number of pixels to move: positive for down and ' negative for up Const pxl As Single = -1 sTemp = "" If Selection.Information(wdWithInTable) Then With Selection.Tables(1).Rows If .WrapAroundText Then .VerticalPosition = .VerticalPosition + PixelsToPoints(pxl) Else sTemp = "Table is inline. No action taken." End If End With Else sTemp = "The insertion point is not within a table. No action taken." End If If sTemp > "" Then MsgBox sTemp End Sub
Diese Variante des Makros enthält auch etwas mehr Feedback für den Benutzer, sodass dem Benutzer mitgeteilt wird, warum dies der Fall ist, wenn keine Aktion ausgeführt wird.
Wenn Sie möchten, können Sie den Tisch jeweils um einen Punkt (1/72 Zoll) verschieben. Hier ist die Version des Makros, die diese Bewegung verarbeiten kann:
Sub MoveTableUp3() Dim sTemp As String ' set pt to the number of points to move: positive for down and ' negative for up Const pt As Single = -1 sTemp = "" If Selection.Information(wdWithInTable) Then With Selection.Tables(1).Rows If .WrapAroundText Then .VerticalPosition = .VerticalPosition + pt Else sTemp = "Table is inline. No action taken." End If End With Else sTemp = "The insertion point is not within a table. No action taken." End If If sTemp > "" Then MsgBox sTemp End Sub
Wie bereits erläutert, müssen Sie die HorizontalPosition-Eigenschaft mit dem Rows-Objekt anstelle der VerticalPosition-Eigenschaft verwenden, um die Tabelle horizontal statt vertikal zu verschieben.
Beachten Sie jedoch auch die besprochenen Einschränkungen, wie sich die HorizontalPosition-Eigenschaft in der Verwendung von der VerticalPosition-Eigenschaft unterscheidet. In diesem Sinne können Sie ziemlich einfach vier Versionen Ihres Makros erstellen (für jede der vier Richtungen, in denen Sie Ihre Tabelle möglicherweise verschieben möchten) und dann den Makros Tastenkombinationen zuweisen.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (12136) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365.