导航:首页 > 文字图片 > word中vba批量插入图片

word中vba批量插入图片

发布时间:2023-09-20 18:49:05

怎么批量把图片放到WORD里并附上该图的名称

Sub 选择重命名文件夹()

Application.ScreenUpdating = False

With Application.FileDialog(msoFileDialogFolderPicker) '运行后出现标准的选择文件夹对话框

If .Show Then myPath = .SelectedItems(1) Else Exit Sub '如选中则返回=-1 / 取消未选则返回=0

End With

If Right(myPath, 1) <> "" Then myPath = myPath & ""

'返回的是选中目标文件夹的绝对路径,但除了本地C 盘、D 盘会以"C:"形式返回外,其余路

径无""需要自己添加

Getfd (myPath)

Application.ScreenUpdating = True

End Sub

Sub Getfd(ByVal pth)

On Error Resume Next

Dim strPath As String

'插入两行

Columns("A:B").Select

Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

'设置B 行内容

Range("B1") = "目标名称"

Range("B2").Select

ActiveCell.FormulaR1C1 = "=RC[1]&"" ""&RC[2]&"".JPG""" '设置B 行内容为目标名称

Range("B2").Select

m = Range("C65536").End(xlUp).Row

Selection.AutoFill Destination:=Range("B2:B" & m) '填充B 行

'设置A 行内容为所选文件下所有图谱名称

Range("A1") = "原名称"

strPath = pth & "\"

f = Dir(strPath & "*.jpg")

k = 1

Do While f <> ""

k = k + 1

Range("A" & k) = f

f = Dir

Loop

'调整AB 列宽

Cells.Select

Cells.EntireColumn.AutoFit '调整AB 列宽

'重命名

a = Cells(Cells.Rows.Count, 1).End(xlUp).Row + 3 'A 列最后可见单元的行号

For b = 2 To a

c = Range("a" & b).Value

cc = Range("b" & b).Value

Name strPath & c As strPath & cc '重命名

Next

MsgBox ("重命名完成")

End Sub

⑵ 关于图片批量导入word中并在图片上方附加文件名的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.EndKey
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Set MyPic = Selection.InlineShapes.AddPicture(FileName:=Fn, SaveWithDocument:=True) '按比例调整相片尺寸
WidthNum = MyPic.Width
c = 6 '在此处修改相片宽,单位厘米
MyPic.Width = c * 28.35
MyPic.Height = (c * 28.35 / WidthNum) * MyPic.Height
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Next Fn
Else
End If
End With
Set myfile = Nothing
End Sub
Function 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
执行此代码后,弹出的选择对话框, 全选目标文件夹下的所有图片文件之后,点击确定。然后静静的等待电脑完成处理工作,次数word会进入无响应状态。图片越多,无响应的时间越长。

⑶ 想在word页面中,批量插入图片,使得每页有4张图片均匀分布在页面中,该怎么做呢

这是统一设置word文档中的图片样式,你的问题我不会,但是希望这个例子会对你有点提示。

使用宏:
一,在word中按alt+f11组合键,进入VBA模式
二,在左边的工程资源管理器中找到你的word文档,在其上右键/添加/模块
三,把下面代码复制,粘贴进去.
四,更改数值, 改一下宽度和高度数值(10),点运行(类似播放按钮.)或f5,即可设置文档中全部图片
Sub Macro()
Mywidth=10'10为图片宽度(厘米)
Myheigth=10'10为图片高度(厘米)
For Each iShape In ActiveDocument.InlineShapes
iShape.Height = 28.345 * Myheigth
iShape.Width = 28.345 * Mywidth
Next iShape
End Sub

⑷ word如何设置宏批量插入图片到word表格里(每一行2到3个表格)

邮件合并功能,应该是不能实现的吧。
采用简单的VBA宏编程,针对具体的表格格式,很容易实现的。可以hi我。

⑸ 用vba如何批量插入图片,公式详解

您好,根据您的需求,批量插入图片的参考代码如下:

OptionExplicit

PublicSub批量插入图片()
DimrngPictureAsRange

DimlngRowAsLong
DimintColAsInteger

WithActiveSheet
ForlngRow=1To16Step8
ForintCol=1To12Step3
SetrngPicture=.Cells(lngRow+1,intCol+2)
笑好rngPicture.Select

With.Pictures.Insert("E:坑图"&rngPicture.Value&".jpg").ShapeRange
.Height=70.5
.Width=105
EndWith
Next
Next
EndWith

SetrngPicture=Nothing
EndSub


PS:具体使用时请自行粗升源修改演示代码中的循环起止行、起止列和步进值。如果图片插入到单元格后出现偏移,请设岩态置 Picture 的 Left 属性和 Top 属性。


另外,也可以设置图片在单元格内水平居中(比单元格大的图片暂不考虑),参考代码如下:

OptionExplicit

PublicSub批量插入图片水平居中()
DimrngPictureAsRange

DimlngRowAsLong
DimintColAsInteger

