【StarSuite Basic/OpenOffice.org Basic】

■ このスレッドは過去ログ倉庫に格納されています
2006/10/06(金) 20:04:48
StarBasicまたはOOo Basicプログラミングに興味のある方、
もしくは学習中の方、知識共有の場にしましょう。

参考になる主なリンク
StarSuite 8 Basic プログラミングガイド
http://docs.sun.com/app/docs/doc/819-1332?l=ja
OpenOffice.org 推進サイト
http://ooosupport.good-day.net/ja/documents/faq/
OpenOffice.org日本ユーザー会翻訳プロジェクト BASIC HELP
http://openoffice-docj.sourceforge.jp/tr/translated/basic_help_frame.html
OpenOffice.org本家 API Project
http://api.openoffice.org/
ウィキブックス OpenOffice.org Basic
http://ja.wikibooks.org/wiki/OpenOffice.org_Basic
ウィキブックス OpenOffice.org Calc Basic
http://ja.wikibooks.org/wiki/OpenOffice.org_Calc_Basic
pukiwiki Plus!
http://hermione.s41.xrea.com/pukiwiki

他に追加情報があったら教えてください。
118デフォルトの名無しさん
垢版 |
2007/12/12(水) 23:39:18
お前に証拠を見せる必要なんかないね。
好きなだけOOoでマクロを書きたまえwww
2007/12/12(水) 23:39:42
逆に、MS Officeも「マクロではないけど」、
COMで、VBA以外でも同一のAPIが公開されていると言えるよね。
2007/12/12(水) 23:42:10
>>117
Java で書いてる奴は見た事がある。
俺がデータの加工するなら一旦 CSV に吐いて
スクリプト言語で処理するなあ。
121デフォルトの名無しさん
垢版 |
2007/12/12(水) 23:43:03
>>117
俺はいないと思うよwww
122デフォルトの名無しさん
垢版 |
2007/12/12(水) 23:45:04
普通に考えてOOoではBASIC使うのが便利だろ。
2007/12/12(水) 23:45:28
>>119
性能が欲しかったらそういう手を使うのが普通なんだろうね
124デフォルトの名無しさん
垢版 |
2007/12/12(水) 23:46:21
OOoって、ファイルのロードもセーブも凄く遅いよね。
イライラする。
125デフォルトの名無しさん
垢版 |
2007/12/12(水) 23:47:09
当たり前だろ、わざわざ圧縮したり、解凍したりしてるんだから。
2007/12/13(木) 02:17:50
>>109
> OOoでC/C++、Java、Python使ってるやつなんて見たことないわ。

このスレッドを上のほうから読んだ?
2007/12/13(木) 02:19:36
UNO は結構みんな使ってるんじゃないかと
2007/12/13(木) 02:24:14
>>126-127
マジレスしていい相手か考えよう
2007/12/13(木) 02:56:59
そんなスピードを求める処理とか、大きな遅延が生じるほどの負担を
強いる大きな処理とかをVBAとかOOo Basicでふつう書くか。
そういう場合はもっと適切なべつの選択肢があるだろうに。
130デフォルトの名無しさん
垢版 |
2007/12/13(木) 08:40:42
>>129
話が飛躍しすぎなんだよ。
P3とC2Dがあれば、C2DのPCを使うだけのこと。
わざわざP3を選択するのは無意味。
2007/12/13(木) 08:44:22
誤爆?
132デフォルトの名無しさん
垢版 |
2007/12/13(木) 10:38:54
P3 = OOo
C2D = Excel
2007/12/13(木) 16:02:07
>>129 >>130
そういう話はスレ違い。
ここは純粋にOOo Basicを習得する人のためのスレッド。

その手の話題は↓とかへ行って好き勝手にやってね。

OpenOffice.orgってどうなの?Part10
http://pc11.2ch.net/test/read.cgi/bsoft/1183697115/
134デフォルトの名無しさん
垢版 |
2007/12/13(木) 17:06:31
>>133
過疎ってまともな書き込みのないスレで何言ってるんだ?
スレが出来て1年以上たつのに134だぞwww


ばーかwww
135デフォルトの名無しさん
垢版 |
2007/12/13(木) 21:34:43
ばかれーーーーーす。。。。。。。




