none
vb.net 如何在word文档的指定位置插入图片 RRS feed

  • 问题

  • vb.net 如何在word文档的指定位置插入图片(不是光标处)
    使用
    WordApp.Selection.InlineShapes.AddPicture(FileName:="C:\19b9068e64110c288c11.jpg", LinkToFile:=False, SaveWithDocument:=True) '插入图片

    上面代码仅在光标处插入,需要能自定义位置,并且图片浮于文字上方,如何实现?

    2016年4月20日 1:04

答案

  • Hi,

    MOVE(相当于在WORD里按方向键),如MOVEUP,MOVEDOWN,MOVELEFT,MOVERIGHT等,由于MOVE只能用于selection对像,所以要先用select等语句获得光标位置或选定对像
    GOTO 
    (相当于在WORD里的定位功能),主要是让光标跳到指定页,指定节,指定行,指定表等位置,
    两种方法配合使用,基本很快将光标移至你需要的位置
    
    
    MoveUp 方法
    参阅应用于示例特性将所选内容向上移动,并返回移动距离的单位数
    
    
    注释  wdWindow 常量可用来移至活动窗口的顶部或底部
    不管 Count 是大于 1 或小于 - 1,wdWindow 
    常量只移动一个单位
    可使用 wdScreen 移动多屏
    
    
    expression.MoveUp(Unit, Count, Extend)
    expression      
    必需
    返回“应用于”列表中对象的表达式
    
    
    Unit      Variant 类型,可选
    移动所选内容的距离度量单位
    可以是下列 WdUnits 
    常量之一:wdLine、wdParagraph、wdWindow 或 wdScreen
    默认值是 wdLine
    
    
    Count      Variant 类型,可选
    所选内容移动距离的单位数
    默认值是 1
    
    
    Extend      Variant 类型,可选
    可为 wdMove 或 wdExtend
    如果为 
    wdMove,则所选内容折叠到结束位置,并向上移动
    如果为 wdExtend,则所选内容向上扩展
    默认值为 wdMove
    
    
    示例
    本示例将所选内容移至前一个段落的开头
    
    
    Selection.MoveRight
    Selection.MoveUp Unit:=wdParagraph, Count:=2, 
    Extend:=wdMove
      
    本示例显示当前行号,将所选内容向上移动三行,并再次显示当前行号
    
    
    MsgBox "Line " & 
    Selection.Information(wdFirstCharacterLineNumber)
    Selection.MoveUp 
    Unit:=wdLine, Count:=3, Extend:=wdMove
    MsgBox "Line " & 
    Selection.Information(wdFirstCharacterLineNumber)
    
    GoTo 方法
    对于 Document 或 Range 对象:返回一个 Range 对象,该对象代表指定项(例如页、书签或域)的开始位置
    
    
    对于 Selection 对象:将插入点移至指定项前面的字符位置,并返回一个 Range 对象(但 
    wdGoToGrammaticalError、wdGoToProofreadingError 或 wdGoToSpellingError 常量除外)
    
    
    expression.GoTo(What, Which, Count, Name)
    expression      
    必需
    该表达式返回“应用于”列表中的一个对象
    
    
    What     Variant 类型,可选
    指定区域或所选内容要移动到的项目类型
    可以是下列 WdGoToItem 常量之一
    
    
    WdGoToItem 可以是下列 WdGoToItem 常量之一: 
    wdGoToBookmark 
    wdGoToComment 
    
    wdGoToEndnote 
    wdGoToEquation 
    wdGoToField 
    wdGoToFootnote 
    
    wdGoToGrammaticalError 
    wdGoToGraphic 
    wdGoToHeading 
    wdGoToLine 
    
    wdGoToObject 
    wdGoToPage 
    wdGoToPercent 
    wdGoToProofreadingError 
    
    wdGoToRevision 
    wdGoToSection 
    wdGoToSpellingError 
    wdGoToTable 
    
    Which     Variant 类型,可选
    指定区域或所选内容要移动到的项
    可以是下列 WdGoToDirection 
    常量之一
    下列示例功能相等,都将所选内容移动到文档中的第一个标题
    
    
    WdGoToDirection 可以是下列 WdGoToDirection 常量之一: 
    wdGoToAbsolute 
    
    wdGoToFirst 
    wdGoToLast 
    wdGoToNext 
    wdGoToPrevious 
    
    wdGoToRelative 
    
    Selection.GoTo What:=wdGoToHeading, Which:=wdGoToFirst
    Selection.GoTo 
    What:=wdGoToHeading, Which:=wdGoToAbsolute, Count:=1
      
    Count     Variant 
    类型,可选
    文档中的项数
    默认值是 1
    下面的示例将所选内容移至文档中的第四行
    
    
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4
      
    
    只有正数是有效的
    若要指定一个在该区域或所选内容之前的项,可将 Which 参数指定为 wdGoToPrevious,并指定一个 Count 
    值
    下面的示例将所选内容向上移动两行
    
    
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToPrevious, Count:=2
      
    
    Name     Variant 类型,可选
    如果 What 参数是 
    wdGoToBookmark、wdGoToComment、wdGoToField 或 wdGoToObject,则本参数指定名称
    下面的示例移至下一个 
    DATE 域
    
    
    Selection.GoTo What:=wdGoToField, Name:="Date"
      
    说明
    将 GoTo 方法用于 
    wdGoToGrammaticalError、wdGoToProofreadingError 或 wdGoToSpellingError 常量时,返回的 
    Range 对象中包括所有含语法或拼写错误文本
    
    
    示例
    本示例将所选内容移至下一个表格的第一个单元格
    
    
    Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext
      
    
    本示例将插入点移至活动文档第五个尾注引用标记的前面
    
    
    If ActiveDocument.Endnotes.Count >= 5 Then
        Selection.GoTo 
    What:=wdGoToEndnote, _
            Which:=wdGoToAbsolute, Count:=5
    End If
      
    
    本示例将 R1 设置为等于活动文档中第一个脚注引用标记
    
    
    If ActiveDocument.Footnotes.Count >= 1 Then
        Set R1 = 
    ActiveDocument.GoTo(What:=wdGoToFootnote, _
            
    Which:=wdGoToFirst)
        R1.Expand Unit:=wdCharacter
    End If
      
    
    本示例将所选内容向下移动四行
    
    
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToRelative, Count:=4
      
    
    本示例将所选内容向后移动两页
    
    
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToPrevious, Count:=2
    

    Regards,

    Moonlight


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.



    2016年4月25日 7:01