WithActiveSheet
ForlngRow=1To16Step8
ForintCol=1To12Step3
SetrngPicture=.Cells(lngRow+1,intCol+2)
rngPicture.Select

With.Pictures.Insert("E:坑图"&rngPicture.Value&".jpg").ShapeRange
.Left=rngPicture.Left+(rngPicture.Width-.Width)/2
.Top=rngPicture.Top+(rngPicture.Height-.Height)/2
EndWith
Next
Next
EndWith

SetrngPicture=Nothing
EndSub

⑹ word用vba批量导入图片文件时,怎样保留图片原有大小,而不是统一固定大小跪谢!下为您原来提供的代码

试试把
MyPic.Width = c * 28.35
MyPic.Height = (c * 28.35 / WidthNum) * MyPic.Height
改为
'MyPic.Width = c * 28.35
'MyPic.Height = (c * 28.35 / WidthNum) * MyPic.Height

⑺ 在word中自动插入图片 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.EndKey
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Set MyPic = Selection.InlineShapes.AddPicture(FileName:=Fn, SaveWithDocument:=True) '按比例调整相片尺寸
WidthNum = MyPic.Width
c = 6 '在此处修改相片宽,单位厘米
MyPic.Width = c * 28.35
MyPic.Height = (c * 28.35 / WidthNum) * MyPic.Height
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Next Fn
Else
End If
End With
Set myfile = Nothing
End Sub
Function 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
执行此代码后,弹出的选择对话框, 全选目标文件夹下的所有图片文件之后,点击确定。然后静静的等待电脑完成处理工作,次数word会进入无响应状态。图片越多,无响应的时间越长。

⑻ 利用VBA如何将批量图片导入WORD的指定表格格式里

将excel表格中的数据批量插入到word中的操作方法:
1、单击插入----对象按钮;
2、弹出插入对话框对话框,选择由文件创建对话框,单击浏览按钮;
3、弹出浏览对话框,选择需要插入有Excel文件;
4、单击插入按钮即可。
注:
(1)若选中链接到文件,源文件修改,Word中的表格也随之改变;
(2)若选中显示为图片,则以图标的形式插入到Word,双击可以打开其源文件。

⑼ vba关于批量插入图片

批量插入图片代码:
sub 图片导入
dim s as shape
dim rg as range
'删除已有的图片
for each s in activesheet.shapes
if s.type <> 8 then
s.delete
end if
'导入图片
for each rg in range("B2:B10")'这里放要插入图片的单元格范围 B2:B10可以改成所需要的范围。
activesheet.shapes.addshape(msoshaperectangle,rg.left,rg.top,rg.width,rg.height).select
selection.shaperange.fill.userpicture "E:\图片"& rg.offset(0, -1) & ".jpg"'这里指定的是图片的存储路径为E盘下的图片文件夹,然后图片名称与A列的数据一致,后缀名为JPG格式。这些都可以自行更改,根据需要来定。
next rg
end sub

⑽ 寻找WORD VBA高手解决WORD批量插入图片程序的问题

Selection.Text = Basename(Fn) '这两句移到这里
Selection.EndKey

这两句移一下位置,其它不变。

Sub 批量插入图片()
Dim myfile As FileDialog
Set myfile = Application.FileDialog(msoFileDialogFilePicker)
With myfile
.InitialFileName = "D:\111"
If .Show = -1 Then
For Each Fn In .SelectedItems
Selection.Text = Basename(Fn) '这两句移到这里
Selection.EndKey
Set mypic = Selection.InlineShapes.AddPicture(FileName:=Fn, SaveWithDocument:=True)
'按比例调整相片尺寸
WidthNum = mypic.Width
c = 18 '在此处修改相片宽,单位厘米
mypic.Width = c * 28.35
mypic.Height = (c * 28.35 / WidthNum) * mypic.Height
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
If Selection.Start = ActiveDocument.Content.End - 1 Then '如光标在文末
Selection.TypeParagraph '在文末添加一空段
Else
Selection.MoveDown
End If
Next Fn
Else
End If
End With
Set myfile = Nothing
End Sub
Function 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

阅读全文

与word中vba批量插入图片相关的资料

热点内容
自制可爱小尺子图片 浏览:599
自动更改图片文字 浏览:112
冒汗的可爱图片 浏览:400
动漫城堡的图片 浏览:660
图片矩形投影怎么弄word 浏览:199
西瓜果冻的图片可爱 浏览:457
福建奔驰价格图片 浏览:79
消防车手绘图片简单又漂亮 浏览:832
男生图片头像背影 浏览:743
图片格式png怎么转换 浏览:104
白衣服装版型图片 浏览:158
沙发外套款式图片和价格 浏览:810
极简背景图片文字 浏览:881
手机高清姓氏牡丹花图片 浏览:625
读书笔记封面设计大全图片 浏览:685
磨姑头发型图片男生 浏览:187
word插入图片如何随意调整大小 浏览:383
如何把模糊的图片数字变清晰 浏览:949
在视频图片文章上如何生成二维码 浏览:422
长发美女伤感图片大全 浏览:942