ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: downbaidu

[求助]如何删除word中的固定大小的所有图片,用vba删除。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-2-27 06:40 | 显示全部楼层
QUOTE:
以下是引用downbaidu在2008-2-26 22:25:11的发言:

删除excel中所有工作簿中的图片和文字!

我要把里面的图片全部删除,有三个工作表。里面有三个图片,和三个文字。

现在要把里面的三个图片全部删除,还有文字也删除,文字是(下载摆渡)

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2008-2-27 6:39:19
'
仅测试于System: Windows NT Excel: 11.0 Language: 2052
'
0341^The Code CopyIn [ThisWorkbook- ThisWorkbook]^'
'*
-----------------------------
Option Explicit
Sub Example()
    Dim oSheet As Worksheet, oShape As Shape
    Dim myHeight As Single, myWidth As Single
    Dim DelString As String
    DelString = "
下载摆渡"
    myHeight = 30   '
,必须以磅为单位,如以厘米等,则会在单位换算过程中出现误差
    myWidth = 450.75    '

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '
以磅为单位返回sheets(1)需要删除的图形(图形1)的宽或者高
    '     MsgBox Sheets(1).Shapes(1).Width
    '     MsgBox Sheets(1).Shapes(1).Heigth
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Application.ScreenUpdating = False
    For Each oSheet In ActiveWorkbook.Sheets
        '
删除指定宽度高度的浮动式图形
        For Each oShape In oSheet.Shapes
            If oShape.Height = myHeight And oShape.Width = myWidth Then oShape.Delete
        Next
        '
删除指定文本
        oSheet.Cells.Replace What:=DelString, Replacement:=""
    Next
    Application.ScreenUpdating = True
End Sub
'----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-27 13:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用守柔在2008-2-27 6:28:23的发言:

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2008-2-27 6:27:58
'
仅测试于System: Windows NT Word: 11.0 Language: 2052
'
0339^The Code CopyIn [ThisDocument-ThisDocument]^'
'*
-----------------------------

Option Explicit

Sub Example()
    Dim oInlineShape As InlineShape, oShape As Shape
    Dim myHeight As Single, myWidth As Single
    myHeight = 23    '
,必须以磅为单位,如以厘米等,则会在单位换算过程中出现误差

    myWidth = 415    '

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '

   
以磅为单位返回需要删除的图形的宽或者高

    '    MsgBox Selection.ShapeRange(1).Width
    '    MsgBox Selection.ShapeRange(1).Height
    '    MsgBox Selection.InlineShapes(1).Width
    '    MsgBox Selection.InlineShapes(1).Height
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Application.ScreenUpdating = False
    '
删除指定高度宽度的嵌入式图形
    For Each oInlineShape In ActiveDocument.InlineShapes
        If oInlineShape.Height = myHeight And oInlineShape.Width = myWidth Then oInlineShape.Delete
    Next
    '
删除指定宽度高度的浮动式图形
    For Each oShape In ActiveDocument.Shapes
        If oShape.Height = myHeight And oShape.Width = myWidth Then oShape.Delete
    Next
    Application.ScreenUpdating = True
End Sub
'----------------------


有错误提示

TA的精华主题

TA的得分主题

发表于 2008-2-27 17:24 | 显示全部楼层
QUOTE:
以下是引用守柔在2008-2-27 6:40:32的发言:

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2008-2-27 6:39:19
'
仅测试于System: Windows NT Excel: 11.0 Language: 2052

' 0341^The Code CopyIn [ThisWorkbook- ThisWorkbook]^'
'*
-----------------------------

除了等待之外,楼主其实可以看一下代码头的.

你的图形在EXCEL工作薄中,宏代码自然在EXCEL的工作薄之中,怎么会在WORD中呢?

除非必须通过Word控制EXCEL是另当别论了.

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-27 22:18 | 显示全部楼层

版主教训的是,谢谢了!

还有就是PPT的可以帮忙再看下吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-27 22:19 | 显示全部楼层
QUOTE:
以下是引用downbaidu在2008-2-26 22:21:29的发言:

删除PPT幻灯片中固定大小的图片!

有三个幻灯片想一次删除里面的所有图片。

谢谢了。呵呵。


这是PPT的问题。

TA的精华主题

TA的得分主题

发表于 2008-2-28 06:17 | 显示全部楼层
QUOTE:
以下是引用downbaidu在2008-2-27 22:19:37的发言:

这是PPT的问题。

请将以下代码复制于活动PPT文档的标准模块代码窗口中(见附件)

Option Explicit

Sub Example()
    Dim oSlide As Slide, oShape As Shape
    Dim myWidth As Single, myHeight As Single
    myWidth = 527.25
    myHeight = 35
    For Each oSlide In ActivePresentation.Slides
        For Each oShape In oSlide.Shapes
            If oShape.Type = msoPicture Then
                If oShape.Width = myWidth And oShape.Height = myHeight Then
                    oShape.Delete
                End If
            End If
        Next
    Next
