Word VBA 绘制直尺

刚想弄个直尺文档给买不到公制直尺的朋友用,结果搜到的文档全是收费的,搞得我火冒三丈,气不过自己写个!

话不多说,直接上代码:

Sub 画直尺()
Dim x1, x2, y1, y2, i, j, T1
T1 = CentimetersToPoints(0.1)
For i = 0 To 280 '28cm长
    x1 = CentimetersToPoints(1 + (i - 1) / 10)
    x2 = x1
    y1 = CentimetersToPoints(1)
    If i Mod 5 = 0 Then
        y2 = CentimetersToPoints(1.7)
        If i Mod 10 = 0 Then
            y2 = CentimetersToPoints(2)
            '-------加数值
            ActiveDocument.Shapes.AddTextEffect(msoTextEffect1, i / 10, "Times New Roman", 12#, msoFalse, msoFalse, x1 - T1, y2 + T1).Select
            Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 0, 0)
            Selection.ShapeRange.Fill.Visible = msoTrue
            Selection.ShapeRange.Fill.Solid
            Selection.ShapeRange.Line.Visible = msoFalse
            Selection.ShapeRange.Width = CentimetersToPoints(0.2)
            Selection.ShapeRange.Height = CentimetersToPoints(0.4)
'            Selection.ShapeRange.IncrementLeft -397.3
'            Selection.ShapeRange.IncrementTop -223.8
        End If
    Else
        y2 = CentimetersToPoints(1.4)
    End If
    ActiveDocument.Shapes.AddLine x1, y1, x2, y2
Next
End Sub

画好的效果如下,A4 纸横向,1 后面的 cm 是手工加上去的,懒得弄代码了。

打印出来和我上学时用的工程制图直尺对比了一下,28厘米长有0.2毫米左右的误差,也就是约有 0.071%的误差,在可接受范围内:

感觉误差来自打印机的机构。

最后,说下使用前注意事项:

画任意直线,先设置直线宽度为 0.1 磅

然后在此直线上点击右键,将其设为默认效果:

因为我懒得再用代码设置线型了。

会用 VBA 的自己复制代码运行即可,就不提供 doc 文档下载了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jessezappy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值