2007/12/14(金) 00:15:16
ユーザーでOOo使ってる所と仕事した事ある人いる?
2007/12/14(金) 10:19:47
Linux使っているところはOOoもそれなりに使っているよ。
2007/12/14(金) 13:52:46
>>130
>>129は現実的なまっとうな意見だ。飛躍しているのはお前だろ。
139デフォルトの名無しさん
垢版 |
2007/12/14(金) 17:28:20
>>138
お前、ほんとうにバカだなwwwwww
友達とかいないだろ。

かわいそうにwwww


2007/12/15(土) 00:21:42
自己紹介乙な人が居るな...
2007/12/15(土) 01:42:43
>>137
OOoアウトプットな物作ったりした?
なんかクリティカルな問題あった?

>>138, 140
改行制御すら出来無い奴相手すんな
142ムームー
垢版 |
2007/12/15(土) 23:09:21
OpenOffice.org 2.3.1 (Windows) を使っています。
データベースソフト Base を使っているのですが、
OpenOffice.org Basic のオブジェクト モデルというのは
どこで知ることができるでしょうか?
これが分らないと Basic を書けない。。。
2007/12/16(日) 00:22:50
OpenOffice.org Basic のヘルプか、Sunが配布してるプログラミングガイドで見た覚えがある。
144ムームー
垢版 |
2007/12/16(日) 01:01:50
みつけた! これですね。
http://api.openoffice.org/docs/common/ref/com/sun/star/module-ix.html

145137
垢版 |
2007/12/18(火) 10:49:01
>>141
私の関わるプロジェクトでは、subversionで差分が取れるという理由もあって資料はodsで作っておくことが多い。
外部に提出するときは、Windows版でxlsに保存し直すけどね。
# Linux版だとフォントの関係もあって、xlsに保存してもレイアウト崩れ捲くるのが問題といえば問題。
ま、マクロは殆ど使ってないんだけどね。
2008/01/12(土) 14:46:27
1ヶ月前に、OpenOffice.org のマクロの動作速度に関する議論があるけど、
>>103 みたいに OOo の速度で問題ないって言う人は
VBA と OOo とで両方同じマクロを書いて比較したことないんだろうなあ。

俺は自分で書いた VBA マクロを OOo に移植してるんだけど、
特にセル更新まわりの OOo の遅さにはびっくりしたよ。

配列をまるごとセルに突っ込む方法を駆使すればなんとか使えるレベルになるけど、
それでも同じ方法をつかった VBA よりも遅いし、
その高速アクセス法は検索してもなかなか見つからないのが困りもの。

オープンソースを擁護したがる人は頑固だから
上の醜い争いにあるようになかなか認めたがらないんだろうけど。

まー、バージョンが上がるにつれどう改善されていくか、のんびり見守るけどね。
2008/01/12(土) 15:57:11
見守るってのは、口を出すことじゃないよ。
2008/01/12(土) 20:15:16
自分に都合の悪い意見は真っ赤になって反論するのが信者と呼ばれる人のメンタリティだから
2008/01/12(土) 22:45:11
>>146
セル更新中にリフレッシュとめてないんじゃないの?
2008/01/12(土) 23:03:36
そんな素人じゃないから。

(A)画面更新止めずに1セルずつ書き込む方法
(B)画面更新止めて1セルずつ書き込む方法
(C)画面更新止めた上で setDataArray を使って配列をまるごと表に書き込む方法

を全部試したが、数千を超えるデータを書き込む場合、唯一使い物になる方法は(C)のみ。
それが >>1 のオフィシャルのプログラミングガイドに書いてないのにあきれた。

ちなみに(A)〜(C)に対応する方法はもちろん VBA にも全部あるが、
対応するもの同士を比較すれば全部VBAの方が高速だし、
なによりVBA の場合、(A)はともかく(B)も(C)もまともな速度で動く。
2008/01/12(土) 23:15:23
OOoってJavaVMで動いてるんだっけ?
2008/01/13(日) 02:57:53
>>151
OOoはJavaVMで動いてないよ。
例外としてBaseの標準DBにだけjavaが使われているよ。
2008/01/13(日) 12:14:36
OOoはれっきとしたネイティブアプリケーションです。

