
1.word vba 插入图片
最简单办法是录制宏,然后从菜单从硬盘指定一个图片文件插入,然后修改大小,结束录制代码会包括图片路径。
然后通过循环重复这一过程 大致代码 Dim i%, Files() As StringFiles = Array("c:\1.jpg", "c:\2.jpg") '。.定义你的图片文件路径For i = 0 To UBound(Files) '复制你的宏代码到这里,并修改文件名为Files(i) '视情况每插入一图片后回车 开始新的段落 Selection.TypeParagraphNext。
2.如何用VBA中获取word文档中的图片
于图片来说,,分为二种的,,第一种:是Shape对象(Word中自带的“自选图形”)第二种:是InlineShape对象(嵌入式图片,也就是所谓的通过点击菜单栏中的“插入”->“图片”->“来自文件”)-------------------如何判断word文档中是否存在一张图片呢?这个问题。
我来解答:判断word文档中是否存在一张图片,可以通过看一看word文档中的inlineshape对象的数量来判断。举例:Dim doc As Document '当前打开的文档对象DocumentDim MyApp As Word.Application 'Word应用程序对象Dim MyFileName As String '当前打开的文件名MyFileName="c;\aaa.doc" '此处可以改成你的文件名字Set MyApp = CreateObject("Word.Application")Set doc = MyApp.Documents.Open(MyFileName)If doc.InlineShapes.Count <> 0 thenmsgbox "有嵌入式图片存在!"Elsemsgbox "没有嵌入式图片存在!"End if-------------------------------------------------------如果你非要想知道,用户到底是不是插入了你要求的图片的话,你要必须要再他进行插入图片操作时进行控制,也就是说,你必须把用户所插入的图片的(绝对地址)或者(图片名字)添加到用户所插入图片的“可选文字”中记录下来。
MydocInlineShapes.AddPicture(FileName, LinkToFile, SaveWithDocument, Range)FileName String 类型,必需。指定要创建对象的文件名。
如果忽略本参数,则使用当前文件夹。LinkToFile Variant 类型,可选。
如果此属性设置为 True,则将 OLE 对象与创建该对象的文件链接。如果设置为 False,则令该 OLE 对象成为该文件的独立副本。
默认值为 False。SaveWithDocument Variant 类型,可选。
如果此属性为 True,则将链接的图片与文档一起保存。默认值为 False。
Range Variant 类型,可选。指定一个区域,OLE 对象放置在该区域的文字中。
如果该区域未折叠,那么图片将覆盖该区域。如果忽略此参数,则自动放置图片。
ActiveDocument.Shapes.AddPicture "C:\stone.bmp",True, True,MyRangeActiveDocument.InlineShapes(ID).AlternativeText = App.Path & "\temp" & shapeII & ".bmp" '添加“可选文字”。
3.怎么用vba在word表格中插入图片
'*****************************************************************'* DESCRIPTION:'* 将指定路径、图片名和图片格式的图片插入到指定行列的表格中。
'* INPUTS:'* imagePath - 图片文件路径'* imageName - 图片文件名'* imageformat - 图片格式'* indexRow - 图片插入所在行'* indexColumn - 图片插入所在列'* OUTPUTS:'* none'* RETURNS:'* 成功插入返回 TRUE,失败返回 FALSE'*****************************************************************Private Function InsertImage(ByVal imagePath As String, _ ByVal imageName As String, _ ByVal imageformat As String, _ ByVal indexRow As Integer, _ ByVal indexColumn As Integer) As Boolean Dim filePath As String Dim imageCount As Integer ' 表格中的图片数 Dim fso As Object ' 文件系统对象 Set fso = CreateObject("Scripting.FileSystemObject") ' 创建文件系统对象 filePath = imagePath & "\" & imageName & "." & imageformat If (Not fso.FileExists(filePath)) Then InsertImage = False Exit Function Else imageCount = Selection.Tables(1).Cell(Row:=indexRow, Column:=indexColumn).Range.InlineShapes.Count ' 如果表格中本身就有图片就不插入图片 If (imageCount = 0) Then Selection.Tables(1).Cell(Row:=indexRow, Column:=indexColumn).Range.InlineShapes.AddPicture filePath End If End If InsertImage = TrueEnd Function。
4.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会进入无响应状态。图片越多,无响应的时间越长。
5.如何用VBA中获取word文档中的图片
于图片来说,,分为二种的,,
第一种:是Shape对象(Word中自带的“自选图形”)
第二种:是InlineShape对象(嵌入式图片,也就是所谓的通过点击菜单栏中的“插入”->“图片”->“来自文件”)
-------------------
如何判断word文档中是否存在一张图片呢?这个问题。
我来解答:判断word文档中是否存在一张图片,可以通过看一看word文档中的inlineshape对象的数量来判断。
举例:
Dim doc As Document '当前打开的文档对象Document
Dim MyApp As Word.Application 'Word应用程序对象
Dim MyFileName As String '当前打开的文件名
MyFileName="c;\aaa.doc" '此处可以改成你的文件名字
Set MyApp = CreateObject("Word.Application")
Set doc = MyApp.Documents.Open(MyFileName)
If doc.InlineShapes.Count <> 0 then
msgbox "有嵌入式图片存在!"
Else
msgbox "没有嵌入式图片存在!"
End if
-------------------------------------------------------
如果你非要想知道,用户到底是不是插入了你要求的图片的话,你要必须要再他进行插入图片操作时进行控制,也就是说,你必须把用户所插入的图片的(绝对地址)或者(图片名字)添加到用户所插入图片的“可选文字”中记录下来。
MydocInlineShapes.AddPicture(FileName, LinkToFile, SaveWithDocument, Range)
FileName String 类型,必需。指定要创建对象的文件名。如果忽略本参数,则使用当前文件夹。
LinkToFile Variant 类型,可选。如果此属性设置为 True,则将 OLE 对象与创建该对象的文件链接。如果设置为 False,则令该 OLE 对象成为该文件的独立副本。默认值为 False。
SaveWithDocument Variant 类型,可选。如果此属性为 True,则将链接的图片与文档一起保存。默认值为 False。
Range Variant 类型,可选。指定一个区域,OLE 对象放置在该区域的文字中。如果该区域未折叠,那么图片将覆盖该区域。如果忽略此参数,则自动放置图片。
ActiveDocument.Shapes.AddPicture "C:\stone.bmp",True, True,MyRange
ActiveDocument.InlineShapes(ID).AlternativeText = App.Path & "\temp" & shapeII & ".bmp" '添加“可选文字”
6.如何用vba取得一个word文件中的所有的图片
提供网上示例代码供参考(此代码的思路是遍历 word 文档中的 Shapes ,缩放到原始图片尺寸,再转粘贴到 Excel 中,借用 Excel 的 ChartObjects 提供的导出功能实现图片原样导出): Sub test() Rem 工具--引用--勾选 Microsoft Excel x.x Object Library.. Dim myshape As Object, ExcelApp As New Excel.Application Dim Excel As Workbook, i%, z% Set Excel = ExcelApp.Workbooks.Add For Each myshape In ActiveDocument.InlineShapes If myshape.Type = 3 Then i = i + 1 myshape.Select Set myshape = myshape.ConvertToShape Rem 以下代码将图片以原始比例展示 With myshape .ScaleHeight 1, True, msoScaleFromMiddle .ScaleWidth 1, True, msoScaleFromMiddle End With Selection.Copy With Excel.ActiveSheet.ChartObjects.Add(0, 0, myshape.Width, myshape.Height).Chart .Paste .Export ActiveDocument.Path & "" & i & ".png" .Parent.Delete End With End If Next Excel.Close False ExcelApp.QuitEnd Sub。
7.在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会进入无响应状态。图片越多,无响应的时间越长。
8.在word中如何用VBA实现插入多张图片
要从两个方面考虑:1、如何把现有文档中的图片导出?这个代码片断可以参考一下: Set ImageStream = CreateObject("ADODB.Stream") With ImageStream .Type = 1 .Open .Write ActiveDocument.InlineShapes(1).Range.EnhMetaFileBits .SaveToFile "d:\Temp\Output.bmp" .Close End With Set ImageStream = Nothing2、如何把已经到处的图片导入到新文档中?这个函数调用可以参考一下: ActiveDocument.InlineShapes.AddPicture如果还是不明白的话,请补充提问。
_____补充:请问楼主你运行那个代码片断得到的*完整*错误信息是什么?报错的时候,系统一般会把光标移动到出错的那行代码上,你看到的是哪一行代码出错呢?我看你贴上来的代码应该是没有什么语法上的错误,“Exit For”的确是不应该要的,但那也不是语法错误啊。
苍南阿里人