レポート:10CPI (Characters Per Inch) による印刷 |
対象バージョン : 97, 2000, 2002, 2003
最終更新日 : 2005/04/25
(オリジナル作成日:1997/04/24)
概 要
レポートで、1インチあたり10文字の印字を行う方法です。
解 説
フォント等の設定では、実現ができないようなので、Report オブジェクトの Print メソッドを利用した Sub プロシージャです。
構 文
Call TenCPIPrint(Obj, Value, x, y)
引 数 | 内 容 |
---|---|
obj | 表示する Report オブジェクトを指定します。 |
Value | 表示する文字列式を指定します。 |
x | 表示する "Left/左位置" を示す数式を指定します。 単位は cm で、小数の使用が可能です。 |
y | 表示する "Top/上位置" を示す数式を指定します。 単位は cm で、小数の使用が可能です。 |
Sub プロシージャ
Public Sub TenCPIPrint(argrpt As Report, argValue As Variant, _ argX As Single, argY As Single) Dim sngX As Single Dim sngY As Single Dim sngColWidth As Single Dim sngChrWidth As Single Dim intChr As Integer Dim stChr As String If IsNull(argValue) Or argValue = "" Then Exit Sub argrpt.FontName = "明朝" ' 固定ピッチフォントがよいでしょう argrpt.FontSize = 7 ' サイズは調整してください ' Twip 変換 sngX = argX * 567 sngY = argY * 567 For intChr = 1 To Len(argValue) stChr = Mid(argValue, intChr, 1) sngColWidth = LenB(StrConv(stChr, vbFromUnicode)) * 144 sngChrWidth = argrpt.TextWidth(stChr) argrpt.CurrentX = sngX + (sngColWidth - sngChrWidth) / 2 argrpt.CurrentY = sngY argrpt.Print stChr sngX = sngX + sngColWidth Next End Sub
使用例
レポートの詳細セクションの "OnFormat/フォーマット時" のイベントプロシージャで、次のように設定します。
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) Call TenCPIPrint(Me, Me![金額], 5.5, 2.3) End Sub
補 足
改訂履歴