• ベストアンサー

バーコード印刷

VB6.0を使用しているのですが、バーコードを印刷した後にフォントを明朝体などにもどすと文字化けをしてしまいます。 例えば次のようにした場合、「あいうえお」から後に印刷するものはすべて文字化けしてしまいます。(半角の英数文字は文字化けしません。) Printer.Font = "CN-CODE39" Printer.Print "*123456*" Printer.Font = "MS 明朝" printer.print "あいうえお" 以前、同じ質問をした人がいるので、そちらを参考にしましたが、解決できませんでした。 大変申し訳ございませんが、解決策を教えてください。 参考 http://oshiete1.goo.ne.jp/kotaeru.php3?q=603011

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

  • ベストアンサー
回答No.2

#1です。補足どうもありがとうございます。 OSの違いに問題があるみたいですね。 #1のテストも95と98でしています。 2000もXPも持っていないので検証のしようが無いですが Printer.Font.Name = "MS 明朝" Printer.Font.Charset = 128 printer.print "あいうえお" としたらどうなりますか? 後、このプログラムは VB上で試してますか?それともEXEでしょうか? こちらでテストできないので、確実な事が回答できず大変申し訳ありません。

momochu
質問者

お礼

再度ありがとうございます。 VB上とEXEのどちらも同じ現象なんです。 今日は会社を出てしまいましたので、明日試させていただきます。 お付き合いいただきましてありがとうございます。

momochu
質問者

補足

ありがとうございました。 意味もわからずにtaisuke555さんのご指摘の通り入力して、とりあえずWPとLBP740の組み合わせで試したところ、うまく印刷できました。紙が出てきた瞬間驚きと感激でいっぱいでした。 本当に感謝しております。 ところでPrinter.Font.Charset = 128はどういう意味なんですか?また、数値は128以外にもいろいろあるんですか? 補足で質問してしまい申し訳ございません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.7

>95/98の場合、自動で切り替わって >2000/XPでは自動で切り替わらない(バグ?)という事でいいんでしょうか? 95/98の場合は英語版のMS明朝がインストールされていないので日本語版のMS明朝に切り替えるのでしょう。

momochu
質問者

お礼

ありがとうございます。 いつかまた、お世話になる事があるかもしれませんが、その時もよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.6

todo36さん 私の疑問に答えて頂いたんでしょうか? ありがとうございます。 >Printer.Font.Charset = 128 '日本語のcharsetに変更 の部分は、95/98の場合、自動で切り替わって 2000/XPでは自動で切り替わらない(バグ?)という事でいいんでしょうか? (私の解説があっているか今一つ自信が無いので) >前者は標準プロパティ(Name)への代入(Let)です。 でしたね。(よけいな事書いちゃいました。) momochuさんへ >プログラムをもう一度立ち上げなおさないと、最初から文字化けをしてしまいます。 Printer.Font.Charset = 128 を書くとなると言う事ですか? >何か試したいことがあったら言ってください。 私の方では、印刷出来るので試したいことと言われても(笑) 最初に回答してしまったので、何とか力になりたいと回答してきましたが、 todo36さんが回答して下さったので、私の方はこれで失礼します。 頑張ってください。

momochu
質問者

お礼

いろいろお世話になり、ありがとうございました。 またお世話になることもあるかも知れませんがその時もどうぞよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.5

>どうして? Printer.Font = "CN-CODE39" '日本語非対応なので英語のcharsetが設定される Printer.Print "*123456*" Printer.Font = "MS 明朝" '英語対応なのでcharsetはそのまま英悟 printer.print "あいうえお" '文字化け Printer.Font.Charset = 128 '日本語のcharsetに変更 printer.print "あいうえお" '正常 >Printer.Font = "MS 明朝"でなく、 >Printer.Font.Name = "MS 明朝" 同じです。 前者は標準プロパティ(Name)への代入(Let)です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=307309

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

たびたび、すいません。 ちょっと試していただきたいのですが、 Printer.Font.Name = "MS 明朝" printer.print "あいうえお" では、どうなりますか? Printer.Font = "MS 明朝"でなく、 Printer.Font.Name = "MS 明朝" です。

momochu
質問者

お礼

Printer.Font.Name="MS 明朝"とPrinter.Font="MS 明朝"では、まったく同じ結果でした。Printer.Font.Charset = 128があるか無いかで結果が変わりました。また、文字化けをしていてもPrinter.Font = "CN-CODE39"を入れた後の部分はちゃんとバーコードが印刷されます。 また、プログラムをもう一度立ち上げなおさないと、最初から文字化けをしてしまいます。VB上でプログラムを実行した場合はVB自体を終わらせて再び立ち上げないと文字化けをしたままです。 また、何か試したいことがあったら言ってください。お礼にいろいろ試させていただきます。 もう少し締め切らずにおいておきます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

