获取特定字体配置中文本的实际宽度?

Sho*_*dan 2 excel vba barcode excel-vba

我正在打印条形码,作为流程的一部分,我有一个Chart对象,上面有一个文本框.

我使用我从这里获得的clsBarcode类在其上渲染 条形码使用Excel VBA生成Code 128条形码

现在我遇到的问题是我无法分辨条形码的宽度.

我在该图表对象上生成条形码,然后将图表作为jpeg文件导出.我一直在使用图表对象的固定大小,但现在我正在尝试打印不同大小的条形码,并且必须调整图表对象以匹配条形码大小,否则它会被剪裁.

我在这里找到了一个strWidth函数 http://www.ozgrid.com/forum/showthread.php?t=94339

不幸的是,它使用常用字体的查找表.code128.fft表中没有条目.

所以我有点被困在这里.如果我只是将我的图表调整为任何条形码的长度,那么我在条形码图像中会浪费很多空白空间.由于我在2"x4"贴纸上打印这些条形码,您可以猜测空间非常宝贵.

我认为最好的方法是使用code128字符的值填充查找表.条形码类表示正在使用chr 32至126和200至211.

我怎样才能找出这些字符的mafChrWid(i)值?

谢谢 !

小智 5

对于此功能,您需要命名一个单元格BARCODE并设置它的字体代码1288.fft.

Function getBarCodeWidth(strBarcode As String) As Double

    With Range("BARCODE")
        .Formula = "=Code128_Str(" & strBarcode & ")"
        .Worksheet.Columns(.Column).AutoFit
        getBarCodeWidth = .Width
    End With

End Function
Run Code Online (Sandbox Code Playgroud)