2016-08-31 42 views
0

通過重複如何確定是否選擇的是文本框的幾個文本框的內部或不

Set Shp = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, 
      Left:=0, Top:=0, Width:=100, Height:=100) 

創建如何確定是否當前光標(或選擇)是內部的文本框的一個或不?我想移動光標移出文本框,如果它是的,如果它不是在不移動光標

+0

您可以使用'Selection.StoryType'來檢查選擇內容是否在TextFrame中。 'Selection.Shaperange(1)'獲取文本框。如果不是內聯形狀,將光標移動到文本框的外面會很棘手。 (使用錨點是我現在可以想到的唯一方法) – arcadeprecinct

+0

Selection.StoryType可以做到這一點。非常感謝你。 – ThisPaul

回答

-1

您將需要從這裏得到的代碼來獲得/設置鼠標的位置: https://support.microsoft.com/en-us/kb/152969

然後寫以下

Private Sub TextBox1_MouseMove(ByVal intButton As Integer, ByVal intShift As Integer, ByVal sngWidth As Single, ByVal sngHeight As Single) 

    If (sngWidth < 5 Or sngWidth > TextBox1.Width - 5) Or (sngHeight < 5 Or sngHeight > TextBox1.Height - 5) Then 
     SetCursorPos x, y 
    End If 
End Sub 
+0

問題是關於Microsoft Word文檔中的文本框,而不是關於Windows窗體文本框,因此您的代碼示例在此不適用。 –

0

你可以決定你的選擇是否是一個文本框裏面通過檢查所選範圍的StoryType屬性:

Set Shp = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, _ 
       Left:=0, Top:=0, Width:=100, Height:=100) 

If Selection.StoryType = WdStoryType.wdTextFrameStory Then 

    ' select the paragraph the shape is anchored to 
    Shp.Anchor.Select 

    ' collapse to the beginning of the paragraph 
    Selection.Collapse 
End If 
相關問題