ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 电子印章(宏)最终体验版 v5.24

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-7-25 22:18 | 显示全部楼层 |阅读模式
本帖最后由 413191246se 于 2015-8-15 13:55 编辑

* 特殊感谢:佛山小老鼠版主(详细参阅了他的《电子印章》制作帖)!
* 特殊感谢:本论坛高人 loquat 朋友(修改代码,使此宏通用于所有文档)!
* 通过录制宏,精简优化,初步达到实用阶段,结束了 Word 无此宏历史!
* 由于未实际打印,纯属纸上谈兵,仅作为探索体验而已,此宏可免费使用!
* 实际使用时,可在落款处点击一下鼠标,再运行此宏,移动方向键即可(印章落在当前页)。
* 按住 CTRL 键可以精细调节印章位置。按住 ALT 键沿对角线方向可以精细调节大小。
*《电子印章》(宏)演示图片:(宏仅生成红色印章,其它颜色须自己设置)
eMark_gif.gif
*《电子印章》宏--最终体验版 v5.24 代码:
  1. Sub 电子印章()
  2.     If Documents.Count = 0 Then Documents.Add
  3.     Dim i$, j&, a$, f$, x!, s, t, r, arr(1 To 4) As String
  4. ipt:
  5.     i = InputBox("印章正文(3-30字)和附言(2-6字)可以一起输入,但必须以中文逗号,分隔!", "电子印章", "辽宁省朝阳市通用模板公司,业务专用章")
  6.     If i = "" Then Exit Sub
  7.     a = InStrRev(i, ",")
  8.     If a Then f = Mid(i, a + 1): i = Left(i, a - 1) Else f = "财务专用章"
  9.     j = Len(i)
  10.     If j < 3 Or j > 30 Or Len(f) < 2 Or Len(f) > 6 Then GoTo ipt
  11.     If Len(f) = 5 Then
  12.         x = 258.4!
  13.     ElseIf Len(f) = 4 Then x = 264.5!
  14.     ElseIf Len(f) = 3 Then x = 263.5!: f = Left(f, 1) & " " & Mid(f, 2, 1) & " " & Right(f, 1)
  15.     ElseIf Len(f) = 2 Then x = 270.5!: f = Left(f, 1) & "  " & Right(f, 1)
  16.     ElseIf Len(f) = 6 Then x = 251.5!
  17.     End If
  18.     s = Array(3.9!, 3!, 2.4!, 1.98!, 1.7!, 1.48!, 1.33!, 1.19!, 1.08!, 1!, 0.92!, 0.86!, 0.8!, 0.75!, 0.7!, 0.67!, 0.63!, 0.6!, 0.57!, 0.55!, 0.52!, 0.5!, 0.48!, 0.46!, 0.45!, 0.43!, 0.41!, 0.4!)
  19.     t = Array(5!, 5!, 4.9!, 3.9!, 3.5!, 3.1!, 2.8!, 2.5!, 2.3!, 2!, 1.8!, 1.7!, 1.6!, 1.5!, 1.4!, 1.3!, 1.32!, 1.27!, 1.2!, 1.1!, 1.1!, 1.05!, 1!, 0.97!, 0.93!, 0.88!, 0.85!, 0.8!)
  20.     r = Array(220!, 235!, 243!, 247!, 251!, 252!, 255!, 257!, 258.5!, 260.5!, 262!, 264!, 264.5!, 265.5!, 266.5!, 267!, 268!, 269!, 269!, 269!, 269!, 269!, 269.5!, 269.5!, 269.5!, 269.5!, 269.9!, 269.9!)
  21.     With ActiveDocument.Shapes
  22.         With .AddTextEffect(msoTextEffect3, i, "宋体", 12!, msoFalse, msoFalse, 219.75!, 103!) '艺术字
  23.             .TextEffect.Tracking = t(j - 3)
  24.             .ScaleHeight 12, msoFalse, msoScaleFromTopLeft
  25.             .ScaleWidth s(j - 3), msoFalse, msoScaleFromTopLeft
  26.             .Adjustments(1) = r(j - 3)
  27.             arr(1) = .Name
  28.         End With
  29.         With .AddShape(msoShapeOval, 201.6!, 85!, 180!, 180!) '圆周
  30.             .Fill.Transparency = 1!
  31.             .Line.Weight = 3.5
  32.             .Line.Style = msoLineThickThin
  33.             arr(2) = .Name
  34.         End With
  35.         With .AddShape(msoShape5pointStar, 264!, 147.8!, 54.9!, 47.6!) '五角星
  36.             .Line.Weight = 0.25
  37.             arr(3) = .Name
  38.         End With
  39.         With .AddTextEffect(msoTextEffect3, f, "宋体", 13!, msoTrue, msoFalse, x, 206!) '附言
  40.             .TextEffect.PresetShape = msoTextEffectShapePlainText
  41.             .Fill.Visible = msoTrue
  42.             .Line.Weight = 0.25
  43.             arr(4) = .Name
  44.         End With
  45.         With .Range(Array(arr(1), arr(2), arr(3), arr(4))).Group '组合
  46.             .Fill.ForeColor.RGB = RGB(255, 0, 0)
  47.             .Line.ForeColor.RGB = RGB(255, 0, 0)
  48.             .LockAspectRatio = msoTrue
  49.             .ScaleWidth 0.6, msoFalse, msoScaleFromTopLeft
  50.             .ScaleHeight 0.6, msoFalse, msoScaleFromTopLeft
  51.             .IncrementTop 92.6!
  52.             .IncrementLeft 119.4!
  53.             .ZOrder msoSendBehindText
  54.             .Select
  55.         End With
  56.     End With
  57. End Sub
复制代码

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-7-26 10:31 | 显示全部楼层
好麻烦呀!!

TA的精华主题

TA的得分主题

发表于 2015-7-26 17:37 | 显示全部楼层
希望楼主能将相关数据部分做一个开发的参数出来。例如我要做一个更大或者更小的印章,需要自己去摸索大小,这样不利于下次通用。

TA的精华主题

TA的得分主题

发表于 2015-7-26 17:38 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-26 18:22 | 显示全部楼层
谢谢 loquat 关注!——其实图形这一部分,我也不会多少,真的是摸索,像昨晚我调整了半天文本框位置,反复修改参数。目前是12字正好,如果不是12字的印章,恐怕未必成正圆,宽度值需要探索。
——我看 佛山小老鼠版主 的帖子中,无人用宏,没成想竟然成功!用宏一步到位制作印章,很方便。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-26 18:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
回2楼:麻烦过后,是方便,先吃苦,后得甜,苦尽甘来,值得。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-26 18:26 | 显示全部楼层
***请各位朋友,多多关注第2次更新的代码,第1次全部是录制宏(建议不必再下载),第2次已经精简了,效果相同。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-27 14:36 | 显示全部楼层
请各位朋友参阅《电子印章v3.2宏》,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-28 20:10 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-28 21:20 | 显示全部楼层
本帖最后由 413191246se 于 2015-7-29 12:10 编辑

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

本版积分规则

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

GMT+8, 2024-11-23 02:43 , Processed in 0.053309 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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