0

上、左、右、下から図形のポイントの正確な位置を見つける必要がある Word VSTO (VB.NET) プログラムを作成しています。次のコードを使用します。

objShape = Globals.ThisAddIn.Application.ActiveDocument.Shapes(intShapesLoop)

objShape.RelativeHorizontalPosition = Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionMargin

objShape.Select()

sngPageWidth = Globals.ThisAddIn.Application.Selection.Range.PageSetup.PageWidth
sngPageHeight = Globals.ThisAddIn.Application.Selection.Range.PageSetup.PageHeight

sngMarginsLeft = objShape.Left + Globals.ThisAddIn.Application.Selection.Range.PageSetup.LeftMargin
sngMarginsRight = sngPageWidth - (objShape.Width + sngMarginsLeft + sngGutterPosistionRight)

これは正常に機能し、左と右から正しい位置の値が表示されます。ただし、上と下の場所には以下のコードを使用します。

sngMarginsTop = objShape.Top + Globals.ThisAddIn.Application.Selection.Range.PageSetup.TopMargin
sngMarginsBottom = sngPageHeight - (objShape.Height + sngMarginsTop)

これは、間違った位置の値を示しています。ここでの問題は何ですか?トップ値から、正しい値よりも約 12 ポイント少ないことを示しています

これはいくつかのドキュメントでのみ発生することがわかりました。ほとんどのドキュメントで正しい Top 値が表示されますが、一部のドキュメントでは間違った Top 値が表示されます。

4

1 に答える 1

2

これがトップ値が間違っている理由です。

[高度なレイアウト] ダイアログ ([テキストの折り返し] > [その他のレイアウト オプション... ]) で、

ここに画像の説明を入力

赤い長方形でマークされたコンボ ボックスは、Marginとして設定する必要があります。上の値が間違っていた理由は、以下の絶対位置がMarginではなくParagraphに設定されているためです。これをMarginに設定すると、上限値が正しくなりました。

于 2015-07-18T05:54:40.307 に答える