word vba对图片的操作 word vba 图片大小
摘要:如何用VBA中获取word文档中的图片 于图片来说,,分为二种的,,第一种:是Shape对象(Word中自带的“自选图形”)第二种:是InlineShape对象(嵌入式图片,也就是所谓的通过点击菜单栏...
发布日期:2020-10-16如何用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" "添加“可选文字”
如何用VBA中获取word文档中的图片
方法1当我们打开Word时,会弹出“Microsoft Office Word 需要 VBA 宏语言支持来完成此操作。
”这项功能目前尚未安装,是否现在安装?点击是又安装不了,证明此方法行不通,那么就点击否。
2然后弹出“此文档有宏,该应用程序的宏语言支持功能被取消。
功能要求的VBA不可用,是否以只读方式打开该文档?直接点击取消。
3然后点击菜单栏的工具按钮,再选择“宏”,然后选择“安全性”。
4在弹出的安全项中,选择非常高。
只允许运行安装在受信任位置的宏。
所有其他签署的和未经签署的宏都将被禁用。
5然后点击可靠发行商,将颁发对象中有的宏全部选择,然后点击删除,要全部删除掉,然后去掉信任所有安装的加载项和模板及信任对于“Visual Basic项目”的访问前面的勾,两个复选框都不要勾选,然后点击确定返回打开Word就可以了。
怎样在Word中用VBA操作表格
Sub a_dele_little_picture()On Error Resume NextSelection.HomeKey wdStory "光标移到最前面。
Dim iShape1 As Shape "图片全部修改为嵌入式For Each iShape1 In ActiveDocument.ShapesiShape1.ConvertToInlineShapeNextDim myInlineShape As InlineShapeFor Each myInlineShape In ActiveDocument.InlineShapes "缺少FOR循环If myInlineShape.Width If myInlineShape.Height Next "缺少FOR循环End Sub
怎样在Word中用VBA操作表格
操作步骤。
第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。
第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。
第三,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。
第四,双击该按钮,进入VB代码编写模式,将以下代码复制进去。
Private Sub CommandButton1_Click()Application.ScreenUpdating = FalseDim myPas As String, myPath As String, i As Integer, myDoc As DocumentWith Application.FileDialog(msoFileDialogFolderPicker) .Title = "选择目标文件夹" If .Show = -1 Then myPath = .SelectedItems(1) Else Exit Sub End IfEnd WithmyPas = InputBox("请输入打开密码:")With Application.FileSearch .LookIn = myPath .FileType = msoFileTypeWordDocuments If .Execute > 0 Then For i = 1 To .FoundFiles.Count Set myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "大家好" .Replacement.Text = "你好" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll myDoc.Save myDoc.Close Set myDoc = Nothing Next End IfEnd WithApplication.ScreenUpdating = TrueEnd Sub 第五,保存上面代码,退出VB编辑模式,返回Word文档界面。
第六,单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。
第七,进行测试:点击按钮,选择要放置多个WORD文档所在的文件夹,确定后即可完成!注意如果WORD文档没有加密的话,密码项就不填,直接确认。
就会发现该文件夹下面的所有WORD文档中“大家好”已被替换为“你好”了。