雑記 TwipをPixcelに変換する [その他]
Twipに関する記事を書こうと思って調べていたら、VBの.net以降はTwipが扱えないらしいです。
ACCESS2010はまだTwipでの指定です。
TwipをPixcelに変換する方法が、マイクロソフトのサイトにありました。
http://support.microsoft.com/kb/210590/ja
自動翻訳のようで、日本語が変ですが、プログラムはちゃんと動きました。
ほぼ転載になりますが、説明等追加してますので、参考までに。
Option Compare Database Option Explicit 'ディスプレイデバイスコンテキストのハンドルを取得する Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long 'デバイスコンテキストを解放する Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long 'デバイス固有の情報を取得する Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long Const WU_LOGPIXELSX = 88 '論理インチ当たりの画面の水平方向のピクセル数 Const WU_LOGPIXELSY = 90 '論理インチ当たりの画面の垂直方向のピクセル数 Public Function ConvertTwipsToPixels(lngTwips As Long, lngDirection As Long) As Long 'TwipからPixcelへの変換 '引数 'lngTwips・変換するTwips値 'lngDirection・0:横方向、0以外:縦方向 'Handle to device Dim lngDC As Long Dim lngPixelsPerInch As Long '1インチ=1440Twips Const nTwipsPerInch = 1440 lngDC = GetDC(0) If (lngDirection = 0) Then '水平方向 lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSX) Else '垂直方向 lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSY) End If lngDC = ReleaseDC(0, lngDC) 'ピクセル数を計算 ConvertTwipsToPixels = (lngTwips / nTwipsPerInch) * lngPixelsPerInch End Function Public Sub subTEST() Dim lngOldTwips As Long lngOldTwips = 2377 Debug.Print ConvertTwipsToPixels(lngOldTwips, 0) End Sub |
と、試してはみたものの、これを活用する機会があるかどうかは分かりません。