ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

组合图片缩放时文本框中文字对应缩放

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-3-22 16:54 | 显示全部楼层 |阅读模式
如图,文中有两个图形。
4AemooXk.rar (5.34 KB, 下载次数: 47)
上面一个不带画布,若拖放放大缩小,则图中的文字大小不同时缩放。
下面一个带画布,若激活后点击缩放绘图按钮再缩放,图中的文字大小同时按比例合理缩放。
现要参考以上功能,用VBA实现如下目的(例如作一个“放大10%”的按钮):
文中有很多不带画布的图形(且Word默认不用画布),激活一个后,点击“放大10%”按钮,自动将图形装入画布中(在原地点),并放大10%,然后取消画布。
即实现图形和其中的文字等比例放大。
[此贴子已经被作者于2006-7-13 20:32:26编辑过]

TA的精华主题

TA的得分主题

发表于 2006-3-22 19:17 | 显示全部楼层

我最近实在时间有限。

抽空简单地做了一个,看一下,能否参考,而不用画布?

Sub Example()
Dim i As Shape, N As Byte, B As Shape
For Each i In Me.Shapes
If i.Type = msoGroup Then
For N = 1 To i.GroupItems.Count
Set B = i.GroupItems(N)
B.Left = 1.1 * B.Left
B.Width = 1.1 * B.Width
If B.TextFrame.HasText Then B.TextFrame.TextRange.Font.Size = 1.1 * B.TextFrame.TextRange.Font.Size
Next
End If
Next
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-26 09:05 | 显示全部楼层
谢谢守柔版主,代码运行后有两个问题:
①文本框的相对位置未变。
②运行速度较慢。
③文档中所有图片均放大
[此贴子已经被作者于2006-7-13 12:21:11编辑过]

[求助高手]守柔请看看

[求助高手]守柔请看看

UetI0CE5.rar

571 Bytes, 下载次数: 30

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-7-13 12:25 | 显示全部楼层

完美解决!感谢老大和鑫兄。
经鑫兄同意,将鑫兄写的代码公开共享:
Application.ScreenUpdating = False
  Dim q, w, b As Shape, er As CanvasShapes
  Set q = Selection.ShapeRange(1) '
  we = q.Type
 With ActiveDocument.Shapes
    If q.Type = msoGroup Then
     q.Select
    Selection.ShapeRange.LockAspectRatio = msoTrue
    Selection.ShapeRange.ScaleHeight 1.2, False '
    Selection.ShapeRange.ScaleWidth 1.2, False '
    For w = 1 To q.GroupItems.Count
    Set b = q.GroupItems(w)
    If b.Type = msoTextBox Then
        b.TextFrame.TextRange.Font.Size = 1.2 * b.TextFrame.TextRange.Font.Size
        b.TextFrame.TextRange.ParagraphFormat.LineSpacingRule = wdLineSpaceAtLeast
        b.TextFrame.TextRange.ParagraphFormat.LineSpacing = 8

'本处可根据情况作调整
    End If
   Next
  End If
 End With
Application.ScreenUpdating = True
End Sub

[此贴子已经被作者于2006-7-13 12:31:44编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 17:28 , Processed in 0.038810 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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