動作がもっさりのは、複数のOSで動かすために最適化に制約が多いだろうことと、
単に実装がウンコであろうことの両方が原因じゃないかな。
2008/01/13(日) 22:00:55
いくらもっさりだからってJavaをひきあいに出すのはJavaに失礼だ。
155デフォルトの名無しさん
垢版 |
2008/01/14(月) 15:29:08
>>153
最古のコードと最新のコードが混在してて、そのコード間の整合性を取り持つために
ひどいスパゲッティになってるって

ノーベルの中の人が嘆いてた
2008/01/14(月) 15:55:29
オープンソースの弊害って感じかね
2008/01/14(月) 21:44:43
NetScapeが重たくなってどうしようもなくなってあれだからな
反面教師にしてOOoにはがんばってもらいたい
2008/01/15(火) 01:45:39
結局、FireFoxはネスケのコードが使い物にならなかったから、1から書き直したらしいね

OOoもどうなることやら・・・
2008/01/15(火) 07:26:08
なんか話が間違ってないか?
「Netscape6 は Netscape4 のコードが使い物にならなかったから…」ならわかるけど。

Netscape6 から Firefox では GUI は大幅に刷新されているが、
レンダリングエンジンの Gecko 部分は基本的には変わらなかったはず。
2008/01/15(火) 10:34:00
マジで?
勘違いしてたみたいだ
2008/01/16(水) 01:39:53
>>159
Netscape4のほうがよっぽどスイスイ動いて軽快だったのにね。
なんで一から書き換えちゃったんだろ?
2008/01/16(水) 07:26:54
>>161
一見スイスイ軽快に動いていたように見えたが、JavaScript 絡みで頻繁に落ちる、
CSS はまともに解釈しない、Java の起動に1分くらいかかる、などで、
それらの技術の普及を阻害しており、百害あって一利なしのブラウザだったんだよ。

本当に使ったことあるのか?
2008/01/16(水) 23:11:55
MIDIのプラグインを起動するときなぜかJavaが起動するなんてのも有ったな・・・
2008/01/17(木) 01:11:17
>>159
> Netscape6 から Firefox では GUI は大幅に刷新されているが、
> レンダリングエンジンの Gecko 部分は基本的には変わらなかったはず。
裏を返せばレンダリングエンジン以外捨てちゃったようなもんだよな。
OOoもいずれそうなるかもね。
2008/01/17(木) 07:32:26
OOoはGUIより内部的な問題が多そうだけど
2008/01/17(木) 23:28:16
>>162
ずっとNetscapeユーザーだったけど、それは実感とずれている。
Linux版のはたしかに頻繁に落ちたけど、Windows版はそうでもなかったよ。
javaアプレットなんてめったに使わないし、たとえ起動に1分かかったとしても
その他の利点でNetscape6よりコミュニケータのほうがずっと軽くてよかった。
JavaScriptで落ちたりしたことなどめったになかったはず。
当時はCSSもちゃんと解釈していた。Netscape6が出てきたときにはなんで
こんな糞重いブラウザになっちゃったんだろうって印象しかなかったな。
2008/01/17(木) 23:53:46
> 当時はCSSもちゃんと解釈していた。

それはない。ネスケ4がいつまでも息絶えなかったおかげで「JavaScript は基本オフ」とか
「CSSは使わない」とかおかしなローカルルールがまかり通ってしまった。
JavaScritp オンにしとくと CSS 関連で落ちたりもしたし。

質的には IE4 の方が相当マシだったからネスケ4は凋落していったんだが、
ネスケ信者はいまだにそれを認めてないのか?
2008/01/18(金) 00:24:48
うん
2008/01/18(金) 08:14:07
Netscape4 信者と OpenOffice.org 信者は重なってるのか。
どうりでコミュニティが醜いはずだわ。
2008/01/18(金) 22:32:10
Netscape4www
2008/01/19(土) 18:43:08
>>164 >>165
ということは現在のOOoのコードは「あますところなく捨てられる」運命か。
2008/01/19(土) 19:47:26
開発スタッフが現在の OOo のパフォーマンスに危機感を抱いていない限りそれはないだろ
2008/01/21(月) 10:55:42
C#終了のお知らせ
http://pc11.2ch.net/test/read.cgi/tech/1200796178/
2008/01/27(日) 23:27:53
>>172
危機感を覚えても手が回らないとか
2008/03/18(火) 23:33:01
過疎ってるな
176デフォルトの名無しさん
垢版 |
2008/03/20(木) 20:12:37
過疎ってるね

