【StarSuite Basic/OpenOffice.org Basic】
■ このスレッドは過去ログ倉庫に格納されています
>>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買収でどうなるか心配していたけど、 今回は、まじめにやってくれたみたいね。 こんにちは、プログラミング未経験のものです。 株式投資で一銘柄の過去の株価データを使って色々な条件で 売買したらどのような結果になるかのプログラムをつくりたく、 ooo basic でもこのようなことができますでしょうか? 具体的には、一銘柄について 日付、株価(始値、高値、安値、終値)をデータとし 何年何日に何円で株を何単位買い、買値より10円高い売り注文 株価が10円下がるごとに買い増し、買値より10円高い売り注文 と、詳細は更に検討しています。 それで結果、どのような売買記録でどのぐらいの収益になるか の様なものです。 こんなこともできますでしょうか? データについては、オープンオフィスのCALCにインプット 済みです。 些細なことでも何でも構いませんので、アドバイスよろしく お願いいたします。 >>428 >>1 の参考になる主なリンクの情報だけでやりたい事を実現できます。 アドバイスをねだる前に過去ログを読んでください。 >>429 すいません、了解しました。 ありがとうございます。 オープンオフィスのCALCに以下の様なデータがあるとします。 1、指定した日で指定した株価で1000株買います。 (売買は全部1000株なので考慮必要なしとします) 買い注文は5円下がるごとに出している。 (何かの売りが成立するまで) 2、これを買った翌日以降の注文で売り注文(買値+5円)をだす。 買ったものは全て翌日以降買い値+5円で売り注文を出す。 売ったら売値−5円でまた買い注文を出す。買い注文は5円下がる ごとに出している。 この場合の取引結果を出すマクロはどのようになりますでしょうか。 日付 始値 高値 安値 終値 20010105 221 224 219 220 20010106 218 223 215 222 20010107 224 231 223 223 20010108 220 221 216 217 20010109 215 216 210 213 例、20010105に220円で買いとします。 ()は参考です。 結果 20010105 220円買い成立(20010106以降225円売り注文) 20010106 215円買い成立(20010107以降220円売り注文) 20010107 224円売り成立(買値215円分) 225円売り成立(買値220円分) (一番高い売値225円から5円安い220円で翌日以降買い注文、5円下 がるごとに買い注文もだしている) 20010108 220円買い成立(翌日以降225円売り注文) 20010109 215円買い成立(翌日以降225円売り注文) 210円買い成立(翌日以降225円売り注文) 初心者です。 マクロでcalcファイルを開くのにはどうしたらいいですか? 以下にふぁいるがあります。 C:\My Documents\学習\test.ods Sub hoge sURL = ConvertToURL("C:\My Documents\学習\test.ods") oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array()) End Sub >>434 プログラミング未経験で、色々調べてやっていたのですが 最初からつまずいてしまっていました。 どうもありがとうございます。 calcについて質問です。 マクロから日付を入力したいのですがどうすればよいのか分かりません。 Cell.String = "2010/03/11" とすると表示は「2010/03/11」ですが、数式入力ボックスでは「'2010/03/11」 になってしまい日付として認識してくれません。 教えてえろい人orz Cell.formula = "2010/3/11" Cell.numberformat = 36 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる