四张图片放在一页第一行为四张图片的文件名

插入图片调整尺寸参考

Sub final()
Dim FN As String, N%, W#, H#, PW#, PH#
With ActiveDocument.PageSetup '以下设置纸型及页边距(A4,页边距2cm),并计算出图片应有的宽高
.Orientation = wdOrientPortrait
.TopMargin = CentimetersToPoints(2)
.BottomMargin = CentimetersToPoints(2)
.LeftMargin = CentimetersToPoints(2)
.RightMargin = CentimetersToPoints(2)
.Gutter = CentimetersToPoints(0)
.PageWidth = CentimetersToPoints(21)
.PageHeight = CentimetersToPoints(29.7)
PW = (.PageWidth - .LeftMargin - .RightMargin) / 2
PH = .PageHeight - .TopMargin - .LeftMargin
End With
FN = Dir("F:\*.jpg") '循环当前文件目录下各个jpg文件
Dim f(3) As String
b = 0
Do While FN <> "" '当文件名不为空时持续循环
Selection.InlineShapes.AddPicture "F:\" & FN '插入当前循环到的jpg文件
a = b Mod 4
f(a) = FN
With ActiveDocument.InlineShapes(b + 1)
W = .Width '取得宽与高
H = .Height
.LockAspectRatio = msoTrue
If W / H >= PW / PH Then '如果图片的宽高比大于应设置的宽高比,则
.Width = PW * 0.99 '调整宽度为应设置的宽度,高度按调整前后的宽度比进行缩放
'.Height = H * PW / W
Else '如果图片的宽高比小于应设置的宽高比,则
.Height = PH * 0.99 '调整高度为应设置的高度,宽度按调整前后的高度比进行缩放
'.Width = W * PH / H
End If
End With
FN = Dir '循环到下一个文件
If a = 3 Then
Selection.InsertBreak Type:=wdPageBreak
Selection.GoTo What:=wdGoToLine, Which:=wdGoToPrevious, Count:=3
With Selection.Range
.Text = f(0) & "、" & f(1) & "、" & f(2) & "、" & f(3) & vbCrLf
.Font.Name = "times new roman"
.Font.Size = 12
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
End If
b = b + 1
Loop
If a <> 3 Then
Select Case a
Case 0
Selection.GoTo What:=wdGoToLine, Which:=wdGoToPrevious, Count:=1
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
With Selection.Range
.Text = f(0) & vbCrLf
.Font.Name = "times new roman"
.Font.Size = 12
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
Case 1
Selection.GoTo What:=wdGoToLine, Which:=wdGoToPrevious, Count:=1
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
With Selection.Range
.Text = f(0) & "、" & f(1) & vbCrLf
.Font.Name = "times new roman"
.Font.Size = 12
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
Case 2
Selection.GoTo What:=wdGoToLine, Which:=wdGoToPrevious, Count:=2
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
With Selection.Range
.Text = f(0) & "、" & f(1) & "、" & f(2) & vbCrLf
.Font.Name = "times new roman"
.Font.Size = 12
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Count:=1
End Select
End If
End Sub