ちなみに、2.4はRC6まで出ている
本リリースがいつになる事やら・・・
2008/03/27(木) 15:38:26
立てる板が悪いんじゃ?
2008/03/27(木) 22:55:07
一応マクロとかその辺の話題についてのスレだと思うんだけど。。。
2008/03/29(土) 01:32:01
ならなおさら
2008/03/29(土) 19:57:38
ExcelVBAのほうが簡単だし…
わざわざ覚える気にならん
2008/04/02(水) 00:33:44
Pythonつかえるんだっけ?
2008/04/02(水) 21:36:09
Basic ですら使う人は少ないのに Python 使ってる人なんてどんだけいるのやら

利用者は Basic >> Java >> Python くらいの印象かな
2008/04/04(金) 14:55:26
>>180
迷子?
2008/04/08(火) 21:45:25
OOo3のDeveloper Preview入れてみたけど、マクロのパフォーマンス上がってないね
2008/05/09(金) 11:39:17
OOo3のBeta入れてみたけどAuto Filterで抽出→コピペで複数行置換→表示されていない間の
部分まで置換されてガックリだったのが抽出結果だけが置換されるようになっててまた
Excelに一歩近づいた感じ。
2008/05/11(日) 06:40:40
次期オープンソース・オフィス・スイート「OpenOffice.org 3.0」のベータ版が登場:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20080508/300926/
187デフォルトの名無しさん
垢版 |
2008/05/13(火) 03:45:00
StarOfficeも9になんのかねえ

やめてくれよな
2008/05/14(水) 00:30:14
OOo のオブジェクトブラウザその1
X-Ray tool
ttp://www.ooomacros.org/dev.php#101416
形態: OOo Basic マクロ
インストール: ドキュメント内の "Install Xray" ボタンを押す。

利用:
Sub Main
Xray ThisComponent
End Sub
利用前に XrayTool ライブラリを読み込んでおく必要がある。
以下のコードをどこかのライブラリのモジュールに保存、ツール - カスタマイズから
アプリケーションの開始イベントに設定するとよい。
Sub LoadingLibraries
BasicLibraries.LoadLibrary("XrayTool")
End Sub

表示されるのはモダルダイアログで、ページごとにプロパティやメソッド、
インターフェースおよびサービスの情報が参照できる。
メソッドは引数の無いもののみ呼び出すことができ、連続してその値に関する情報を参照できる。
Configuration ボタンを押して IDL ガイドおよびブラウザの設定をしておけば SDK ドキュメントを参照できる。

OOo Basic 以外の言語から利用するには、ScriptProvider を利用する必要があり少し面倒。詳細はマニュアル参照。

特徴:
ユーザーが多い
引数のあるメソッドが取得できない
モダルダイアログ
2008/05/14(水) 00:45:28
OOo のオブジェクトブラウザその2
Object Inspector
ttp://wiki.services.openoffice.org/wiki/Object_Inspector
形態: Java で書かれたサービス
インストール: ttp://api.openoffice.org/Projects/ObjectInspector/Inspector.oxt からダウンロード
ツール - 拡張機能マネージャから追加する。(要 Java)
(ソースコードは OOo SDK 付属)

利用:
Sub Main
oInspector = createUnoService("org.openoffice.InstanceInspector")
oInspector.inspect(ThisComponent, "My Document")
End Sub
OOo Basic からいつも上記の様に記述するのが面倒であれば、Standard ライブラリなどに次のようなものを入れておく。
Sub Inspector( oTarget As Object )
oInspector = createUnoService("org.openoffice.InstanceInspector")
oInspector.inspector( Target, "target" )
End Sub