印刷出来たようでなによりです。 >Printer.Font.Charset = 128はどういう意味なんですか? [ヘルプより抜粋] フォントで使用する文字セットの値を設定します。値の取得もできます。 0 : Windows 標準文字セット 2 : 特殊文字セット 128: 日本語版 Windows 専用の 2 バイト文字セット(DBCS) 255: DOS アプリケーションで表示する拡張文字セット 普通は、FONT.NAMEで日本語を選択すると、128に自動でなるみたいです。 (意識して書いたことはありません。) XP/2000で文字化けする時に明示的に128を書くように どこかのホームページで見たことがあったので、 試しに回答してみました。 (どうして?なのかは、私には分かりません。) 何にしても、これ以外の回答は、ちょっと無理そうだったので うまく印刷できて良かったです。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

このような質問の場合、 OSのバージョンやプリンタの機種名を記載しないと 何が原因かわからないと思います。 Printer.Font = "MS 明朝" のフォント名が違っているという事はありませんか? 文字列指定なので、 スペースの半角・全角が違っているだけでも設定されません。 (私の方で確認した所、エラーにはならずに文字化けしました。) それ以外の場合は、ちょっと再現できませんでしたので 他の方の回答を待ってください。 (一応、4台のプリンタで試してみました。)

momochu
質問者

お礼

