【问题标题】:Word: Is there a way to position the cursor first in a shape?Word:有没有办法将光标首先定位在形状中?
【发布时间】:2020-09-21 12:30:58
【问题描述】:

我在文档中的任意点(绝对位置)插入一个形状(在 Word 中命名为文本框:Word > 插入 > 展开“文本框”> 绘制文本框),其中填充了内容(例如文本、表格带文字,...)。但现在我想将光标移动到形状中的第一个位置。我该怎么做?

我的尝试(在我看来,注释掉时它会将光标放在文档的第一个位置):

    Dim objWord As Application
    objWord = GetObject(, "Word.Application")
    For i As Integer = 1 To objWord.ActiveDocument.Shapes.Count
        objWord.ActiveDocument.Shapes(i).TextFrame.TextRange.Select() 'select the whole textbox

        'Dim objRange As Range = objWord.ActiveDocument.Range
        'objRange.SetRange(objWord.ActiveDocument.Shapes(i).TextFrame.TextRange.Start, objWord.ActiveDocument.Shapes(i).TextFrame.TextRange.Start) 'position cursor is out of the shape
        'objRange.Select()
    Next

【问题讨论】:

    标签: vb.net ms-word


    【解决方案1】:

    我不处理 vb.net,但这里是 Word vba:

    Sub SelectTextInShape()
        Dim objWord As Application
        Set objWord = Word
        Dim i As Long
        For i = 1 To objWord.ActiveDocument.Shapes.Count
             objWord.ActiveDocument.Shapes(i).TextFrame.TextRange.Select
            Selection.Collapse wdCollapseStart
            ' Do something here?
        Next i
    End Sub
    

    这会将插入点放置在每个形状中任何文本的开头。

    如果您只想插入一个形状并将插入点放在该形状的文本框的开头...

    Dim objWord As Application
    Set objWord = Word
    Dim i As Long
    Let i = objWord.ActiveDocument.Shapes.Count
    objWord.ActiveDocument.Shapes(i).TextFrame.TextRange.Select
    Selection.Collapse wdCollapseStart
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 2012-07-30
      • 2012-03-25
      • 1970-01-01
      • 2022-11-10
      相关资源
      最近更新 更多