Word中用VBA插入一个文件夹里的所有.jpg图片的更多相关文章

  1. OpenCV玩耍(一)批量resize一个文件夹里的所有图像

    鉴于用caffe做实验的时候,里面牵扯到一个问题是必须将训练集和测试集都转成256*256的图像,而官网给出的代码又不会用,所以我用opencv转了.其实opencv只转一幅图会很简单,关键在于“批量 ...

  2. 使用everything把一个文件夹里(包含子目录)的所有图片拷贝到另一个文件夹

    最近在找数据集,想要预览数据集里面的全部图片,而因为一些数据集的数据存储方式使得图片都分布在若干层后的子文件里,所以就需要一个如题所示的功能. 找了一堆XCOPY命令的使用方法,差点要撸起袖子写代码干 ...

  3. matlab批量读取一个文件夹里类似命名的mat文件

    参考网址: Matlab读取同一路径下多个txt或mat文件总结 matlab 批量读取数据文件.mat .dat 整理:matlab批量读入数据文件的方法 首先命名方式体现在只是名字里数字有变化,其 ...

  4. 教你IO流来便利电脑磁盘所有文件,把图片放到一个文件夹里(会发现什么不可告人的密码)

    一.需求 我要把C盘下面的所有图片都拿出来,放到一个新文件夹中.今天小编一身正气,看看有没有什么意外发现!!学会看看自己的盘,悄悄的哦!!! 二.代码展示(运行时间可能有点长) import java ...

  5. java 把一个文件夹里图片复制到另一个文件夹里

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.ut ...

  6. eclipse中把多个项目放在一个文件夹里

    1..Package Explorer 可以在这里打开 2.选择Working sets 3.新建java working set 4.把文件夹显示出来 5.可以把项目移动到文件夹里面了,鼠标左键拖就 ...

  7. 【文件】读取一个文件夹下所有的jpg图片

    今天做视频处理的时候,发现给的视频是用jpg图片的形式给出的,名字的命名规律性不是很强.就想找一种通用的遍历文件夹下图片的方法. 开始在网上找到了下面这份代码,发现只能读取所有的文件夹,文件都被跳过了 ...

  8. C++实现:把一个文件夹里的冗余文件(.txt)删除

    代码很简单,调用了MFC里的几个函数.这里的冗余判断,是要遍历文件内容,进行两两比较. 需要注意的地方有两点: 1.源文件里头文件<afx.h>必须放在最前面.这里是为了避免nafxcwd ...

  9. SQL扫描并执行文件夹里的sql脚本

    场景:项目数据库操作全部使用存储过程实现.每天都会有很多存储过程更新/增加,人工对测试环境中存储过程更新,会有一定概率出现遗漏,也麻烦!所以,需要一个工具将文件夹中所有存         储过程执行一 ...

随机推荐

  1. zabbix监控服务器时间问题

    zabbix中有自带对linux服务器时间进行监控的模板,用的key是system.localtime返回当前的系统时间,而配置tigger报警时是用的fuzzytime(N)方法,该方法是将返回的系 ...

  2. Centos 安装 Oracle Java JDK

    Centos 安装 jdk 创建目录,用来存放下载的 JDK cd /usr/local mkdir -p tools cd tools 下载JDK,后边的下载地址你可以到 orcal 官网去获取最新 ...

  3. Linq to Entities,ADO.NET Entity Framework 模型优先

    一.概念: Database First(数据库优先):存在的DB------------->生成Data Model  .edmx文件 Model First(模型优先):Data Model ...

  4. WebDAV漏洞直接远程溢出拿下服务器

    以上是 我做的幻灯片 介绍什么是WebDAV 有什么用 漏洞测试需要的工具 http://pan.baidu.com/s/1o6DYxAE看到这里 说明直接远程溢出 提升权限为system 这些都很久 ...

  5. Maven编译Java程序配置

    Hive 需要在工程里添加的Jar包: hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar $HIVE_HOME/lib/hive-exe ...

  6. redis几种加锁的实现

    1. redis加锁分类 redis能用的的加锁命令分表是INCR.SETNX.SET 2. 第一种锁命令INCR 这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执 ...

  7. Linux Min装机--配置JDK替换OpenJDK

    @Linux Min装机--配置JDK替换OpenJDK   1.将下载的JDK压缩包解压到/usr/lib/jvm wil use : 一.文件复制命令cp     命令格式:cp [-adfilp ...

  8. RedisClient的安装及基本使用

    管理redis的可视化客户端目前较流行的有三个:Redis Client ; Redis Desktop Manager ; Redis Studio. 这里目前给大家介绍Redis Client 的 ...

  9. 【[SDOI2014]数表】

    求 \[\sum_{i=1}^N\sum_{j=1}^Mσ(gcd(i,j))[σ(gcd(i,j))<=a]\] \(σ\)表示约数和函数 感觉非常难求的样子 先把套路搞出来 \[f(n)=\ ...

  10. rocketmq搭建

    maven参数:  mvn -Prelease-all -DskipTests clean install -U