印刷を行う場合に数値データの右揃えをしたいと思っています。
現在は、入力された数値の文字数をLen関数で取得してprinter.currentx と printer.currenty の数値を微妙に変えながら実行しています。
もっと簡単に右揃えする方法はあるのでしょうか。

A 回答 (2件)

はじめまして。


#1の方の回答されたとおりです。補足させていただきます。
こんなのでいかがでしょうか?

フォントは、必ず固定幅のものを指定して下さい。
(MS ゴシックなど)

------
Dim dblNum As Double '数値
Dim strPrn As String '印字用文字列
Dim intLen As Integer '印字する数の最大文字数

intLen = 14 '印字する数の最大文字数を入れる
dblNum = "12345678.6666" '数値の例

'文字列にしてやる → この「"#####0.000"」は任意です
'数値の範囲によっては動的に変えることが必要かもしれません
strPrn = Format(dblNum, "#####0.000")

If Len(strPrn) > intLen Then
'最大文字数を超えると不正な数値になります
'その場合の処理をここに書きます
MsgBox "長すぎ!"
strPrn = "over!"
Else
'前に空白を付けて、右から文字数ぶんをカットする
'(前に付ける空白の個数を計算する方法もあり)
strPrn = Right(String(intLen, " ") & strPrn, intLen)
End If

'このあと、位置を指定して strPrnをPrintしてください

-----
(字下げがきかなくて見にくいですが)
では!
    • good
    • 0
この回答へのお礼

遅くなりましたが、ありがとうございました。
現在教えていただいた方法でコードと格闘中です。

お礼日時:2001/08/02 18:25

詳しくはわからないのですが


出力する最大桁数を決めておいて
スペースを頭に付加してあげる方法は、どうでしょう?
ただしフォントとフォントサイズには、気をつけないとダメだと思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございました。
スペースを付加する方法で現在格闘中です。

お礼日時:2001/08/02 18:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