Word中每页插入两张图片(VBA+VSTO)
我们在平时的工作中经常会做一些简报,插入图片,一般情况下每页放两张图片比较美观,再配上文字说明就行了。可是每次都很烦人,图片不是大了就是小了,还要设置四周环绕或者其他环绕格式,调整高度、宽度…一系列的操作,如果是两张图片还好,再多一点就很头疼了。那么怎样用VBA一件操作呢,下面是我自己写的代码,希望能帮到你。
1.VBA代码:

Sub 每页两张图片()Dim myfile As FileDialog    Set myfile = Application.FileDialog(msoFileDialogFilePicker)    With myfile        .InitialFileName = "E:\工作文件" '这里输入你要插入图片的目标文件夹        If .Show = -1 Then            For Each FN In .SelectedItems                Selection.Text = Basename(FN) '这两句移到这里                Selection.Font.Name = "仿宋_GB2312"                Selection.Font.Size = 16                Selection.startof                 Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter                If Selection.Start = ActiveDocument.Content.End - 1 Then                '如光标在文末                    Selection.TypeParagraph '在文末添加一空段                Else                    Selection.MoveUp                End If                Set MyPic = Selection.InlineShapes.AddPicture(FileName:=FN, SaveWithDocument:=True) '按比例调整相片尺寸                WidthNum = MyPic.Width                '在此处修改相片宽,单位厘米                MyPic.Width = CentimetersToPoints(15) '宽10CM                MyPic.Height = CentimetersToPoints(9.5) '高10CM                If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末                    Selection.TypeParagraph '在文末添加一空段                Else                    Selection.MoveUp                End If            Next FN        Else        End If    End With    Set myfile = NothingEnd SubFunction Basename(FullPath) '取得文件名    Dim x, y    Dim tmpstring    tmpstring = FullPath    x = Len(FullPath)    For y = x To 1 Step -1        If Mid(FullPath, y, 1) = "\" Or _            Mid(FullPath, y, 1) = ":" Or _            Mid(FullPath, y, 1) = "/" Then            tmpstring = Mid(FullPath, y + 1)            Exit For        End If    Next    Basename = Left(tmpstring, Len(tmpstring) - 4)End Function 2.转成VSTO:
```VBAPrivate Sub Button19_Click(sender As Object, e As RibbonControlEventArgs) Handles Button19.ClickDim myfile As FileDialogWith app.Application.FileDialog(Microsoft.Office.Core.MsoFileDialogType.msoFileDialogFilePicker)If .Show = -1 ThenFor Each FN In .SelectedItemsapp.Selection.Text = Basename(FN) '这两句移到这里app.Selection.Font.Name = "仿宋_GB2312"app.Selection.Font.Size = 16app.Selection.StartOf()app.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenterIf app.Selection.Start = app.ActiveDocument.Content.End - 1 Then'如光标在文末app.Selection.TypeParagraph() '在文末添加一空段Elseapp.Selection.MoveUp()End IfDim Mypic = app.Selection.InlineShapes.AddPicture(FileName:=FN, SaveWithDocument:=True) '按比例调整相片尺寸Dim WidthNum = Mypic.Width'在此处修改相片宽,单位厘米Mypic.Width = app.CentimetersToPoints(15) '宽10CMMypic.Height = app.CentimetersToPoints(10) '高10CMIf app.Selection.Start = app.ActiveDocument.Content.End - 1 Then '如光标在文末app.Selection.TypeParagraph() '在文末添加一空段Elseapp.Selection.MoveUp()End IfNext FNElseEnd IfEnd Withmyfile = NothingEnd SubFunction Basename(ByVal FullPath As String) As String '取得文件名Dim x, yDim tmpstringtmpstring = FullPathx = Len(FullPath)For y = x To 1 Step -1If Mid(FullPath, y, 1) = "\" OrMid(FullPath, y, 1) = ":" OrMid(FullPath, y, 1) = "/" Thentmpstring = Mid(FullPath, y + 1)Exit ForEnd IfNextBasename = Left(tmpstring, Len(tmpstring) - 4)End Function
End Class

来看看效果
优酷视频:http://v.youku.com/v_show/id_XNTEyNTA4MjI4OA==.html?x&sharefrom=android&sharekey=1fbf44645b50f44eed36a688452430595

Word中每页插入两张图片(VBA+VSTO)相关推荐

  1. 如何在word中任意页插入页脚?

    比如我想第一页和第二页不编码,从第三页开始显示1.2.3-- 1.首先,把鼠标放在第二页的最后,在菜单中先找到"分隔符". 2007版的word可能在菜单栏的插入中,2016版的w ...

  2. HTML中怎样把文字分两栏显示,word设置一页分两栏的三种方法

    我们在阅读报纸的时候,经常看到分栏的现象,这就是通过Word当中的"分栏"功能进行设置的,那么下面就由学习啦小编给大家分享下word设置一页分两栏的技巧,希望能帮助到您. word ...

  3. Microsoft Word 教程:如何在 Word 中更改页边距、创建新闻稿栏?

    欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中更改页边距.创建新闻稿栏. 在 Word 中,每个页面会自动显示一英寸的 ...

  4. word中如何插入abcd英文字母的页码 页码word中怎么做插入abcd英文字母的 oldtimeblog

    word中如何插入abcd英文字母的页码 页码word中怎么做插入abcd英文字母的页码 word中插入页码的时候,默认是插入的123数字页码,想要插入abcd英文字母页码,该怎么插入呢?下面我们就来 ...

  5. Word中繁体艺术字的两种制作方法(转)

    Word中繁体艺术字的两种制作方法(转) Word里的艺术字是大家平时常用的一项功能,但有时我们可能需要制作一些繁体艺术字,而这个看似简单的要求,实现起来却不是那么容易,因为Word里的繁简转换功能对 ...

  6. word涂改涂掉图片_怎么在word中修改图片的两种方法

    有时我们插入的图片只有一部分是我们想要的,那就需要我们将这一部分裁剪出来,word本身就可以方便快捷的对图片进行裁剪,那么下面就由学习啦小编给大家分享下在word中修改图片的技巧,希望能帮助到您. 在 ...

  7. word中图片超出页边距_如何在Word中更改页边距

    word中图片超出页边距 Word documents open with one-inch margins by default. You can adjust the page margins b ...

  8. word中,解决插入形状后固定位置不变。

    在office上的word中,如果插入形状后,默认"对象随文字移动".当出现文字或者图片的格式出现更换,该形状就会随着变化位置.或者将word转换为PDF格式后,形状也会出现位置变 ...

  9. word中每页后面的空白怎么删掉

    word中每页后面的空白怎么删掉 一.上图说明现象 二.解决办法 如图已经找到原因,多了一个分页符 选中删除即可完美解决 再来看,空白已经没有

最新文章

  1. 文件读取getline与fscanf_s
  2. 计算机毕业论文过程管理手册,毕业论文过程管理手册(修改)-陈亚琴.doc
  3. NIX***检测方法
  4. 使用markdown编辑evernote(印象笔记)的常用方法汇总
  5. Windows保护模式学习笔记(十四)—— 阶段测试
  6. 关于myeclipse buildpath的jar包不能复制到tomcat lib下的问题
  7. 面试官问:如果MySQL引起CPU消耗过大,你会怎么优化
  8. zookeeper 密码_阿里资深JAVA架构带你深度剖析dubbo和zookeeper关系
  9. 使用@Async进行异步调用详解
  10. php sort函数,php中sort函数的功能起什么作用呢?
  11. loadrunner解决在项目中的难点解决
  12. LVS--DR模型介绍及实现
  13. 当安防撞上AI风潮 会迸出怎样火花?
  14. cmake中添加引用动态链接_C和C++使用对方编译的动态链接库
  15. java高级工程师面试题_java高级工程师面试题及答案解析
  16. 凸优化学习(一)凸集与凸函数、凸优化问题
  17. 普通卷积、分组卷积和深度分离卷积概念以及参数量计算
  18. IC卡密码的破解方法浅谈
  19. For Your Dream
  20. ICG-PEG-Biotin结构式,吲哚菁绿-聚乙二醇-生物素 荧光染料聚乙二醇衍生物

热门文章

  1. LINUX开机卡文件系统检查,Linux开机提示:timed out waiting for device dev-vdb1.device_Linux文件系统检查的依赖关系失败...
  2. Java中线程的状态
  3. Dom基础 特殊的节点 获取元素节点的内容 获取元素的属性 css属性 Dom获取元素的方法
  4. Go --- Marshal与Unmarshal基础用法
  5. 拳王虚拟项目公社:如何利用信息差在闲鱼赚钱,闲鱼月入十万的小白怎么玩?
  6. 【zz】如何在word中自动给姓名按姓氏笔画排序
  7. 自己动手写任务调度平台
  8. 电信烽火2821t虚拟服务器设置,终端使用指南
  9. 七、《好先生》经典台词
  10. 【C++】设计模式------单例模式(懒汉和饿汉)