找了半天excel.vba关于将磅转换为像素的内置命令,看样子是没有了,只能通过以下函数转换。
误差有时和excel的计算相差一个像素.
贴出来给用到的朋友节省些时间,要有更好的方法别忘了告诉我!
常用单位对比
1英寸近似=72磅
1英寸=25.4毫米
1英寸约为 1440 缇(twip)
1厘米= 567 缇(twip)
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Sub test()
w = PointsToPixelsX(Range("B3").Width)
h = PointsToPixelsY(Range("B3").Height)
End Sub '将磅转换为像素X
Private Function PointsToPixelsX(PointsX As Long) As Long
Dim hDCDesk As Long, lngPix As Long
Const LOGPIXELSX = 88
hDCDesk = GetDC(0)
lngPix = GetDeviceCaps(hDCDesk, LOGPIXELSX)
PointsToPixelsX = PointsX / (72 / lngPix)
ReleaseDC 0, hDCDesk
End Function '将磅转换为像素Y
Private Function PointsToPixelsY(PointsY As Long) As Long
Dim hDCDesk As Long, lngPix As Long
Const LOGPIXELSY = 90
hDCDesk = GetDC(0)
lngPix = GetDeviceCaps(hDCDesk, LOGPIXELSY)
PointsToPixelsY = PointsY / (72 / lngPix)
ReleaseDC 0, hDCDesk
End Function
|