• ベストアンサー

印刷時の数値データの右揃えについて

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

質問者が選んだベストアンサー

  • ベストアンサー
  • i-touch
  • ベストアンサー率40% (170/415)
回答No.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してください ----- (字下げがきかなくて見にくいですが) では!

xiaolong_goo
質問者

お礼

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

その他の回答 (1)

  • Hk2001
  • ベストアンサー率48% (24/49)
回答No.1

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

xiaolong_goo
質問者

お礼

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

関連するQ&A