Set Shp = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal,
Left:=0, Top:=0, Width:=100, Height:=100)
創建如何確定是否當前光標(或選擇)是內部的文本框的一個或不?我想移動光標移出文本框,如果它是的,如果它不是在不移動光標
Set Shp = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal,
Left:=0, Top:=0, Width:=100, Height:=100)
創建如何確定是否當前光標(或選擇)是內部的文本框的一個或不?我想移動光標移出文本框,如果它是的,如果它不是在不移動光標
您將需要從這裏得到的代碼來獲得/設置鼠標的位置: 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
問題是關於Microsoft Word文檔中的文本框,而不是關於Windows窗體文本框,因此您的代碼示例在此不適用。 –
你可以決定你的選擇是否是一個文本框裏面通過檢查所選範圍的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
您可以使用'Selection.StoryType'來檢查選擇內容是否在TextFrame中。 'Selection.Shaperange(1)'獲取文本框。如果不是內聯形狀,將光標移動到文本框的外面會很棘手。 (使用錨點是我現在可以想到的唯一方法) – arcadeprecinct
Selection.StoryType可以做到這一點。非常感謝你。 – ThisPaul