1.vba如何设置word图片格式
一、旋转图片
Dim blnIsInlineShape As Boolean
If Selection.Type = wdSelectionInlineShape Then
blnIsInlineShape = True
Selection.InlineShapes(1).ConvertToShape
End If
Dim intTurn As Integer
intTurn = InputBox("请输入图形要旋转的角度值" & vbCrLf &; "正数表示顺时针,负数表示逆时针。", "图形旋转", 30)
Selection.ShapeRange.IncrementRotation intTurn
End Sub
二、将文档中的每张图片的版式转换为嵌入式图形
For Each s In Documents("MyDoc.doc").Shapes
If s.Type = msoPicture Then
s.ConvertToInlineShape
End If
Next s
三、设置图片的高度宽度
Mywidth=10'10为图片宽度(厘米)
Myheigth=10'10为图片高度(厘米)
For Each iShape In ActiveDocument.InlineShapes
iShape.Height = 28.345 * Myheigth
iShape.Width = 28.345 * Mywidth
Next iShape
四、得到图片的像素
Sub 获取嵌入型图片的像素()
On Error Resume Next
With Selection.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.Execute findtext:="^g", MatchWildcards:=False, Wrap:=wdFindStop
MsgBox "该图片的像素为:" & Selection.InlineShapes(1).Width _
& " * " & Selection.InlineShapes(1).Height
End With
End Sub
五、复制图片到word文档中
Dim objWordApp As Word.Application
Dim objWord As Word.Document
Range(Cells(3, 2), Cells(11, 11)).Select
Selection.CopyPicture
Set objWordApp = CreateObject("Word.Application")
Set objWord = objWordApp.Documents.Add
objWord.Application.Visible = True
objWord.Application.Selection.Paste
Set objWord = Nothing
Set objWordApp = Nothing
2.WORD宏,设置图片格式
word2007以上版本使用docm格式可以保存宏,保存的时候选择类型为“带宏的word文档”就可以了,不用向下兼容。
不用VBA是无法实现这一功能的,实际上宏只是用代码记录下操作便于重复使用,其实质与作法与VBA没有什么区别。不过,VBA是人工编写代码,宏是自动编写代码而已。
创建宏:
1、创建新宏。点击工具“开发工具”里的分组“代码”里的“宏”命令代码,在弹出的“宏”对话窗里的“宏名称”下面的文本框里输入宏名称(这里输入“CropPicture”),选择“宏的位置”为当前的文档。最后,点击“创建”命令按钮,会弹出VBA的IDE环境,里面已经给出CropPicture程序的程序头尾。如下:
Sub CropPicture()
'
' CropPicture 宏
'
'
End Sub
2、添加代码
把下面代码里的Sub CropPicture()与End Sub之间的代码粘贴到上面提到的代码之间或者直接用下面的代码覆盖上面提到的代码。
'剪切图片
Sub CropPicture()
Dim shps As InlineShapes, shp As InlineShape
Set shps = ActiveDocument.InlineShapes
'左、右、顶、底边各剪切20磅,根据需要修改就行了。
For Each shp In shps
With shp.PictureFormat
.CropLeft = 20
.CropRight = 20
.CropTop = 20
.CropBottom = 20
End With
Next
End Sub
添加热键
点击word文档左上角的Office按钮(logo图标),执行弹出菜单里的“word选项”,会弹出一个对话窗。
在弹出的对话窗里点击左侧导航条“自定义”,点击右侧设置项里的“键盘快捷方式”右侧的“自定义”命令按钮,会弹出“自定义键盘”对话窗。
将“指定命令”的类型选择为“宏”,选择“将更改保存在”右侧的下拉列表,选择为你正在编辑的文档。这时,“宏”列表里会显示当前文档里的所有宏,我们选择“CropPicture”,然后将光标移入“新按新快捷键”文本框,按下“Ctrl+Q”键,点击“指定”命令按钮退出,即可。
调用
按键盘键^q,就可以直接调用宏“CropPicture”,帮你把当前文档里的所有图片向内剪切40磅了。
3.如何用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" '添加“可选文字”。
4.怎么用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 = True End Function。
5.利用VBA如何将批量图片导入WORD的指定表格格式里
将excel表格中的数据批量插入到word中的操作方法:
1、单击插入----对象按钮;
2、弹出插入对话框对话框,选择由文件创建对话框,单击浏览按钮;
3、弹出浏览对话框,选择需要插入有Excel文件;
4、单击插入按钮即可。
注:
(1)若选中链接到文件,源文件修改,Word中的表格也随之改变;
(2)若选中显示为图片,则以图标的形式插入到Word,双击可以打开其源文件。
转载请注明出处51数据库 » vbaword设置图片格式
辣条43295881