ツリー表示でメソッド、プロパティ、インターフェースおよびサービスが表示される。
ノードの展開で値を取得できる。引数のあるメソッドも値の型の制限内で呼び出すことができる。
また、C++、Java、OOo Basic のコードを生成してくれる。該当の IDL ガイドページを開くこともできる。

特徴:
コード生成
多くのメソッドが呼び出せる
ツリーが見難い
ノンモダル (Java Swing によるウィンドウ)
2008/05/14(水) 01:17:05
突然どうした?
2008/05/14(水) 01:41:23
>>190
別スレでレビューしれと言われて
2008/05/14(水) 01:51:37
OOo のオブジェクトブラウザその3
MRI
ttp://extensions.services.openoffice.org/project/MRI
形態: Python-UNO を利用したサービス
インストール: ツール - 拡張機能マネージャから追加する。(要 Py-UNO インストール)

利用:
Sub Main
Mri ThisComponent
End Sub
ライブラリを読み込むのが面倒であればツール - カスタマイズ - イベントのアプリケーションの開始
に MRILib モジュールの LoadMriLibrary を指定しておく。
ツールメニュー - アドオン - MRI からも実行できる。このときにはそのドキュメントのコンポーネントをターゲットになる。
同じく MRI <- selection の場合にはドキュメントで選択中のオブジェクトがターゲットになる。
OOo Basic 以外からの利用はマニュアル参照。

見た目は X-Ray と同じ系統。メソッドを引数付きで呼び出したり、プロパティ値の取得設定が可能。
IDL ガイドを設定しておくと参照可能。

特徴:
ノンモダル (OOo の awt ツールキットによるウィンドウ)
選択範囲のオブジェクトを調べるのにコードを書く必要がない
普段からマクロを書いたりしている場合には起動が楽
2008/05/14(水) 06:43:09
>>188 横だが、参考になった
194デフォルトの名無しさん
垢版 |
2008/05/26(月) 12:13:05
質問なのですが、
MS Officeのように、COM等を使用して
外部ブログラムから制御することは可能でしょうか。
自作ブログラムから制御して、Calcに表を作成して保存したいのですが。
2008/05/26(月) 12:57:11
>>194
こことか、SDK の例かねぇ
ttp://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Automation_Bridge
2008/05/26(月) 13:35:13
>>195
さんくすです。
出来るんだね。
でもExcelとは互換性ないみたい。涙)・・・

2008/05/26(月) 21:07:52
Excelとの互換性は期待しない方が…。互換機能を追加したビルドも配布されてるけど期待しすぎるとガッカリする。
面倒でも OOo の文法を覚えるのが一番早い。その価値があるかは微妙だけどね。
2008/05/26(月) 21:48:36
なんで API の互換性まであると思っている人が多いのか・・・
2008/05/26(月) 22:01:41
OOo での VBA に興味があるなら
ttp://wiki.services.openoffice.org/wiki/VBA
vba api を Basic 以外から利用する方法も書かれてる

遅い遅いといわれている OOo Basic だが、VBA 互換実装でさらに遅くなってないか不安
2008/05/26(月) 22:05:54
VBAのコードをそのまま動かし(せ)ても、遅すぎて使い物にならない場合もあるしな。
結局 OOo 用に最適化しなきゃならないという。
201デフォルトの名無しさん
垢版 |
2008/05/26(月) 22:42:57
LinuxやFuck OS、携帯電話のOSに、Windowsとの互換性を持たせろといっているようなものだ。

俺は、それらは別物であって移植の手間は必ずかかるということを認識しているから
マイクロソフト製Officeとその他Officeソフトに互換性がなくても問題とは思わない。
2008/05/28(水) 17:59:06
最近ODFDOMってのを良く見かけるんだが…
OOoから開いている文書をDOMレベルでいじれる可能性ってあるの?
ていうかそうなったらまたプログラムが膨れそうで嫌な気もするが…。
OOoもバージョン4は最初から作り直した方が良いと思う。
2008/05/29(木) 20:09:42
会津若松市がOpenOffice.orgを全庁導入へ
「順次MS Offceから切り替え,5年間で約1500万円削減」
http://itpro.nikkeibp.co.jp/article/NEWS/20080529/304780/
2008/05/29(木) 22:52:45
http://www.sei.co.jp/news/press/08/prs618_s.html