どうもありがとうございます。 ご指摘の件ですが、 OSはWINDOWS2000とWINDOWS XPです。 また、プリンターはキャノンのレーザーショット LBP-740と同じくLBP-730、エプソンのカラリオ PM-A850です。 上記のOSとプリンタはどの組み合わせにしても同じ結果になってしまいます。 WINDOWS98では同じプログラムで問題なく印刷されます。もちろん、どのプリンタを使っても大丈夫です。 フォント名はスペース部分は半角でアルファベット、漢字とも全角です。 バーコードを印刷する前の部分は「MS 明朝」で間違いなく印刷されています。バーコードもちゃんと印刷されています。 また、何かお気づきの点がありましたら、教えてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バーコード印刷

    バーコードと一緒に文字も印刷したいのですけど 日本語が文字化けを起こしてしまいます。 Private Sub Command1_Click() Printer.PaperSize = vbPRPSA4 Printer.FontSize = 16 Printer.Font = "CODE39" Printer.Print "*KATOM*" Printer.Font = "MS Pゴシック" Printer.Print "あああ" Printer.Print "AAA" Printer.EndDoc End Sub CODE39というのがバーコードのフォントです。 "あああ"が文字化けするのですがどなたかわかりますか?

  • ドットプリンタでバーコードの印刷

    こんにちは。いつもお世話になっています。 現在、ドットプリンタにバーコードの印刷を試みていますが、 数値のままの表記になってしまい、うまくいきません。 他の方の質問・回答も検索し、いろいろ試したのですが 状況に変わりがなかったので改めて質問を書かせていただきました。 現在使用しているプリンタは、NECのMultiImpactです。 (VB6.0で作業しています。) 実際に現在組んでいるコードは下記のようなものです。 Public Sub AA()   ~略~   Printer.FontName = "OCR-B 10cpi"   Printer.FontSize = 12   Call Prt_set(10, 200, strNo) '※1   Printer.Font.Charset = 0   Printer.Font = "Code39"   Call Prt_set(280, 240, "*123456*")  '※2   Printer.Font.Charset = 128   Printer.FontName = "OCR-B 10cpi"   Call Prt_set(280, 500, strC) '※3   ~略~ End Sub '指定された位置に印字する Public Sub Prt_set(i As Integer, j As Integer, Moji As String)    Printer.CurrentY = i    Printer.CurrentX = j    Printer.Print Moji End Sub 実行すると、 ※1と※3の文字は正常に出力されますが、※2はそのまま"*123456*"数値(文字列?)で印刷されてしまいます。 初心者のため、見苦しいコードになっているかもしれませんが、どなたかなにか教えていただけないでしょうか。 よろしくお願いします。

  • OSの違いによるバーコード(CODE39)印刷

    妙な現象が発生しており、頭を悩ませております。 VB6.0で作成したプログラムで、A4普通紙にバーコード (CODE39)を含むテキストデータを印刷させています。 開発環境としてはWin98を使用しており、そこで作った exeファイルを使い、Win98・Win2000では問題なく動作 することは確認できております。 ただ、そのプログラムをWinXPで実行すると、バーコードが 正しく認識できない形で出力されます。 98/2000で出力した結果とXPで出力した結果とを照らし あわせてみたところバーコードの形が異なっていました。 (バーコードリーダでは読み取り不能) フォントファイル自体、98/2000と同一のものをインストール しており、試しにEXCELでこのフォントを使ってシートを 作り印刷してみると正常な形で出力することができました。 Win98で生成したexeをXPで動かすこと自体は問題ないと 思うのですが、このCODE39フォントとXPの組み合わせが 問題あるのでしょうか? ライセンスの関係上、XP側にVBを入れるわけにもいかず なんとか現在の環境下でWin98にもWinXPにも対応可能な コードを生成できないものかと悩んでおります。 MS明朝などの文字化けについては別の形の書込みが ありましたが、バーコードフォント側の不具合については 書込みが見当たらなかったので、今回書き込みを させていただいた次第です。

  • ワードの差込印刷を使ってバーコードを印刷したい

    エクセルの表を元にワードの差込印刷を使ってラベルを作成したいと思っています。 幾つかの情報とバーコードを印刷したいと思っているのですがうまくいきません。解決策をご存知の方がいらっしゃればぜひ教えてください! まず、バーコードフォントをインストールして差込印刷画面でも表示できるようにはしました。 バーコードは幾つかの情報の最後に印刷したいと思っています。プレビューではきちんと表示されているのですが、実際に印刷するとバーコードの最後に改行かスペースの情報もバーコード化されていて読み取ることができません。 ちなみに、バーコードを印字するデータの先頭に持ってくると印刷もうまくいきます。また、バーコード情報のあとで改行やスペース挿入をすると余分なバーコードがついてきます。 ちょっと困っています。ぜひ回答をください、宜しくお願いいたします。

  • バーコードの印刷ができません。ご教示方お願いいたしたく。

    バーコードの印刷ができません。ご教示方お願いいたしたく。 NECのPCを使って、航空会社のHPからE-Chicketを印刷する場合、他の文字や画面は印刷されるのに、バーコードのみ印刷されません(バーコード欄に×印が出ます)。印刷のプレビュー画面にも、PDFの画面にもバーコードが出てきません。他のPC( Sony, HP)でトライすると問題なく印刷されます。航空会社に問い合わせるも問題なしと。プリンターメーカーに問い合わせると、プレビュー画面にバーコードが出てないので、印刷されないと。プランター側問題なしと。 NECに問い合わせると、ほかの文字や画面が印刷されているので、PCに問題なしと。バーコードが、プリンターにも印刷されないし、PDFにも出てこないので、PCに問題あり、すなわち、印刷する場合バーコードを読み取る能力がないのではと質問するも、答えが返ってきません。唯一の解決の可能性あるのは、PCの初期化だと。解決方法が見つからず困っております。教えてください。

  • 印刷プレビューのコードは?

    A4の計算結果の用紙を印刷する前に印刷プレビューをしたいのですが、どのようにしたらよいでしょうか?あと、印刷のフォントを明朝体に設定するにはどうしたらいいのでしょうか?(Printer.FontName=???) また、平方メートル立方メートルのように2と3を上付文字にしたいのですがこの設定方法も教えてください。

  • 印刷時にフォントが化ける

    ワードやエクセルで、MS明朝やMSP明朝を使って、文章を作っています。画面上ではなんの問題もなく、文字化けせずに表示します。また一端保存したデータファイルを開いても、問題ありません。 しかし印刷の際には・・・・と文字化けしてしまいます。いきなりPDFソフトでも同様に文字化けします。 他のフォントは問題ありません。 このフォントを上書きしようと試みましたが、現在使用中で上書きができません。ウィンドウズで表示されているものを変更する方法も教えて下されば幸いです。 ちなみに使用しているプリンターは「エプソン PM-T990」です。宜しくお願いします。

  • Word 印刷文字がうすいのですが・・・

    Word2000です。 規定のフォントを「MS明朝」に設定していますが、印刷すると線が細く、うすくて読みにくい文字で印刷されます。 MSゴシックにすれば濃く印刷されますが、ゴシックです。 明朝を濃く印刷する方法は無いでしょうか? あるいは、明朝的なフォントだが濃く印刷されるフォントがあれば教えてください。

  • 文字化け

    WindousXPホームエディションSP1で文書作成(ワード)しプリントしようとすると文字化けを起す。すべてのフォントではなく明朝体を使用した時に現象が出ます。どうして?解決方法を教えてください。

  • DTP フォントに関する質問(Mac)

    ロダンPlusという書体を多用します。ヨコ組で文字数の多い本文をベタ組で組んだ時にも見た目が美しく、ウェイトも豊富。ただ、半角英数がプロポーショナルなのが使いにくいときがあります。 気に入って使いたいフォントは、2バイト文字が全角で1バイト文字がプロポーショナルという場合が多いのです。 OSAKA等幅やMS明朝のような等幅フォント(半角英数がきっちり半角になっている)フォントで、ロダンっぽくて、ウェイトも豊富で、上記のような「ひと文字ひと文字の美しさだけではなく、つながりの美しさをもった」フォントはないものでしょうか。 横組のフォーマットものを作成する際、半角英数がプロポーショナルであるロダンを使うと、文字数をハッキリ指定できないのがもどかしいのです。 現在は新ゴとShingo-Numを平行して使っているのですが、面倒だし、見た目上、新ゴを使いたい訳ではないことも多いもので… ちなみに環境はMacです。未だにOS9.2ですが、そろそろいい加減に現行のOSXに移行します。

    • ベストアンサー
    • Mac