* 外部プログラムを実行するには? [#we1f435f]
 |RIGHT:|LEFT:|c
 |~ページ|[[OpenOffice.org FAQの登録ページ]]|
 |~投稿者|ゼンパク|
 |~分類|#listbox3(Q&A,faq03,class)|
 |~優先順位|#listbox3(普通,faq03,priority)|
 |~状態|#listbox3(回答中,faq03,state)|
 |~カテゴリー|#listbox3(Calc 表計算,faq03,category)|
 |~投稿日|2011-06-15 11:03:05 (水)|
 |~OS|windows7|
 |~依存するページ||
 |~バージョン|#listbox3(3.3.0,faq03,version)|
 
 //////////バグ対策(以降マッチさせない)
 
 ** メッセージ [#u59e0309]
 |LEFT:|c
 |回答ページでは行末に「~」を付加する必要はありません|
 今までエクセルを使ってバーコード(ツール:Mibarcode)を作っていました。
 それをOpenOfficeで動くようにしたいと思っています。
 マクロプログラムの中で
 ----
         MiBar.Code = Code
         MiBar.Comment = Name
         
         'バーコードを作成
         Err = MiBar.Execute
 -----
 MiBar.Executeのところで「BASICランタイムエラー'91'オブジェクト変数が設定
 できません。」となってしまいます。
 このエラーを突破できる方法をご指南ください。
 
 
 ----
 ***もう少し情報をください [#od8c6b6b]
 >M.Kamataki (2011-06-15 12:23:12 (水))~
 ~
 Mibarcodeとは、以下のソフトでしょうか。~
 ~
 http://homepage3.nifty.com/m-and-i/freesoft/mibarcd/mibarcode.htm~
 ~
 Excelでお使いの際は、自作のマクロをお使いだったのでしょうか。そのマクロを「Option VBAsupport 1」を指定して、Excelのときのようにお使いになりたいということですかね。~
 
 //
 ***はい、その通りです。 [#ke5e11e3]
 >ゼンパク (2011-06-15 14:02:13 (水))~
 ~
 はい、その通りです。~
 MS-Officeからの脱却を目指す、手始めです。~
 
 //
 ***今までは [#b87da416]
 >ゼンパク (2011-06-15 17:09:09 (水))~
 ~
 エクセルを使ってバーコードを生成して、配布する為にPDF化をOpenOfficeを~
 使って行っていました。~
 バーコード生成をOpenOfficeで出来たら作業工程も減るし楽になります。~
 
 //
 ***Mibarcodeの機能は使えますか [#zd4113c4]
 >M.Kamataki (2011-06-15 18:06:10 (水))~
 ~
 http://homepage3.nifty.com/m-and-i/freesoft/mibarcd/mibarcode.htm~
 ~
 を拝見すると、クリップボード監視機能というものがあり、例えばA1セルの数値をコピーして、B1セルで貼り付けるとバーコードが挿入できそうです。この操作はCalcで実現していますか。~
 ~
 もし、実現できない場合はそもそもMibarcodeの機能を使えるか疑問です。~
 
 //
 ***Mibarcodeのライブラリー [#naca653e]
 >M.Kamataki (2011-06-15 18:10:37 (水))~
 ~
 VBAでMibarcodeの機能を利用する際、以下を見るとライブラリーの読み込みが前提のようです。~
 ~
 http://barcode.technical.jp/handbook2/chapter-5-5.html~
 ~
 仮にMibarcodeのライブラリーがdll形式のものなら、当Q&Aサイトの過去のご質問faq/5/310「ユーザのDLLを「OOOのオブジェクト」として登録する方法は?」が参考になるかもしれません。~
 ~
 この辺りをまず調べる必要があると思います。ゼンパクさん、調べられるでしょうか。~
 
 //
 ***拡張機能では駄目ですか? [#nb3a795d]
 >new_OOo3 (2011-06-15 19:11:10 (水))~
 ~
 こんばんは。~
 ~
 マクロの回答にはなりませんので参考程度に。~
 質問文の~
 ~
 >バーコードを生成して、配布する為にPDF化~
 ~
 との機能だけならば、下記拡張機能では駄目ですか?(既に検討済みの場合はご容赦下さい。)~
 Calcでは無くDrawでしか使えませんが、Barcodeを作成&PDFして配布するだけならば簡単機能ですが、使えるのではと思いました。~
 ~
  Barcode : http://extensions.services.openoffice.org/en/project/barcode
  使用方法 : http://wiki.services.openoffice.org/wiki/Extension_Barcode
  ( 要約すると、拡張機能を追加後、Drawを再起動すると、「挿入」Munuに「バーコード」が追加されていますので、それを選択すると下記図が表示されてバーコードの作成ができます。
 ~
 #ref(01Barcode01.png)~
 #ref(01Barcode02.png)~
 
 //
 ***引数 [#ja91f61f]
 >Wannwanno (2011-06-15 23:00:10 (水))~
 ~
 エラーになるのは括弧が無いからです。~
   'バーコードを作成
   Err = MiBar.Execute()
 しかしこれだけでは動作しません。~
   ActiveCell.PasteSpecial
 ↑の行を↓の様に変更して下さい。~
   createUnoService("com.sun.star.frame.DispatchHelper").executeDispatch(ThisComponent.CurrentController.Frame, ".uno:Paste", "", 0, array)
 
 //
 ***Win7へインストールして実験しました [#b6a521a3]
 >ike@九州 (2011-06-16 10:36:09 (木))~
 ~
 本体を起動してコピーの種類でメタファイルをチェックし終了しておきます。~
 ここでビットマップをチェックしていると、マクロからの実行でメタファイルを指定した場合に何故かエラーになりました。~
 ~
  以下は色々省略してます(Mibarcode.exeは起動必要なし)
  'MiBarオブジェクト生成
  MiBar = CreateObject("Mibarcd.Auto")
  Code = "123456ABCD"  
  'コードをセット 
  MiBar.Code = Code
  'コピーの種類(0=Bitmap,1=拡張メタファイル,2=メタファイル)
  MiBar.CopyType = 0
  'バーコードの種類(0〜12)
  MiBar.CodeType = 2
  '実行
  MiBar.Execute
  '貼り付け
  oCtrl = ThisComponent.getCurrentController
  Dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")     
  Dispatcher.executeDispatch(oCtrl.Frame, ".uno:Paste", "", 0, Array())
 ~
 マクロでのコピーの種類で~
 メタファイル系を指定するとOOoへコピーした場合に画質が何故か劣化します。~
 ビットマップを指定してコピーだと、それなりに実用になりそうでした。~
 
 //
 ***ありがとうございます。 [#g62458ca]
 >ゼンパク (2011-06-16 10:56:12 (木))~
 ~
 皆様、ありがとうございます。~
 解決の糸口が見えてきました。~
 バーコードのエクステンションが有るとは知りませんでした。~
 本日、試そうと思ったら~
 http://oooug.jp/faq/index.php?plugin=attach&pcmd=open&file=Runtime.jpg&refer=faq%2F6%2F249~
 と云うエラーが出て、ちょっと頓挫中です。~
 エクセルのマクロの実行ができると知り、昨日マクロを多用したシートの~
 処理を実行した時にハングしてしまった後遺症でしょうが、復旧にちょっと~
 時間が掛かりそうです。~
 今から打ち合わせだし……。~
 でも、後はなんとかなりそうです。ありがとうございました。~
 
 //
 #article