End Sub

jjgyioSK.rar (13.8 KB, 下载次数: 192)

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-28 14:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用downbaidu在2008-2-26 11:30:05的发言:
还有如何删除doc中设置了不同的页眉页脚,如何一次全部删除,或全部修改呢?

设置了首页页眉页脚,奇数页页眉页脚和偶数页页眉页脚,如何一次删除里面的文字和固定大小的图片呢?

谢谢了!

RLPyQeuS.rar (9.59 KB, 下载次数: 23)

TA的精华主题

TA的得分主题

发表于 2008-2-28 18:00 | 显示全部楼层
QUOTE:
以下是引用downbaidu在2008-2-28 14:18:31的发言:

设置了首页页眉页脚,奇数页页眉页脚和偶数页页眉页脚,如何一次删除里面的文字和固定大小的图片呢?

谢谢了!

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2008-2-28 17:59:42
'仅测试于System: Windows NT Word: 11.0 Language: 2052
'№ 0343^The Code CopyIn [ThisDocument-ThisDocument]^'
'* -----------------------------
Option Explicit
Sub Example()
'不管三七二十一,统统删除
    Dim oSection As Section, i As Byte, myRange As Range
    For Each oSection In ActiveDocument.Sections
        For i = 1 To 3
            Set myRange = oSection.Headers(i).Range
            myRange.Delete
            myRange.ParagraphFormat.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
        Next
        For i = 1 To 3
            Set myRange = oSection.Footers(i).Range
            myRange.Delete
        Next
    Next
End Sub
'----------------------
Sub Example2()
'删除文字和指定大小的图片
    Dim oSection As Section, i As Byte, myRange As Range
    Dim oInlineShape As InlineShape, oShape As Shape
    Dim myWidth As Single, myHeight As Single
    myWidth = 414.75
    myHeight = 27.75
    For Each oSection In ActiveDocument.Sections
        For i = 1 To 3
            Set myRange = oSection.Headers(i).Range
            For Each oInlineShape In myRange.InlineShapes
                If oInlineShape.Height = myHeight And oInlineShape.Width = myWidth Then oInlineShape.Delete
            Next
            For Each oShape In ActiveDocument.Shapes
                If oShape.Height = myHeight And oShape.Width = myWidth Then oShape.Delete
            Next
            myRange.ParagraphFormat.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
            With myRange.Find
                .ClearFormatting
                .Text = "[!^1]@"
                .MatchWildcards = True
                .Replacement.Text = ""
                .Execute Replace:=wdReplaceAll
            End With
        Next
        For i = 1 To 3
            Set myRange = oSection.Footers(i).Range
            For Each oInlineShape In myRange.InlineShapes
                If oInlineShape.Height = myHeight And oInlineShape.Width = myWidth Then oInlineShape.Delete
            Next
            For Each oShape In ActiveDocument.Shapes
                If oShape.Height = myHeight And oShape.Width = myWidth Then oShape.Delete
            Next
            myRange.ParagraphFormat.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
            With myRange.Find
                .ClearFormatting
                .Text = "[!^1]@"
                .MatchWildcards = True
                .Replacement.Text = ""
                .Execute Replace:=wdReplaceAll
            End With
        Next
    Next
End Sub
'----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-28 21:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

再问个问题,如何用宏设置保护文档,并设置密码。设置成这样的。

保护文档后不能修改,修改需要输入密码的。这个的密码是:123

 

TA的精华主题

TA的得分主题

发表于 2008-2-29 06:39 | 显示全部楼层
QUOTE:
以下是引用downbaidu在2008-2-28 21:55:28的发言:

再问个问题,如何用宏设置保护文档,并设置密码。设置成这样的。

保护文档后不能修改,修改需要输入密码的。这个的密码是:123

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2008-2-29 6:39:07
'
仅测试于System: Windows NT Word: 11.0 Language: 2052
'
0344^The Code CopyIn [ThisDocument-ThisDocument]^'
'*
-----------------------------

Option Explicit

Sub Example()
'
注意,如果文档已保护,再保护文档时会出错,请按以下代码如实设置

'
即先判断文档是否保护,再作决定
    Dim strPW As String
    strPW = "123"
    If ActiveDocument.ProtectionType = wdNoProtection Then
        ActiveDocument.Protect wdAllowOnlyFormFields, True, strPW
        '
仅允许在文档中作此类编辑
        'wdAllowOnlyComments'
批注
        'wdAllowOnlyFormFields'
填写窗体域
        'wdAllowOnlyReading'
未作任何更改(只读)
        'wdAllowOnlyRevisions'
修订

    Else
        ActiveDocument.Unprotect strPW    '
取消保护文档
        '
此处可用代码进行文档编辑
        '
编辑完成后再进行文档保护
    End If
End Sub
'----------------------


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-6 14:21 , Processed in 0.044118 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表