tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルビットマップ内のバーコードデータが更新されない
記事No13567
投稿日: 2009/04/05(Sun) 17:51
投稿者ゆき
いつも勉強させて頂いています。
VB6からラベルプリンタを使用し、バーコードの付いた連続番号ラベルを発行する事を考えています。
以下の様に、バーコードデータの作成→bmp化→クリップボードへコピー→エクセルで印刷です。
ただ、これをDo〜Loopでまわそうとしているのですが、Do〜Loopの2回目のbmp内のバーコード内容が1回目の内容から変わってくれず困っています。
何故こうなるのかも分からず戸惑ってます。
何か良案あれば宜しくご教授お願いします。

Dim COUNT As Long:       COUNT = 0

Do Until COUNT = 20

LABELDATA = "ABCDE" + COUNT   ’’’バーコードデータの作成

Call Shell("C:\QR_BarCode.exe\mkqrimg.exe /O""C:\QR_BarCode.exe\QR.bmp"" /T" & LABELDATA & "")

BMPPATH = GetObject("Scripting.FileSystemObject").GetAbsolutePathName("C:\QR_BarCode.exe")

クリップボードへ貼り付け

エクセル貼り付け

COUNT = COUNT + 1
Loop

[ツリー表示へ]
タイトルRe: ビットマップ内のバーコードデータが更新されない
記事No13568
投稿日: 2009/04/05(Sun) 22:50
投稿者花ちゃん
質問の通りだとすると、多分クリップボードのコピーされる前に貼り付けが実行される
からかと思います。

従って、クリップボードにコピー後少し待ち時間を作ってから、貼り付けを実行する
ようにして見て下さい。
それでもだめなようなら、コピーする前にクリップボードない名をクリアしてから、
コピーを実施して、クリップボード内にBMPがあるか確認してからエクセルに貼りつければ
うまくいくはずですが。

[ツリー表示へ]
タイトルRe^2: ビットマップ内のバーコードデータが更新されない
記事No13569
投稿日: 2009/04/06(Mon) 00:24
投稿者ゆき
早速ありがとうございます。
花さんから助言を頂いた内容で確認したところ、どちらも投稿させて
頂いた内容と同じ現象になってしまったので、
Do〜Loopを一回一回Remで止めて確認してみると
変数のLABELDATAは問題無くカウントアップされていました。
でCドライヅ所定箇所のbmpファイルも毎回開いて確認して見たんですが
ここでのbmp形式のバーコードが更新されずに前のLoop時ままでした。

これに関しても花さんの助言でTimerを使用し、タイムラグを作って
実行して見ましたが同じ状況でした。

こう言ったコードの書き方では、bmpファイルのバーコードは更新されないのでしょうか。
一旦、bmpファイル自体を削除してからCreatObjectで再作成が良いのでしょうか?
(ただ、VB側からのbmpファイル削除の仕方も分からないのですが)

Dim COUNT As Long:       COUNT = 0
Do Until COUNT = 20
 LABELDATA = "ABCDE" + COUNT   ’’’バーコードデータの作成
 ’■■■LABELDATAのデータは問題なくカウントアップされる
 Call Shell("C:\QR_BarCode.exe\mkqrimg.exe /O""C:\QR_BarCode.exe\QR.bmp"" /T" &  LABELDATA & "")
 ’■■■C:\QR_BarCode.exe\QR.bmpのbmp形式バーコードが前のLABELDATAで作成されたまま
 BMPPATH = _
  GetObject("Scripting.FileSystemObject").GetAbsolutePathName("C:\QR_BarCode.exe")

’Remクリップボードへ貼り付け

エクセル貼り付け

COUNT = COUNT + 1
Loopボードへ貼り付け

[ツリー表示へ]
タイトルRe^3: ビットマップ内のバーコードデータが更新されない
記事No13571
投稿日: 2009/04/06(Mon) 08:35
投稿者花ちゃん
投稿されたコードが省略されたコードのようだったのと一度目ならうまく動作すると
言う事だったので、あまり深くコードを見ていなかったのですが、

>  Call Shell("C:\QR_BarCode.exe\mkqrimg.exe /O""C:\QR_BarCode.exe\QR.bmp"" /T" &  LABELDATA & "")

の部分が問題があると言う事でしょうか?
上記中の QR_BarCode.exe は、フォルダ名ですか? それともEXE 名 ?
お使いのフリーソフトは使った事も見た事もないのでよくは知りませんが使い方が
間違っているという事はありませんか?(最後の & "") も何か違和感があるが)

因みに下記のコードは、何を取得しようとされているのでしょうか?(絶対パス名?)
>BMPPATH = _
  GetObject("Scripting.FileSystemObject").GetAbsolutePathName("C:\QR_BarCode.exe")

BMPPATH ="C:\QR_BarCode.exe\QR.bmp" になるのと違うのですか?

[ツリー表示へ]
タイトル解決)ビットマップ内のバーコードデータが更新されない
記事No13573
投稿日: 2009/04/06(Mon) 12:24
投稿者ゆき
申し訳ございません。花さん、私のボンミスでした。
QR_BarCode.exe:フォルダ名
mkqrimg.exe  :ファイル名(フリーで使えるQR用バーコードソフトです)

Dim COUNT As Long:       COUNT = 0

Do Until COUNT = 20

LABELDATA = "ABCDE" + COUNT   ’’’バーコードデータの作成

Call Shell("C:\QR_BarCode.exe\mkqrimg.exe /O""C:\QR_BarCode.exe\QR.bmp"" /T" & LABELDATA & "")

BMPPATH = GetObject("Scripting.FileSystemObject").GetAbsolutePathName("C:\QR_BarCode.exe\QR.bmp")

BMPPATH = GetObject("C:\QR_BarCode.exe\QR.bmp")’こちらでもOKです

クリップボードへ貼り付け

エクセル貼り付け

エクセルクローズ

COUNT = COUNT + 1
Loop

[ツリー表示へ]