上、左、右、下から図形のポイントの正確な位置を見つける必要がある 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 値が表示されます。