Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 8188|回复: 9

[已解决]VBA批量设置当前工作表中,文本框格式

[复制链接]
发表于 2014-5-18 15:46 | 显示全部楼层 |阅读模式
VBA批量设置当前工作表中,文本框格式
1、文本框无连线

2、文本框无填充色

3、文本框文字。三号、黑体、红色

请朋友们帮帮忙,谢谢大家了

VBA批量设置文本框格式.rar (1.87 KB, 下载次数: 33)
发表于 2014-5-18 16:01 | 显示全部楼层
录制一个宏:定位——对象——再设置文本框的格式
回复

使用道具 举报

发表于 2014-5-18 16:01 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. For Each m In ActiveSheet.Shapes
  3.     m.Select
  4.     With Selection.Font
  5.         .Name = "黑体"
  6.         .Size = 10
  7.         .ColorIndex = 3
  8.     End With
  9.     Selection.ShapeRange.Fill.Transparency = 1
  10.     Selection.ShapeRange.Line.Visible = msoFalse
  11. Next
  12. End Sub
复制代码

评分

参与人数 1 +9 收起 理由
yjwdjfqb + 9 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-5-18 16:15 | 显示全部楼层
dsmch 发表于 2014-5-18 16:01

老师你好,能不能加个语句,让文本框的大小自动适应文字的的宽度和高度,

谢谢老师了!

点评

设置文本框格式,录制宏试试  发表于 2014-5-18 16:26
回复

使用道具 举报

发表于 2014-5-18 16:18 | 显示全部楼层

录的代码改的

  1. Sub cc()
  2. Dim Sh As Shape
  3.   For Each Sh In Sheet1.Shapes
  4.     If InStr(Sh.Name, "Text") > 0 Then
  5.       Sh.Fill.Visible = msoFalse
  6.       Sh.Line.Visible = msoFalse
  7.       With Sh.TextFrame2.TextRange.Font
  8.         .Fill.ForeColor.RGB = RGB(255, 0, 0)
  9.         .NameFarEast = "黑体"
  10.         .Size = 30
  11.       End With
  12.     End If
  13.   Next
  14. End Sub
复制代码
回复

使用道具 举报

发表于 2014-5-18 16:23 | 显示全部楼层
yjwdjfqb 发表于 2014-5-18 16:15
老师你好,能不能加个语句,让文本框的大小自动适应文字的的宽度和高度,

谢谢老师了!

在循环里面添加一句

  1. Sh.Placement = xlMoveAndSize
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-5-18 16:36 | 显示全部楼层
dsmch 发表于 2014-5-18 16:01

老师你好,我加上这个,怎么会出错呢

就是文字水平居中

和垂直居中

.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ReadingOrder = xlContext
.Orientation = xlHorizontal
回复

使用道具 举报

发表于 2014-5-18 16:52 | 显示全部楼层
  1. Sub Macro1()
  2. For Each m In ActiveSheet.Shapes
  3.     m.Select
  4.     With Selection.Font
  5.         .Name = "黑体"
  6.         .Size = 30
  7.         .ColorIndex = 3
  8.     End With
  9.     With Selection
  10.         .ShapeRange.Fill.Transparency = 1
  11.         .ShapeRange.Line.Visible = msoFalse
  12.         .HorizontalAlignment = xlCenter
  13.         .VerticalAlignment = xlCenter
  14.         .AutoSize = True
  15.     End With
  16. Next
  17. End Sub
复制代码

评分

参与人数 1 +9 收起 理由
yjwdjfqb + 9 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-5-18 17:29 | 显示全部楼层
dsmch 发表于 2014-5-18 16:01

老师你好,我这个附件中,要出错,
如果,删除除文本框外的其它对象外,就不出错,
怎样让,有其它对象时,也能正确的执行命令
在这个里面要出错.rar (16.78 KB, 下载次数: 15)
回复

使用道具 举报

发表于 2014-5-18 17:42 | 显示全部楼层
Sub 批量设置文本框格式()
    For Each myTXT In ActiveSheet.Shapes    '循环当前工作表所有的文本框(Shapes文本框)
       If myTXT.Name Like "Text Box*" Then
            myTXT.Select    '选择所有文本框
            '设置选中的字体格式
            With Selection.Font
                .Name = "黑体"    '字体
                .Size = 10    '字体大小
                .ColorIndex = 0    '字体颜色
            End With
            '设置选中的文本框格式
            With Selection
                .ShapeRange.Fill.Transparency = 1    '无填充色
                .ShapeRange.Line.Visible = msoFalse    '无边框
                .HorizontalAlignment = xlCenter    '垂直居中
                .VerticalAlignment = xlCenter    '水平居中
                .AutoSize = True    '自动适应大小
            End With
        End If
    Next
End Sub

评分

参与人数 1 +9 收起 理由
yjwdjfqb + 9 感谢老师的耐心解答!

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 06:24 , Processed in 0.381716 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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