Word中用VBA插入一个文件夹里的所有.jpg图片
每四张图片放在一页,第一行为四张图片的文件名
插入图片调整尺寸参考
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图片的更多相关文章
- OpenCV玩耍(一)批量resize一个文件夹里的所有图像
鉴于用caffe做实验的时候,里面牵扯到一个问题是必须将训练集和测试集都转成256*256的图像,而官网给出的代码又不会用,所以我用opencv转了.其实opencv只转一幅图会很简单,关键在于“批量 ...
- 使用everything把一个文件夹里(包含子目录)的所有图片拷贝到另一个文件夹
最近在找数据集,想要预览数据集里面的全部图片,而因为一些数据集的数据存储方式使得图片都分布在若干层后的子文件里,所以就需要一个如题所示的功能. 找了一堆XCOPY命令的使用方法,差点要撸起袖子写代码干 ...
- matlab批量读取一个文件夹里类似命名的mat文件
参考网址: Matlab读取同一路径下多个txt或mat文件总结 matlab 批量读取数据文件.mat .dat 整理:matlab批量读入数据文件的方法 首先命名方式体现在只是名字里数字有变化,其 ...
- 教你IO流来便利电脑磁盘所有文件,把图片放到一个文件夹里(会发现什么不可告人的密码)
一.需求 我要把C盘下面的所有图片都拿出来,放到一个新文件夹中.今天小编一身正气,看看有没有什么意外发现!!学会看看自己的盘,悄悄的哦!!! 二.代码展示(运行时间可能有点长) import java ...
- java 把一个文件夹里图片复制到另一个文件夹里
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.ut ...
- eclipse中把多个项目放在一个文件夹里
1..Package Explorer 可以在这里打开 2.选择Working sets 3.新建java working set 4.把文件夹显示出来 5.可以把项目移动到文件夹里面了,鼠标左键拖就 ...
- 【文件】读取一个文件夹下所有的jpg图片
今天做视频处理的时候,发现给的视频是用jpg图片的形式给出的,名字的命名规律性不是很强.就想找一种通用的遍历文件夹下图片的方法. 开始在网上找到了下面这份代码,发现只能读取所有的文件夹,文件都被跳过了 ...
- C++实现:把一个文件夹里的冗余文件(.txt)删除
代码很简单,调用了MFC里的几个函数.这里的冗余判断,是要遍历文件内容,进行两两比较. 需要注意的地方有两点: 1.源文件里头文件<afx.h>必须放在最前面.这里是为了避免nafxcwd ...
- SQL扫描并执行文件夹里的sql脚本
场景:项目数据库操作全部使用存储过程实现.每天都会有很多存储过程更新/增加,人工对测试环境中存储过程更新,会有一定概率出现遗漏,也麻烦!所以,需要一个工具将文件夹中所有存 储过程执行一 ...
随机推荐
- D3——scale
d3.scale 比例尺 “Scales are functions that map from an input domain to an output range” Domains 定义域 和 R ...
- VM安装CentOs7虚拟机后无法上网之解决方法
最近在研究DC/OS的安装,读了很多安装方法后决定先从docker的安装入手,由于DC/OS的安装必须在CentOs7版本以上,所以就在VM下安装了CentOs7,殊不知安装后并不能上网,于是乎又转到 ...
- BZOJ3174:[TJOI2013]拯救小矮人(DP)
Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...
- 「bzoj 4025: 二分图」
题目 显然二分图没有奇环 于是考虑使用并查集维护一下看看是否存在奇环 我们可以考虑加权并查集,维护出\(x\)到\(fa_x\)的实际距离 由于我们只需要考虑奇偶性,于是我们处理出到根的路径异或一下就 ...
- ZooKeeper学习之路 (四)ZooKeeper开发环境eclipse配置
一.eclipse中配置zookeeper开发环境 1)将zookeeper eclipse plugin中的6个jar包放到eclipse安装目录下的plugins文件中,重启eclipse (2) ...
- [19/04/17-星期三] Java的动态性_反射(Reflection)机制
一.前言 动态语言:程序运行时,可以改变程序结构或变量类型.典型的代表:Python,ruby,JavaScript 如JavaScript代码: function test(){ var s=&qu ...
- 5、Spring-Cloud-声明式调用 Feign(上)
5.1.写一个 Feign 害户端 新建项目: 依赖: <dependency> <groupId>org.springframework.boot</groupId&g ...
- spring boot容器加载完后执行特定操作
有时候我们需要在spring boot容器启动并加载完后,开一些线程或者一些程序来干某些事情.这时候我们需要配置ContextRefreshedEvent事件来实现我们要做的事情 1.Applicat ...
- C#回调实现的一般过程
C#回调实现的一般过程 C#的方法回调机制,是建立在委托基础之上的,下面给出它的典型实现过程. (一) 定义.声明回调 Delegate void DoSomeCallBack(type para); ...
- Linux系统的环境变量$PATH
$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 修改$PATH的方法有很多,比如: export PA ...