OOo を採用する団体は着々と増えてるよね。
2008/05/29(木) 22:58:34
>>203
企業レベルで「5年で約1500万削減」って効果としてはあまり大きくないよなあ。

それに5年はともかく、10年後に OOo のファイルを開けるソフトが残ってるか結構微妙な気がする。
2008/05/29(木) 22:59:34
あー、企業じゃなくて市なのか。まあそれでもあんまり劇的ではないな。
2008/05/29(木) 23:07:59
>>205
>10年後に OOo のファイルを開けるソフト

OOo でも他のオフィス系ソフトでも
2008/05/29(木) 23:30:07
unzip + editor
2008/05/29(木) 23:47:52
お前ら嘘でもいいから「OOoは10年後も健在だ」とか言えんのか。

>>207
ファイル形式標準化されたからってそれを採用するソフトが現れるかどうか…。

>>208
レイアウト崩れるなら最初からテキストエディタでいいだろ。
210デフォルトの名無しさん
垢版 |
2008/05/30(金) 00:15:44
オウプンオフィスで作成したファイルがオウプンできない
211デフォルトの名無しさん
垢版 |
2008/05/30(金) 12:40:19
OOo Basicですでに開いている他のドキュメントのマクロを
別のドキュメントのマクロから呼び出すにはどうするのでしょうか
(VBAのApplication.Runに相当する命令)
2008/05/30(金) 13:12:59
>>209
スタイルも全てxmlなんだから、適当なビューワを誰か作るだろ。
2008/05/30(金) 13:47:28
>>211
>すでに開いている、というのはコードから開いてドキュメントオブジェクトがあるというわけではないわけかな

まず、デスクトップから FramesContainer にアクセスしてほしいドキュメントの所属するフレームを取得する
フレームからコントローラ、モデルオブジェクトまで辿る。
ドキュメントのモデルオブジェクトから ScriptProvider を取得、getScript で実行したいマクロを取得する。
最後に invoke する。

具体的なコード書かなくても分かるや
2008/05/30(金) 14:49:12
続き。

Sub Hoyoyo( sString As String )
msgbox sString
End Sub

Hoyoyo ドキュメント中の Standard ライブラリ、Module1 にある Hoyoyo subroutine を引数付きで実行する。

Sub invoke_Hoyoyo
sURL = "vnd.sun.star.script:Standard.Module1.Hoyoyo?language=Basic&location=document"
'フレームを見つけてくる
oFrames = StarDesktop.getFrames()
Dim oFrame As Object
For i = 0 To oFrames.getCount() -1 Step 1
If Left(oFrames.getByIndex(i).Title,6) = "Hoyoyo" Then
oFrame = oFrames.getByIndex(i)
End If
Next
If NOT IsNull( oFrame ) Then
oDoc = oFrame.getController().getModel()
oSP = oDoc.ScriptProvider
oScript = oSP.getScript(sURL)
If NOT IsNull( oScript ) Then
oScript.invoke( Array( "Say Hoyoyo." ), Array(), Array() )
End If
End If
End Sub
215デフォルトの名無しさん
垢版 |
2008/05/30(金) 17:24:49
>>214
oDoc = oFrame.getController().getModel()
でドキュメントオブジェクトは取得できるのですが
oSP = oDoc.ScriptProvider の行で
「BASIC ランタイムエラー プロパティまたはメソッドが見つかりません」
と言うメッセージが出て終了します
もしかして1.1.5では実行できないのでしょうか
2008/05/30(金) 18:40:35
>>215
>1.1.5
その考えは無かったわ

dispatch でも動かん。すまん、わからん
Scripting Framework が導入されたのが 2 系からだから ScriptProvider は 1 系だと 1.9 後半くらいじゃないと動かん
217デフォルトの名無しさん
垢版 |
2008/05/30(金) 19:26:27
>>216
スペックが低いためか2.x.xは正常に動作しないため
http://oooug.jp/mirror/1.1.5/index.html
で入手した物を使用しています
お手数をおかけして申し訳ありませんでした
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況