dポイントプレゼントキャンペーン実施中!

次のように整数を一定文字数になるようにしてからテキストボックスに書き込んでも、数字の桁が変わるところで表示位置が右にづれる。印刷の時も、同様な処理をして一行づつ出力しても同じ現象が出る。スペースと数字のフォントの幅の違いでしょうか。簡単な解決法を教えてください。For j=1 to 20
w = w + vbCrLf + Right$(Space(11) + Str(j + blank), 11) + Right$(Space(8) + Str(j), 8) _
+ Left$(dname$(j) + Space(14), 14) + Right$(Space(12) + Format(dt(j), "###0.00"), 12):next

A 回答 (1件)

使用するフォントの問題です。


モノスペースフォントを使用してください
(MS ゴシック など)

●プロポーショナルフォント
文字毎に文字幅が異なるフォント

●モノスペースフォント
(等幅フォント、固定幅フォント)
名前どおり全ての文字幅が同じフォント

この回答への補足

ありがとうございました。テキストボックスの方は、プロパティのフォントをMS ゴシックにして解決しました。これが等幅フォントと初めて知りました。プリンタの方は、印刷直前に
Printer.Font.Name = "MS ゴシック"
を入れてみましたが解決しませんでした。まるっきりの初心者ですので、この指定が全然間違っているのか、フォント名を半角で指定するのか、あるいは、プリンタ側にこのフォントを持っていないのかなどの区別が付きません。この点も宜しくお教え下さい。

補足日時:2009/08/27 21:36
    • good
    • 0
この回答へのお礼

回答への補足で、再質問しましたが、色々試しているうちにFormatの使い方の誤りに気がつき、その当たりを直しているうちに、予測通り動くようになりました(早く反応しようと思い、十分に確かめず、再質問をしてしまいました、ご容赦下さい)。
問題の原因は想像していたものに近いものでしたが、具体的な解決策が分からず、何日も放置していました。今回の教示で直ぐに解決できました。ありがとうございました。

お礼日時:2009/08/28 02:14

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