ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH云课堂-专业的职场技能充电站 Excel转在线管理系统,怎么做看这里 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 EH云课堂直播课程免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 6045|回复: 21

[原创] 模拟LED广告屏设计的流动字体(更新算法17楼&18楼)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-1 09:22 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:Range对象
本帖最后由 ctp_119 于 2012-12-11 13:25 编辑

其实我每次所谓的创作冲动都来源于实际工作或身边人,群友或坛友。这次就是群里面有人说及此事才弄的玩的!{:soso_e113:}{:soso_e113:}
请看截图:
流动字.gif

修改后的结果:

流动字2.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-1 09:24 | 显示全部楼层
  1. Public s As Double
  2. Sub ctp_119()
  3. Dim bl As Boolean
  4. Dim bb As Boolean
  5. Dim i As Long
  6. Dim k As Double
  7. Dim str As String
  8. str = InputBox("请输入流动字符串!!!", "输入对话框", "中华人民共和国万岁")
  9. [A1] = str
  10. k = 500000 - s
  11. Do
  12. For i = 1 To k
  13.     VBA.DoEvents
  14. Next i
  15. [A1] = Mid(Range("A1"), 2, VBA.Len(Range("A1")) - 1) & VBA.Left(Range("A1"), 1)
  16. Range("a1").Characters(1, 2).Font.ColorIndex = 5
  17. Range("a1").Characters(3, 2).Font.ColorIndex = 6
  18. Range("a1").Characters(5, 2).Font.ColorIndex = 3
  19. Range("a1").Characters(7, 2).Font.ColorIndex = 4
  20. If bb Then
  21.     Range("a1").Interior.ColorIndex = 35
  22.     bb = False
  23. Else
  24.     Range("a1").Interior.ColorIndex = 38
  25.     bb = True
  26. End If
  27. Loop While bl <> True
  28. End Sub
  29. Sub stopp()
  30. End
  31. End Sub
复制代码
以上是核心代码,如果敢兴趣的坛友,不妨提出意见和建议。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-1 09:26 | 显示全部楼层
具体情况再看看附件………………

流动字.rar

12.25 KB, 下载次数: 223

TA的精华主题

TA的得分主题

发表于 2012-12-1 09:31 | 显示全部楼层
ctp_119 发表于 2012-12-1 09:24
以上是核心代码,如果敢兴趣的坛友,不妨提出意见和建议。

还要改进一下,一句话不要前后相连。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-1 09:34 | 显示全部楼层
dsmch 发表于 2012-12-1 09:31
还要改进一下,一句话不要前后相连。

呵呵,谢谢dsmch光顾。不要前后相连更好弄些。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-1 09:44 | 显示全部楼层
  1. Public s As Double
  2. Sub ctp_119()
  3. Dim bl As Boolean
  4. Dim bb As Boolean
  5. Dim i As Long
  6. Dim k As Double
  7. Dim str As String
  8. str = InputBox("请输入流动字符串!!!", "输入对话框", "中华人民共和国万岁")
  9. [a1] = str
  10. k = 500000 - s
  11. Do
  12. For i = 1 To k
  13.     VBA.DoEvents
  14. Next i
  15. If Len(Range("a1")) = 0 Then
  16.     [a1] = str
  17. End If
  18. [a1] = Mid(Range("A1"), 2, VBA.Len(Range("A1")) - 1)
  19. Range("a1").Characters(1, 2).Font.ColorIndex = 5
  20. Range("a1").Characters(3, 2).Font.ColorIndex = 6
  21. Range("a1").Characters(5, 2).Font.ColorIndex = 3
  22. Range("a1").Characters(7, 2).Font.ColorIndex = 4
  23. If bb Then
  24.     Range("a1").Interior.ColorIndex = 35
  25.     bb = False
  26. Else
  27.     Range("a1").Interior.ColorIndex = 38
  28.     bb = True
  29. End If
  30. Loop While bl <> True
  31. End Sub
复制代码
dsmch兄,是不是这样的效果?呵呵,如果不是再做修改!!!

TA的精华主题

TA的得分主题

发表于 2012-12-1 10:46 | 显示全部楼层
本帖最后由 少如 于 2012-12-1 10:52 编辑

很棒! 太棒了!   老师能给标示一下代码吗?
谢谢!

TA的精华主题

TA的得分主题

发表于 2012-12-1 10:59 | 显示全部楼层
本帖最后由 少如 于 2012-12-1 11:02 编辑
ctp_119 发表于 2012-12-1 09:44
dsmch兄,是不是这样的效果?呵呵,如果不是再做修改!!!


呵呵!   一句话不要前后相连, 中间有一二个空格好一些。现在只是每次少一个字, 直至没有字了再重现
另人不习贯, 显得不连贯, 不知我说的对不对?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-1 11:08 | 显示全部楼层
少如 发表于 2012-12-1 10:59
呵呵!   一句话不要前后相连, 中间有一二个空格好一些。现在只是每次少一个字, 直至没有字了再重现
另 ...

谢谢,我有空再考虑当完成第一次后,后面的慢慢出现,再慢慢减少,尽量模拟街头巷尾的LED广告屏效果,,谢谢少如兄!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-1 11:10 | 显示全部楼层
少如 发表于 2012-12-1 10:46
很棒! 太棒了!   老师能给标示一下代码吗?
谢谢!

实际上就是DO循环和doevents让操作系统转换控制权,也没有什么其他技术。。。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

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

GMT+8, 2019-10-17 23:22 , Processed in 0.077792 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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