全部回复

  • 那你把光标移到指定位置再插入啊

    http://feiyun0112.cnblogs.com/

    2016年4月20日 3:32
    版主
  • Hi 小新_WEI,

    我同意feriyun 的观点,你可以使用用Move, Goto等方法移动光标然后插入图片。

    参考资料:

    Selection.Move Method (Word)

    Selection.GoTo Method (Word)

    VB控制word光标的移动  

    Regards,

    Moonlight


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2016年4月20日 9:20
  • 可以给我示例代码参考参考吗,实在是搞不懂,麻烦您!
    2016年4月21日 3:16
  • 可以给我示例代码参考参考吗,实在是搞不懂,麻烦您!
    2016年4月21日 3:17
  • Hi,

    MOVE(相当于在WORD里按方向键),如MOVEUP,MOVEDOWN,MOVELEFT,MOVERIGHT等,由于MOVE只能用于selection对像,所以要先用select等语句获得光标位置或选定对像
    GOTO 
    (相当于在WORD里的定位功能),主要是让光标跳到指定页,指定节,指定行,指定表等位置,
    两种方法配合使用,基本很快将光标移至你需要的位置
    
    
    MoveUp 方法
    参阅应用于示例特性将所选内容向上移动,并返回移动距离的单位数
    
    
    注释  wdWindow 常量可用来移至活动窗口的顶部或底部
    不管 Count 是大于 1 或小于 - 1,wdWindow 
    常量只移动一个单位
    可使用 wdScreen 移动多屏
    
    
    expression.MoveUp(Unit, Count, Extend)
    expression      
    必需
    返回“应用于”列表中对象的表达式
    
    
    Unit      Variant 类型,可选
    移动所选内容的距离度量单位
    可以是下列 WdUnits 
    常量之一:wdLine、wdParagraph、wdWindow 或 wdScreen
    默认值是 wdLine
    
    
    Count      Variant 类型,可选
    所选内容移动距离的单位数
    默认值是 1
    
    
    Extend      Variant 类型,可选
    可为 wdMove 或 wdExtend
    如果为 
    wdMove,则所选内容折叠到结束位置,并向上移动
    如果为 wdExtend,则所选内容向上扩展
    默认值为 wdMove
    
    
    示例
    本示例将所选内容移至前一个段落的开头
    
    
    Selection.MoveRight
    Selection.MoveUp Unit:=wdParagraph, Count:=2, 
    Extend:=wdMove
      
    本示例显示当前行号,将所选内容向上移动三行,并再次显示当前行号
    
    
    MsgBox "Line " & 
    Selection.Information(wdFirstCharacterLineNumber)
    Selection.MoveUp 
    Unit:=wdLine, Count:=3, Extend:=wdMove
    MsgBox "Line " & 
    Selection.Information(wdFirstCharacterLineNumber)
    
    GoTo 方法
    对于 Document 或 Range 对象:返回一个 Range 对象,该对象代表指定项(例如页、书签或域)的开始位置
    
    
    对于 Selection 对象:将插入点移至指定项前面的字符位置,并返回一个 Range 对象(但 
    wdGoToGrammaticalError、wdGoToProofreadingError 或 wdGoToSpellingError 常量除外)
    
    
    expression.GoTo(What, Which, Count, Name)
    expression      
    必需
    该表达式返回“应用于”列表中的一个对象
    
    
    What     Variant 类型,可选
    指定区域或所选内容要移动到的项目类型
    可以是下列 WdGoToItem 常量之一
    
    
    WdGoToItem 可以是下列 WdGoToItem 常量之一: 
    wdGoToBookmark 
    wdGoToComment 
    
    wdGoToEndnote 
    wdGoToEquation 
    wdGoToField 
    wdGoToFootnote 
    
    wdGoToGrammaticalError 
    wdGoToGraphic 
    wdGoToHeading 
    wdGoToLine 
    
    wdGoToObject 
    wdGoToPage 
    wdGoToPercent 
    wdGoToProofreadingError 
    
    wdGoToRevision 
    wdGoToSection 
    wdGoToSpellingError 
    wdGoToTable 
    
    Which     Variant 类型,可选
    指定区域或所选内容要移动到的项
    可以是下列 WdGoToDirection 
    常量之一
    下列示例功能相等,都将所选内容移动到文档中的第一个标题
    
    
    WdGoToDirection 可以是下列 WdGoToDirection 常量之一: 
    wdGoToAbsolute 
    
    wdGoToFirst 
    wdGoToLast 
    wdGoToNext 
    wdGoToPrevious 
    
    wdGoToRelative 
    
    Selection.GoTo What:=wdGoToHeading, Which:=wdGoToFirst
    Selection.GoTo 
    What:=wdGoToHeading, Which:=wdGoToAbsolute, Count:=1
      
    Count     Variant 
    类型,可选
    文档中的项数
    默认值是 1
    下面的示例将所选内容移至文档中的第四行
    
    
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4
      
    
    只有正数是有效的
    若要指定一个在该区域或所选内容之前的项,可将 Which 参数指定为 wdGoToPrevious,并指定一个 Count 
    值
    下面的示例将所选内容向上移动两行
    
    
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToPrevious, Count:=2
      
    
    Name     Variant 类型,可选
    如果 What 参数是 
    wdGoToBookmark、wdGoToComment、wdGoToField 或 wdGoToObject,则本参数指定名称
    下面的示例移至下一个 
    DATE 域
    
    
    Selection.GoTo What:=wdGoToField, Name:="Date"
      
    说明
    将 GoTo 方法用于 
    wdGoToGrammaticalError、wdGoToProofreadingError 或 wdGoToSpellingError 常量时,返回的 
    Range 对象中包括所有含语法或拼写错误文本
    
    
    示例
    本示例将所选内容移至下一个表格的第一个单元格
    
    
    Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext
      
    
    本示例将插入点移至活动文档第五个尾注引用标记的前面
    
    
    If ActiveDocument.Endnotes.Count >= 5 Then
        Selection.GoTo 
    What:=wdGoToEndnote, _
            Which:=wdGoToAbsolute, Count:=5
    End If
      
    
    本示例将 R1 设置为等于活动文档中第一个脚注引用标记
    
    
    If ActiveDocument.Footnotes.Count >= 1 Then
        Set R1 = 
    ActiveDocument.GoTo(What:=wdGoToFootnote, _
            
    Which:=wdGoToFirst)
        R1.Expand Unit:=wdCharacter
    End If
      
    
    本示例将所选内容向下移动四行
    
    
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToRelative, Count:=4
      
    
    本示例将所选内容向后移动两页
    
    
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToPrevious, Count:=2
    

    Regards,

    Moonlight


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.



    2016年4月25日 7:01