ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

vba能否实现图片分割,比如4等分。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-3-10 00:41 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
vba能否实现图片分割,比如4等分。

TA的精华主题

TA的得分主题

发表于 2007-3-10 07:08 | 显示全部楼层
QUOTE:
以下是引用菊石泽露在2007-3-10 0:41:27的发言:
vba能否实现图片分割,比如4等分。

很有意思的一个问题,请参考:

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2007-3-10 7:08:02
'
仅测试于System: Windows NT Word: 11.0 Language: 2052
'
0177^The Code CopyIn [ThisDocument-ThisDocument]^'
'*
-----------------------------

Option Explicit

Sub FourPart()
'
本示例将嵌入式图片四等分

    Dim myPicture As InlineShape, myRange As Range, lngEnd As Long
    With ActiveDocument
        Set myPicture = .InlineShapes(1) '
定义一个嵌入式图片对象
        myPicture.Range.InsertAfter Chr(13) '
插入一个段落标记
        '
定义一个RANGE对象
        Set myRange = .Range(myPicture.Range.End + 1, myPicture.Range.End + 1)
        myPicture.Range.Copy '
复制该图片
        myRange.Paste '
粘贴
        Set myPicture = .InlineShapes(2) '
重新定义一个嵌入式图片对象,为新的粘贴后的图片
        With myPicture '
裁剪图片,即右侧剪掉一半,底部剪掉一半
            .PictureFormat.CropRight = 50
            .PictureFormat.CropBottom = 50
        End With
      

TA的精华主题

TA的得分主题

发表于 2007-3-10 07:09 | 显示全部楼层
  myPicture.Range.InsertAfter Chr(13) '插入一个段落标记
        myRange.SetRange myPicture.Range.End + 1, myPicture.Range.End + 1
        myRange.Paste '
粘贴图片
        Set myPicture = .InlineShapes(3) '
重新定义myPicture对象
        With myPicture '
左侧剪掉一半,底部剪掉一半
            .PictureFormat.CropLeft = 50
            .PictureFormat.CropBottom = 50
        End With
        myPicture.Range.InsertAfter Chr(13)
        myRange.SetRange myPicture.Range.End + 1, myPicture.Range.End + 1
        myRange.Paste
        Set myPicture = .InlineShapes(4)
        With myPicture '
右侧剪掉一半,上部剪掉一半
            .PictureFormat.CropRight = 50
            .PictureFormat.CropTop = 50
        End With
        myPicture.Range.InsertAfter Chr(13)
        myRange.SetRange myPicture.Range.End + 1, myPicture.Range.End + 1
        myRange.Paste
        Set myPicture = .InlineShapes(5)
        With myPicture '
左侧剪掉一半,上部剪掉一半
            .PictureFormat.CropLeft = 50
            .PictureFormat.CropTop = 50
        End With
    End With
End Sub
'----------------------


TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-10 14:07 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-10 14:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

结果是把图片复制了四个,部分边缘卷进去一些。

        With myPicture '裁剪图片,即右侧剪掉一半,底部剪掉一半
            .PictureFormat.CropRight = 50
            .PictureFormat.CropBottom = 50

这样好象卷进50个像素,或50磅。我觉得首先要判断图片大小:像素数,然后切去一半。请版主明察!

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-12 16:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-3-12 17:38 | 显示全部楼层
QUOTE:
以下是引用菊石泽露在2007-3-12 16:54:55的发言:

这个问题可能探到了word vba 的边界!

对于浮动式图形,很好处理,但对于嵌入式图形,如何直接取得原始图片大小就成了一个问题,我目前未找到更直接的方法。

过些时候,我会把浮动图片和嵌入式图形的处理代码全部粘上来的。

我写代码时,对裁剪的方法歧义了,故犯了个错误。

 

[em04]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-14 09:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
欢迎守版授课!

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-3-15 11:14 | 显示全部楼层

再简化一点:能把word中所有图片纵向或横向切割成二等分也可以呀。

欢迎守版、kongs版等高手开坛授课!

TA的精华主题

TA的得分主题

发表于 2007-3-18 12:52 | 显示全部楼层

不好意思。我这一段时间比较忙,老大也有很多事。

等过段时间闲来时,我们再组织授课或写一些简单的入门的贴子。谢谢支持。

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

本版积分规则

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

GMT+8, 2025-1-13 07:27 , Processed in 0.026557 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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