+ -
当前位置:首页 → 问答吧 → 请帮忙看下这个宏怎么加代码,才能一个页面一张图

请帮忙看下这个宏怎么加代码,才能一个页面一张图

时间:2009-09-05

来源:互联网

我把工具选项中设为"嵌入式",之后全选文件夹中的几百张图拖入WORD..

因为工作原因,强制电子档WORD中的图要设置为"浮于文字下方"
不可能一张张的去设置图片
所以用了《请问怎么用VBA把WORD里的图片格式一次性改为“嵌入型”》中的宏
但是我运行宏后,所有图是都变成了“浮于文字下方”
问题出现了:本来是一个页面一张图的WORD,除了第一张图外,所有图都重叠在第一个页面的下半部分!!

我要的效果就是运行宏后,还是像原来“嵌入式”那样一页面一张,但图版式变为“浮于文字下方”!!
那个宏有代码来实现不允许重叠,但不知为什么还出现这个问题!!请大家帮下我,谢谢啊
为方便大家我把宏,原DOC文件,和运行宏后的DOC都放上来了
最后再对所有EXCELHOME的朋友说声谢谢!
上述帖子中守老大的宏:
Option Explicit
Sub 图片版式转换()
    Dim oShape As Variant, shapeType As WdWrapType
    On Error Resume Next
    If MsgBox("Y将图片由嵌入式转为浮动式,N将图片由浮动式转为嵌入式", 68) = 6 Then
        shapeType = Val(InputBox(Prompt:="请输入图片版式:0=四周型,1=紧密型, " & vbLf & _
                                         "3=衬于文字下方,4=浮于文字上方", Default:=0))
        For Each oShape In ActiveDocument.InlineShapes
            Set oShape = oShape.ConvertToShape
            With oShape
                Select Case shapeType
                Case 0, 1
                    .WrapFormat.Type = shapeType
                Case 3
                    .WrapFormat.Type = 3
                    .ZOrder 5
                Case 4
                    .WrapFormat.Type = 3
                    .ZOrder 4
                Case Else
                    Exit Sub
                End Select
                .WrapFormat.AllowOverlap = False    '不允许重叠
            End With
        Next
    Else
        For Each oShape In ActiveDocument.Shapes
            oShape.ConvertToInlineShape
        Next
    End If
End Sub

附件

嵌入式图片.rar(217.12 KB)

2009-9-5 18:43, 下载次数: 15

作者: yao32jay   发布时间: 2009-09-05

parent.top应该可以

作者: zhaozyuan   发布时间: 2009-09-05

好东西大家定

作者: war3mars   发布时间: 2011-07-03

热门下载

更多