如何在vba中实现Pixel像素、Point磅、Inch英寸、Centimeter厘米之间的相互转换?

在vba中,许多关于长宽的属性的返回值都是以Points为单位的。

比如Range对象的Height属性返回以Points为单位表示的单元格的行高。

那么,这个Points到底是指什么呢?

根据维基百科的解释,在印刷行业中,Point是最小的度量单位。

在印刷行业的历史上,Point的大小一直在变。

现在一般规定,1 Point =1/72inch。

inch是长度单位,1 Inch= 2.54 cm

在vba中,可以使用Application对象的InchesToPointsCentimetersToPoints方法进行inch、Point和Centimeter之间的相互转换。

如以下的代码都将返回1 Point:

像素(Pixel)是显示器、数字相机或扫描仪可以分辨的最小的点,它是度量数字图像的基本单位。

如果要将Pixel与Point、Inch进行转换,还需要知道PPI的值。

PPI:Pixels Per Inch也叫像素密度,所表示的是每英寸所拥有的像素数量。

目前主流的电脑显示器的PPI一般有72、96、120这3种。

有了PPI的值,就可以在Pixel、Point、InchCentimeter之间进行相互转换。

以下是6个vba自定义函数,分别可以实现Pixel、Point、Inch、Centimeter之间的相互转换:

其中Pixel转Point或者Point转Pixel需要知道PPI,在如何用vba获取屏幕显示器每英寸包含的像素数目ppi?一文中我们介绍了如何获取PPI。

以下是获取屏幕显示器PPI的自定义函数:





       

发表评论