@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

OpenOffice(1もしくは2)をVB6もしくはVB.netからエクセルのように使用したい

投稿者投稿内容
ろーちゃん
ベテラン
会議室デビュー日: 2005/05/26
投稿数: 79
投稿日時: 2005-09-05 19:04
Win, OpenOffice(1もしくは2)をVB6もしくは.netからエクセルのように使用したいのですが、エクセルのようにオブジェクトライブラリは提供されているのでしょうか?
されていない場合、その他の方法で利用できないでしょうか?
またされているとすれば、使用方法など記載されているサイト、書物などありますでしょうか?
お願いいたします。
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2005-09-05 19:10
"OpenOffice","ActiveX"などでGoogle検索するといっぱいでてきます。

http://openoffice-docj.sourceforge.jp/tr/temp/OOo11_Features.html
を見るとActiveXコントロールの機能があるようですので、これを使ってみるとか。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2005-09-06 00:23
表示結果が ベストエフォートの互換であっても
マクロ機構まで 互換可能?
(Officeの強い影響を受けているらしい、ですが)
=======
機能追加の限界に達したOffice類は解体し、便利部品として再構成、それを使うのが
.NET Framework 推進事業部の方針だったのでは
.NETでOpenOffice ? 目的がわからない
-----------
http://openoffice-docj.sourceforge.jp/tr/translated/udk_faq.html
OpenOfficeはUNO(Universal Network Objects)を使用してAPIを実装している。
http://www.sssg.org/blogs/hiro345/index.php?p=859
あたりです。MS-Office のOLE とは別機構です。

しかし、配慮はあります 3 Professional UNO
http://api.openoffice.org/docs/DevelopersGuide/ProfUNO/ProfUNO.xhtml
読み応えあり

http://api.openoffice.org/docs/DevelopersGuide/ProfUNO/ProfUNO.xhtml#1_4_UNO_Language_Bindings
後半に説明があるらしい

3.4 UNO Language Bindings では
Java, C++, OpenOffice.org Basic, and
all languages supporting MS OLE automation
or the Common Language Infrastructure (CLI)
on the win32 platform are currently supported.

3.4.3.5 Automation Bridge
The OpenOffice.org software supports Microsoft's Automation technology.
A client program that controls OpenOffice.org can be represented by
an executable (Visual Basic, C++) or a script (JScript, VB Script).

UNO was not designed to be compatible with Automation
and COM, although there are similarities.
=======
MSの言語では ブリッジの作り方の説明で、クライアントの例は少ない
ズレがあるものの接続は容易でない。
[code]
Option Explicit
Sub main()
Dim obj As Object
Set obj = CreateObject("dcomtest.writerdemo.wsc”)
obj.run
End Sub
[/code]
とか書いてはありますが?
With the Automation bridge, it is possible to implement those objects
even as Automation objects and use them as arguments,
just like UNO objects.

クライアント例は Java と C++ のみ状態です。
======================================

OpenOffice.orgユーザーのためのMicrosoft Office互換性研究室
http://oooug.jp/compati/2.0/

[ メッセージ編集済み 編集者: MMX 編集日時 2006-01-12 14:21 ]
ろーちゃん
ベテラン
会議室デビュー日: 2005/05/26
投稿数: 79
投稿日時: 2005-09-06 09:29
ありがとうございます

>"OpenOffice","ActiveX"などでGoogle検索するといっぱいでてきます。

出てくるのですが、VBから使用できるActiveXってどこにあるか
よくわからないのですが。

>http://openoffice-docj.sourceforge.jp/tr/temp/OOo11_Features.html
>を見るとActiveXコントロールの機能があるようですので、これを使ってみるとか。

みたいですね、しかし、実際、どこにあるかわかりません。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-09-06 12:00
引用:

MMXさんの書き込み (2005-09-06 00:23) より:
表示結果が ベストエフォートの互換であっても
マクロ機構まで 互換可能?


マクロ機能は互換不可だったはずですよ。OOoではマクロBasicという独自の実装になってます。

引用:

ろーちゃんさんの書き込み (2005-09-06 09:29) より:
みたいですね、しかし、実際、どこにあるかわかりません。


オープンソースに有りがちな「ソースをGREPして見なさい」って事になるのかと。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-09-06 13:47
諸農です。

参考になるかどうかわかりませんが。

Document conversion with OpenOffice

OpenOffice.org for Developers


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Atsushi.Eno
ベテラン
会議室デビュー日: 2003/04/23
投稿数: 60
投稿日時: 2005-09-06 15:32
質問内容から考えて、Excel.Applicationみたいなのが取得できることが重要で、マクロの互換性の話なんて誰もしていないという前提で。

.netから使用するのであれば(ここは.netの会議室らしいので)、用意されているActiveXコンポーネントをruntime callable wrapperで使うのが一番無難だと思います(ってtlb取れるのかな…?)。

OO.o 2.0以降は、CLI (ECMAの方)からも呼び出せるようになるかもしれません。自分でちゃんと動作させたことはありませんが、デフォルトでは無効になっていると思いますし、Windows/MS.NETでは動かないかもしれません(んなこと無いだろうとは思いますが。monoのdaily snapshotでは動作報告がありました: http://www.gnome.org/~michael/activity.html#2005-08-23 )。CLI-UNOというAPIラッパーは以前からありましたね(僕が最後に見たときは、しばらくメンテナンスされていなかったみたいですが。)

言うまでもないことですが、普通は実装のソースを探検するより先に使用例を探します。MSDNでサンプルを探すのと同じことです。
http://api.openoffice.org/source/browse/api/odk/examples/
OLEもCLIもここから見つかります。
ろーちゃん
ベテラン
会議室デビュー日: 2005/05/26
投稿数: 79
投稿日時: 2006-01-09 19:54
わかりませ〜ん。 わかりやすいサイトはないですか?

スキルアップ/キャリアアップ(JOB@IT)