Rayは、Wordテーブル全体をピクセルごとに垂直方向に移動する方法があるかどうか疑問に思います。彼が読んだすべてのことは、それをつかんでAltキーを押したままにするとそれが可能になることを示していますが、スムーズに機能しません。

Rayがどこを読んでいるかはわかりませんが、Altキーを押すとテーブルを微調整できません。実際、1つの例外を除いて、テーブルの移動にはまったく機能しないようです。Shift+ Altを押してから上矢印キーまたは下矢印キーを使用すると、ドキュメント内の段落全体でテーブルが上下に移動します。

他のキーストロークの組み合わせも機能しません。テーブルのナッジは、ドキュメント内の他のオブジェクトの場合と同じように機能すると思います。オブジェクトを選択し、矢印キーを使用してナッジを行います。ただし、テーブルではまったく機能しません。テーブルを選択してから上矢印キーまたは下矢印キーを押すと、Wordはテーブルの選択を解除し、挿入ポイントをドキュメント内のテーブルの上または下に移動します。

ただし、使用できる回避策がいくつかあります。まず、テーブルをドキュメントに配置する方法を調整できます。それらをテキストボックス内に配置するだけで、矢印キーを使用してテキストボックスを微調整できます。

(テキストボックスの境界線をフォーマットして、表示されないようにすることもできます。)

別の回避策は、マクロを使用して移動を行うことです。次のマクロは、テーブルを1ピクセル上に移動します。

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

あなたがする必要があるのは、挿入ポイントがあなたが微調整したいテーブル内にあることを確認することです。テーブルを上ではなく下に移動する場合は、pxl定数の定義を負の1ではなく正の1に変更するだけです。

このマクロについて注意すべき点が他にもあります。ドキュメントのレイアウトが混乱する可能性があります。ご覧のとおり、VerticalPositionプロパティは、テキストを折り返すことができるようにテーブルが構成されている場合にのみ有効です。

(これは、[テーブルのプロパティ]ダイアログボックスの[テーブルの折り返し]領域で構成されます。)これを認識して、マクロを使用してVerticalPositionプロパティを調整すると、テーブルが自動的に「なし」から「周囲」に変更されます。これは、以前に折り返しをオンにしておらず、テーブルがテキスト領域よりも狭い場合、明らかにページレイアウトに影響を与える可能性があります。

ここにも、別の潜在的な「落とし穴」があります。上記のマクロのVerticalPositionプロパティをHorizo​​ntalPositionに変更することで、テーブルの水平位置を調整できると思うかもしれません。これは論理的に思えますが、マクロでどのように機能するかによって、ループが発生する可能性があります。

VerticalPositionプロパティを調整すると、テーブルの折り返しが「none」から「around」に変更されますが、Horizo​​ntalPositionプロパティを調整しても変更されません。代わりに、Wordの一部のバージョンでは、エラーが発生します。

これらすべての癖に対処する最も安全な方法は、次のように、マクロを調整して、ラッピングプロパティがTrueに設定されている場合にのみテーブルを調整するようにすることです。

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

マクロのこのバリエーションには、ユーザーへのフィードバックも少し含まれているため、アクションが実行されない場合は、その理由がユーザーに通知されます。

必要に応じて、テーブルを一度に1ポイント(1/72インチ)移動できます。この動きを処理できるマクロのバージョンは次のとおりです。

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

すでに説明したように、テーブルを垂直方向ではなく水平方向に移動することは、VerticalPositionプロパティではなくRowsオブジェクトでHorizo​​ntalPositionプロパティを使用することだけです。

ただし、Horizo​​ntalPositionプロパティの使用方法がVerticalPositionプロパティとどのように異なるかについても説明した注意事項を覚えておいてください。これを念頭に置いて、マクロの4つのバージョンを簡単に作成し(4つの方向ごとに、テーブルを微調整することができます)、マクロにショートカットキーを割り当てることができます。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ wordribbon-WordTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(12136)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice365のWordに適用されます。