0

私は完全に困惑しています。解決策が見つかりません。形状の値を求めます:

? ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom

答え: 11.29354

私はルーチンを書きます:

If Not oshp.TextFrame.MarginBottom = 11.29354 Then
    TellMe = "MarginBottom =" & oshp.TextFrame.MarginBottom & " but not 11.29354" 
End If

ルーチンは機能しません。形状の MarginBottom には値がないと主張しますが、同時に、結果として値が得られます。

それは、価値が価値ではないことを意味します。経験豊富な人は、これに関する背景情報を持っていますか?

4

1 に答える 1

1

丸めている可能性があります。次のように、即時ウィンドウでテストできます。

最初に値を割り当てます。

ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom = 11.23456789

次に、それを取得します。

? ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom
 11.23457 

変更されました。新しい値と割り当てられた値に対してテストします。

? ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom = 11.23456789
False
? ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom = 11.23457
False

どちらも機能しません。文字列に変換してテストします。

? CStr(ActiveWindow.Selection.ShapeRange.TextFrame.MarginBottom) = "11.23457"
True

文字列値をテストできるかどうかはわかりませんが、この比較は機能します。

于 2013-09-16T02:36:48.697 に答える