• 締切済み

Rset関数で中央揃えになるのはなぜでしょうか。

1バイト及び2バイト文字の混合文字列をRset関数を使って右揃え使用としていますが、どうしても中央揃えになって困っています。 たとえば以下のように prstr="0000000000" Rset prstr="12小5ヨ6" この場合、コード実行中に prstrの値をチェックすると、間違いなく前方の文字列が足りない部分には空白が挿入されて右揃えになっているのですが、この prstr を印刷した時、必ず中央揃えで印刷されてしまいます。 これはRset関数の使い方を間違っているのでしょうか。 1バイト文字のみで実行すると、印刷しても右揃えになるので、いかがなものかと思っております。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

http://www.okweb.ne.jp/kotaeru_reply.php3?q=711479 で私が上げた回答のコードを参考にしてください。 Dim x As String * 7に当たる部分がご質問者のコードにはないのでは。x="0000000"と同等かどうか自信がないです。 もし「1バイト及び2バイト文字の混合文字列」であるために上手く行かないときは、ご免なさい。 「この prstr を印刷した時、必ず中央揃えで印刷されてしまいます。」の印刷するソフトはなんでしょう。そちらの 問題でしょう。

xiaolong_goo
質問者

補足

ご回答有り難うございます。 prstrはstring(可変長)で宣言してます。実は固定長にしてもだめなんです。とにかく1バイト文字だけなら(半カナもOK)きちんと右揃えできるんです。印刷するソフトは特に無く、VBから直接印刷しています。 なお、今回の問題に関しては、Len関数で文字数を取得しその後Mid関数で文字列の最後から1文字ずつ文字を取り出して、最終文字の印刷位置(printer.CurrntX)を確定して順次印刷位置をマイナスしながらバッファに取り込んで印刷し右揃えにし、解決しました。 有り難うございました。

関連するQ&A