Mibarcd.iniは、Mibarcd.exeを立ち上げると自動で作られます
Mibarcd.exeを違うフォルダに移すと正常に立ち上がるようになることから気づきました。
正常なiniファイルと比べてみるとfontsizeが異常なのが分かる
| ダメなiniファイル | 正常なiniファイル |
| [Options] | [Options] |
| TaskTary=0 | TaskTary=0 |
| CodeType=2 | CodeType=1 |
| ThinWidth=0 | ThinWidth=0 |
| CheckDigit=0 | CheckDigit=0 |
| AddCodeChar=1 | AddCodeChar=0 |
| FormType=1 | FormType=1 |
| FormStyle=1 | FormStyle=0 |
| AutoCopy=1 | AutoCopy=0 |
| CopyToMf=0 | CopyToMf=0 |
| CopyToEMf=1 | CopyToEMf=1 |
| CopyToBm=0 | CopyToBm=0 |
| CBWatch=0 | CBWatch=0 |
| BarHeight=60 | BarHeight=50 |
| LeftMargin=20 | LeftMargin=20 |
| TopMargin=10 | TopMargin=5 |
| Font.Name=MS UI Gothic | Font.Name=Tahoma |
| Font.Size=-8733 | Font.Size=8 |
| Font.Style=49 | Font.Style=0 |
| Font.Color=0x006F0047 | Font.Color=0xFF000008 |
| BoxDraw=0 | BoxDraw=0 |
| Comment=0 | Comment=0 |
| ComntPos=1 | ComntPos=1 |
| ComntAl=1 | ComntAl=1 |
| ComntStr= | ComntStr= |
| QRVersion=4 | QRVersion=4 |
| QRErrLebel=0 | QRErrLebel=0 |
| Trim_Space=0 | Trim_Space=0 |
| PasteErr=0 | PasteErr=0 |
| [Desktop] | [Desktop] |
| Windows.Flags=0 | Windows.Flags=0 |
| Windows.Show=1 | Windows.Show=1 |
| Windows.MaxX=-1 | Windows.MaxX=-1 |
| Windows.MaxY=-1 | Windows.MaxY=-1 |
| Windows.X=176 | Windows.X=154 |
| Windows.Y=232 | Windows.Y=203 |
| Windows.XSize=533 | Windows.XSize=511 |
| Windows.YSize=599 | Windows.YSize=570 |
| LastStr="/EXIT" | LastStr="" |
| [History] | [History] |
| Count=-1 | Count=-1 |
vbaで連続でバーコードを走らせてなぜかexitが効かずに止まる場合に発生(再現100%)
手動でf8でスキップさせると発生しない
なぜだー
注意↓複数回走らせると、cpu100%になって動かなくなります。ctrl+atl+delでタスクマネージャーを立ち上げログオフするしか手がなくなります。タスクマネージャーのプロセスタブに、mibarcd.exeがたくさん貯まった状態になります。 プロセスが終了するまで待つプログラムを検討中です。。
少数のレコードで試すとmibarcd.exeがタスクマネージャーに溜まったのが見れます。
>プログラム1 順番が前後しますが、何を走らせてそうなったか
Sub MiBarCall()
Dim Temp
Dim Code
'データを取得
Set Code = Range("A1")
'/HTxxx バーコードの高さ。xxxに高さを指定。(例:/HT80)
'/LMxxx バーコードの両脇マージン。xxxにマージン指定。(例:/LM15)
'/TMxxx バーコードの上下マージン。xxxにマージン指定。(例:/TM10)
'/ITF ITFコードを使用します。
'/TN2 サイズ2倍
'/BC0 ITFコードの外枠なし。
Worksheets("sheet1").Activate
For i = 1 To 1
Code = "A00001"
Temp = Shell("C:\temp\Mibarcd.exe /S /HT60 /LM20 /TM10 /C39 /TN1 /cd0 /cc1 " + Trim(Code), 1)
Cells(i, 1).PasteSpecial
Temp = Shell("c:\temp\MiBarcd.exe /EXIT", 0)
Next i
End Sub
原因を推測するに、バーコード表示が起動している最中に、exitが走って無視されてしまうんでしょうね
0 件のコメント:
コメントを投稿