【StarSuite Basic/OpenOffice.org Basic】
■ このスレッドは過去ログ倉庫に格納されています
>>326 それでやるとGUIからやるのとは違ったものになることが多くて ひとまとめにされたり、変に分割されたりするんよ ちょっと .chart2.data.DataProvider を試してみる でも getUsedData から取得できるデータに x のデータが一系列分しかみられないのは・・・ いや、結局googleでWeb上に分散している答えを探すしか方法がないってことが問題なんでしょ。 あらかじめ答えの書かれた URL が分かってるならいいけど、 それを知らず、なおかつその答えがWeb上に存在するかどうかすら怪しいものを、 疑問点が湧くたびに調べなきゃならないってのは相当なストレスだよ。 俺は一時期VBAマクロの移植作業で苦労した経験があるが、 もう当面やりたいとは思わない。 いや、GUI から出来るのにそもそも API から不可だったりすることが大問題 調べても見つからないから、ソースを見たら外部から利用できる API がなかったりする >>327 x値は普通1系列しか無いんじゃない? >>328 >結局googleでWeb上に分散している答えを探す web全体まで見なくても、http://www.oooforum.org/forum/ 内だけで、 大抵の場合はカタが付くよ。 自分が困ってる問題には、たいがい先につまづいてる人が居るから。 >>330 XY 散布図に多系列だと、大抵は x に対応する y が必要だからさ・・・ .chart2.data.DataSequence は x と y の対応に関する指定がないっぽいから望み薄だ 今試したら俺 >>326 の方法で XY 散布図のデータ系列の追加できたけどな。 もともと x, y1, y2 の2系列があるところを x, y1, y2, y3 の3系列にするってかんじに。 あとは色とかは線の太さとかは自分で設定すればいいし。 いや、散布図で一本目と別の x に対する y の値のグラフを同じグラフに描くような感じに 2.3 頃から使えるようになったやつ なるほど、そんな機能があるとは知らなかった。 そんな新しい機能に対するAPIが用意されてるかどうかはすこぶる怪しいな。 ダメっぽいよ。未だGUIでも個別設定と纏めて設定を切り替えるととち狂うし。 散布図から他のグラフに変えて、元に戻してもおかしくなるし。 # 要は、x軸複数系列は完成してないと見るべし。 グラフのデータ系列の操作だがどうやら oChart = ThisComponent.getSheets().getByIndex(0).getCharts().getByIndex(0).getEmbeddedObject() oCooSys = oChart.getFirstDiagram().getCoordinateSystems() 付近から始めるみたいだ。 やっと、作成済みの散布図に新しい XY の系列の追加がうまくいったあぁ >>337 おめ。 さぁ、後からツボった人が参照できるように、 書いたコードをどこかに晒す作業に戻るんだ。 // 公開の縛りとかが無くて、そゆ事が可能なコードならね:) 3.0 rc3 が出て、正式が 10/7 だと正式は rc3 になるんだろうけど user/Script/python にいれた python マクロが認識されないままになりそうだ OOo3.0をさっそく入れてみた。エクセル2003のマクロが動くかどうか試してみた。 シートオブジェクトを代入するところでつまずいた。orz Dim ST_G As Excel.Worksheet, ST_D As Excel.Worksheet Sub 図作成() Set ST_G = Worksheets("Sheet1") ←ここでエラー Set ST_D = Worksheets("Sheet2") Dim ST_G As Excel.Worksheet を As Object にすればいいんじゃない >342 ありがとうございます! ところが、別のところ(セルの塗りつぶし)でもエラーが出ました。移植に必要な情報ってどこかに あるんですか? ちゅうかさ、v.2 の頃に以前 VBA サポートを有効にしたビルドを使ったことあるけど、 あれにあんまり期待しない方がいいと思うぞ。ほとんどが動かなかったし。 ※NetBeansスレでも聞いたのですが、こちらでもお願いします。 NetBeansでOpenOffice.Apiを使ったことのある方、教えてください。 やりたいこと 「OpenOffice.Calcからjavaのメソッドを呼び出す」 調べたら NetBeansでOpenOffice.Apiを使えば簡単にスケルトンクラスを作ってくれることがわかりました。 早速、Apiをインストールしたのですが、以下の現象がでてます。 Apiをインストールすると アドオン、calc アドイン、component、クライアントアプリ の4つのプロジェクトが作成可能になります。 今回のやりたことは、componentプロジェクトでできそうです。 試してみると、アドオン・calc アドインは動作するのですが、componentプロジェクトがうまく作れません。 componentプロジェクトを作成すると、サービスの登録画面が表示され、インターフェース、サービスを追加しようとしたのですが、なぜか追加できません。 インタフェースを選択し新規データ型を定義ボタンから、追加しているのですが、うまくいきません。 解決策、またはやり方の間違えを指摘できる方、お願いします。 OS:WindowsXP pro IDE:Netbeans 6.1 OO:OpenOffice 2.4.1 SDK:StarSuite_8_SDK で試しています。 OpenOfficeSDKは現在DLできないようなので、StarSuite_8_SDKを使ってみました。 よろしくお願いします。 >>345 こことかどうかな ttp://wiki.services.openoffice.org/wiki/General_UNO_Component_Project_Type >>346 早速の返信ありがとうございます。 そのサイトを参考に進めていたのですが、Interfaceを追加するところから先に進まない状況です。 Logでも吐き出してくれれば調査できるのですが、そういうのも見当たらず・・。 もしかすると、IDEとOOのバージョン組み合わせに問題があるのかもしれません。 ほかにも何か、気になることがあればお願いします。 バイナリファイルからnull terminated stringを 読む方法はありますか? OpenOffice.org 3.0/calc/OOo Basicです。 対象のファイルはバイナリファイル (ゲーム提督の決断4のセーブデータ)であり アドレス2192F(h)から 8b e3 98 5a 8e ae 8a cd 90 ed 00 と記録されています。(Shift-JISで「九六式艦戦」) Dim Result as String Get #1, Offset+1, Result とすると「六式艦戦」から始まる長さ51807バイトの 文字列になってしまいます。 どうやら先頭2バイトを文字列長さと認識しており、 00を文字列終端と認識しません。 Input #1, Result とすると「ヒ ̄リZホ?ハ?ミ?」という長さ10バイトの 文字化けした文字列になってしまいます。 null terminated stringをOOo Basicのstringとして 読み込む方法を教えてください。 バイナリデータの取得自体はこのへん? ttp://hermione.s41.xrea.com/pukiwiki/index.php?OOobbs%2F96 サイズの指定は手動でいいなら Dim buf(10) As Byte ' 0〜10の11個 oInputStream.readBytes(buf(), 11) こんな感じでできるんじゃないの。それをどうstringに変換するかは知らんけど。 ってそういう話じゃないのかな? リンク先が参考になりました。 ありがとうございます。 バイト型の配列で読みとれたら、後は文字列への変換ですね。 Shift-JIS→Unicode変換の方法がわかれば、 Chr関数はUnicode値→文字へ変換と組み合わせることで 解決できそうです。 こういう基本的なドキュメントってどっかにまとまってるべきだよなあ いや、ドキュメント作るにしたって元ネタがSunの出してる全然不足だらけのドキュメントと 掲示板に散在するTIPS集しかないじゃん。まさかソースからドキュメント起こせとでも? やる気があるならまずは全然不足だらけのドキュメントと掲示板に散在するTIPS集の情報を一箇所にまとめてみれば? やる気があるなんて誰も言ってないけど。俺は自力で探す方法でなんとかしのいでるし。 まあVBAのならともかく、Calc Basic のドキュメントなんて書籍化しても100部くらいしか売れないだろうな。 まあそうだろうね やる気があるとは思っていないからあるならって仮定付きで言ったまでで しかし書籍化なんて言葉が思い浮かぶだけでもびっくりだ 何をそんなにカリカリして食いついてくるのか理解不能だな 「まとめるべきだよなぁ」なんて言ってるからじゃね? 頭から他力本願な癖に「〜すべきだ」なんて強要する態度が気に入らないと思われ。 何怒ってんだろう?OOo関係に文句いったらカチンとくるの? いやOOo使ってないし 単にあがってるスレだったのが理由 さがってればスレの存在自体知らなかった 一般的な突っ込みの仕方をしただけなんで OOoのドキュメント環境の知識はないよ 煽ってるつもりなんだろうか? アホの考える事はわからんの〜 >>348 seek して TextInputStream を Shift_JIS エンコードに設定して 区切り文字に chr(0) 指定の readString で読むとか 8B E3 00 8B E3 98 5A 8E AE 8A CD 90 ED 00 8B E3 Sub readtysef sURL = "file:///E:/usr/123" oIN = CreateUnoService( _ "com.sun.star.ucb.SimpleFileAccess")._ openFileRead(sURL) oTxtRead = CreateUnoService( _ "com.sun.star.io.TextInputStream" ) oTxtRead.setEncoding("Shift_JIS") oTxtRead.setInputStream(oIn) oTxtRead.skipBytes(3) ' from 8B sRes = oTxtRead.readString(Array(chr(0)), True) oIn.closeInput() End Sub マクロ編集のエディタが使い辛いのですが、エディタの機能を拡張したり、他のエディタと置き換えたり呼び出したりとか そういうことはできませんか? VBAで開発して、ある程度できたらOOoにコピペして調整。 Basice IDE 上でコピペしただけで、ダウンしてしまいます。。 何なんだろう。この使いがたさは。。 base で何かを作りたいと思って 調べたことを書きました。 http://yumisaiki.blogspot.com/2009/01/open-office.html でも、普通に今日の日付を標準で表示させるというような簡単なこともmacro書かないといけないみたいですが、 方法がどうしてもわかりません。 自己レスで=す。今日、日付フィールドの属性にあるドロップダウンというのをはいにすると カレンダーコントロールのような入力画面になることを発見しました。 これはなかなか無料とは思えない便利な機能です! >>368 Basic、Baseについては、http://oooug.jp/faq/ でも多くの情報が得られます。 例えば、http://oooug.jp/faq/index.php?Faq%2FBase なんてどうでしょう。 Baseでつまづいた時の参考になります。 日付フィールドに関しては、紆余跼蹐があって、初期のころは当日の日付が 入力されていたようです。以下にそんなことがかかれています。 http://oooug.jp/faq/index.php?Faq/1/334 以下を見ると、〜.odbというBaseのサンプルもたくさん登録されています。 http://oooug.jp/faq/index.php?plugin=attach&pcmd=list >>201 オヤスミ… <⌒/ヽ-、___ /<_/____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ 補完機能が付くのはいつくらいなんでしょうか?・・・・ OpenOfficeのGUIからはエクスポート機能を使ってPDFや画像形式でファイルを保存できますが、 コマンドラインからは同様の機能はすぐに使えるんでしょうか? ググってみたんですが、macroを使って変換するのは見つけたんですが、機能として持っているのなら macro使わない方法もあるかと思って質問してみました。 あと、unoconvを使ってみたんですが、これはOpenOfficeをサーバとして起動して何かを渡して いるようなので、そういうことができるならmacroなしのコマンドラインからという手段がありそうですよね? writerで外字を使おうとしたら文字化けしてしまう。 StarSuiteでは外字使えないんでしょうか? windowsはsp3、IMEを使ってます。 OpenOffice3.1.0を使用しています. クイック起動はオフにしています. DelphiからOpenOffice Calcを使ってxlsファイルを読み込む処理をしています. http://www.clubdelphi.com/trucos/index.php?id=428 ここを参考に作成しました. ClassID:=ProgIDToClassID('com.sun.star.ServiceManager'); h:=CoCreateInstance(ClassID, nil, CLSCTX_LOCAL_SERVER, IDispatch, id); とした時点で、soffice.bin/soffice.exeという2個のプロセスが生成されます. その後、読み込み処理を終了して、 ワークブックのクローズ、 objDocument.Close(True); を実行した時点で、 OpenOffice Caleは表示を終了し、画面からは消えます. しかし、最終的に TWorkbook.Destroyを実行しても、 soffice.bin/soffice.exeという2個のプロセスが消えません. CoCreateInstanceの後始末が必要なのかなと思って、 ServiceManager.Release; としたら、サポートしていないと例外が発生しました(objServiceManager := id;). なにか、OpenOfficeを終了させるというコマンドを投げないといけないのでしょうか (ExcelのOleFunction("Quit");の様な) ぐぐってみても、OpenOffice Basicで終了コマンドというようなものが見つかりませんでした. soffice.bin/soffice.exeという2個のプロセスが残らないようにする方法を教えてください. よろしくお願いします. >>380 終了させるには com.sun.star.frame.Desktop サービスから css.frame.XDesktop インターフェースの terminate メソッド 普通は最後のドキュメントを閉じれば終了するはずなんだけど・・・ >>381 ありがとうござます。 terminateでちゃんとsoffice.bin/soffice.exeが消えました。 access2003のファイルをBaseでは開くにはどういう操作をしたらいいのでしょう? ExcelファイルをCalcで開くみたいには簡単にいきません。 どなたか教えてください。 ここプログラミング掲示板のOpenOffice.orgマクロ言語に関するスレッドなので、 ビジネスソフト掲示板あたりのOpenOffice.orgに関する総合スレッドで質問なさったほうが 返答を得やすいと思います。 自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L 名言集 その4 『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』 http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ のID:PVAf+dux0 = 自動焼人 ★ > 965 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:02:09.35 ID:PVAf+dux0 > まぁ何だ。 > 俺の過去の経歴に比べたら、割れ厨なんて鼻くそレベルなんだけどなw > 100人規模の集団サイバーテロの主犯とか、いろいろとな。 ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください 自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L 名言集 その2 『お前が規制系キャップ取れるか審査してやるよ』 http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★ > 36 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:31:30.02 ID:PVAf+dux0 > >>33 > キャップとコテハンの違いは何? > 46 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:38:05.34 ID:PVAf+dux0 > >>45 > その回答では落ちるなw > 答えは教えないがw > 50 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:41:29.96 ID:PVAf+dux0 > Q.キャップとコテハンの違いは何? > A.2ちゃんねるのボランティアの登録制度 > それがお前の答えかw > 52 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:43:10.06 ID:PVAf+dux0 > まぁ、どうせ正解が出るわけもないし、次の問題。 > 君が思う面白いスレはどんなの? ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください 現在のcライクインタープリタなbasicと、 前世紀に栄えていたbasicとは、実は別言語である という説を唱えてみる OpenOfficeマクロプログラミング 宍戸輝光 工学社 09/10 \1,890 出たね。 昨日からbaseいじっております。以前も(2.0)触ってみましたが、挫折しました。 M社の2003サポート切れの心配やバージョン毎の購入にウンザリしており、今回は挫折したくありません。 オフィスソフト自体は自宅で必要ではないのに会社の為に自分も購入している方も多いと思います。 一企業が一企業のソフトに業務を依存しなくてはならない現状が非常に間違った方向だとも思いますし、、。 現在basicの書き場所がBASEでわからなく、、、探していて辿りつきました。 道は遠いですか? 残念ながらここは過疎っているので、ビジネスsoft板やソフトウェア板などの OpenOffice一般を扱うスレッドでマクロの質問等もなさると反応がいいと思います。 マクロを中心に扱った日本語書籍がやっと世に出た段階なのでこれからですね。 オプソは好きだが、M$オフィスの方がまだまだずっと出来がいい 「初心者向けの」プログラミング環境ってことなら、ドキュメントがろくに揃ってないことで却下だなあ。 無料ってことをウリにするなら、Visual Studio の Express Edition には適わないし .NET限定だけど、売りもののProfessional Editionへのステップアップも容易 「プログラミング環境」って? コード補完や文法ミスの指摘をしてくれるIDEがあるってこと? へぇ、知らんかった。ずいぶん進化したもんだね。 >>394 本屋でパラッと見たけどSDK関連の記載がなかったみたい。 つまり、これを参考にしても何も作れない。 ttp://hermione.s41.xrea.com/pukiwiki/ >>401 なんかリンクが貼ってあるばかりでイマイチつかみどころのない説明ばかりだな ここも役に立つよ。 ttp://blog.livedoor.jp/addinbox/ >>394 初心者がOooのBasicを始めるきっかけにするには良い本と思う。 ネットの情報は辞書的なページが多いので、簡単なチュートリアルがあるので助かった。 ダイアログの作り方とか。 ただ内容的にCalcに偏ってるし、標準関数とか全部記載していないので、 本に書いてあること以上のことをしようとするとネットに頼らざるを得ない。 どの言語の本でもそうだけど1冊だけで全て網羅するのは無理。 漏れ的には買って損はなかったよ。 >>407 pythonならdteよりwebの方に良い情報がころがってるんじゃまいか? OOo Basic で配列操作とか自前でやるの疲れるよな 次スレは「OpenOffice.org マクロ」とでもして、言語を問わずに。 次すれになるようにマクロ書くか Sub RepositioningBookmaks oDoc = ThisComponent oText = oDoc.getText() oBookmarks = oDoc.getBookmarks() For i = 0 to oBookmarks.getCount() - 1 step 1 oMark = oBookmarks.getByIndex(i) oAnchor = oMark.getAnchor() If Len(oAnchor.getString()) > 1 Then sName = oMark.getName() oStartRange = oAnchor.getStart() oNewMark = oDoc.createInstance("com.sun.star.text.Bookmark") oNewMark.setName(sName) oText.removeTextContent(oMark) oText.insertTextContent(oStartRange, oNewMark, False) End If Next End Sub ユーザー定義のツールバー探すもの Sub find_toolbar sUIName = "Test1" oFound = nothing oLM = ThisComponent.getCurrentController().getFrame().LayoutManager oElements = oLM.getElements() For i = 0 To UBound(oElements) step 1 oItem = oElements(i) If Mid(oItem.ResourceURL, 1, 40) = "private:resource/toolbar/custom_toolbar_" Then If oItem.getSettings(False).UIName = sUIName Then oFound = oItem Exit For End If End If Next If NOT IsNull(oFound) Then ' do something msgbox "found" End If End Sub 文字列検索ができません。 *や%は使えるんですか? >>415 l-416 乙。どんどん頼みます。勉強になります。感謝します。 規制が解除されたからまた埋めようかと思ったけど書くことが思いつかん Writerで文字の段落と挿入された画像のURLをテキストデータとして 出力する場合に文字の段落はプログラミングガイドにあるように supportsService("com.sun.star.text.Paragraph") で判断できるのですが、挿入された画像は supportsService("com.sun.star.text.TextGraphicObject") では判断できないのですが、使用法が違うのでしょうか? それともcom.sun.star.graphicかcom.sun.star.drawingを使うのでしょうか? あとハイパーリンクへのアクセスの仕方も良く分からない(T_T) ヒント等があればお願いします。 段落から Contents Enumeration すると画像に相当するもんが見つからないから・・・ 画像が埋め込みじゃなければ GraphicURL プロパティ >>423 どうもです。 画像は埋め込みでないので画像のURLの情報を得ようとすると Doc = ThisComponent OG = Doc.getGraphicObjects msgbox OG(0).GraphicURL で画像のURLの情報にアクセすることは分かるのですが、 Writerに記載した順序でテキストデータに出力する場合は、 EnumerationのWhileループではできなさそうですね(^^; APIのWikiは英語だしよく分からない(T_T ググるとカーソル位置に画像を挿入するサンプルコードは見つかるんですけどねぇ css.text.XTextRangeCompare インターフェース使って画像の Anchor と段落の位置関係は分かるけどな >>425 >css.text.XTextRangeCompare どうもです。調べてみます。 OpenOfficd.org3,2 起動時間がすごく短縮されている。 これは有り難い。 OracleによるSun買収でどうなるか心配していたけど、 今回は、まじめにやってくれたみたいね。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる