- ベストアンサー
印刷時の数値データの右揃えについて
印刷を行う場合に数値データの右揃えをしたいと思っています。 現在は、入力された数値の文字数をLen関数で取得してprinter.currentx と printer.currenty の数値を微妙に変えながら実行しています。 もっと簡単に右揃えする方法はあるのでしょうか。
- みんなの回答 (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してください ----- (字下げがきかなくて見にくいですが) では!
その他の回答 (1)
- Hk2001
- ベストアンサー率48% (24/49)
詳しくはわからないのですが 出力する最大桁数を決めておいて スペースを頭に付加してあげる方法は、どうでしょう? ただしフォントとフォントサイズには、気をつけないとダメだと思いますが。
お礼
ありがとうございました。 スペースを付加する方法で現在格闘中です。
お礼
遅くなりましたが、ありがとうございました。 現在教えていただいた方法でコードと格闘中です。