1read 100read
2012年1月2期プログラム22: 【StarSuite Basic/OpenOffice.org Basic】 (461) TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
23: 【GNU】スクリプト言語 Guile【scheme】 (100)
24: 【アンチ】関数型言語は使えない【玩具】 (684)
25: こんなライブラリは嫌だ! (81)
27: VB.NET質問スレ(Part38) (172)

【StarSuite Basic/OpenOffice.org Basic】


1 :06/10/06 〜 最終レス :12/01/26
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
他に追加情報があったら教えてください。

2 :
2get

3 :
リンク付け足し。ここは参考になります。
Developers Guide
http://openoffice-docj.sourceforge.jp/tr/translated/developerguide.html

4 :
> http://openoffice-docj.sourceforge.jp/tr/translated/developerguide.html
utf-16って、ほとんど嫌がらせだな

5 :
developerguide がwebで読めるのか。これは助かるな。
ZIPアーカイブされたのをローカルに保存しておく手間が省ける。

6 :
初歩的な質問でごめんなさい。
ExcelのVBAでは
Worksheets("シート名").Activate
と書くところを、OOo Basicの場合ではどう書けばいいんでしょうか?

7 :
>>6
StarBasicでは
ActiveWindow.JumpToTable(1)
だと思います。(1)は左から何番目の表かを表します。

8 :
OpenOffice.org Calcをデータベースサーバーのクライアントソフトに
しようと思うんですが、どなたか一緒に情報探してくれる人いませんか。

9 :
>>8
すでにあるよ。
Fio
ttp://seiza.dip.jp/machine/fio/

10 :
はじめまして。Basicでの質問をさせていただきます。 現在Calcで使用するためのURLエンコーディングプログラ
ムを作成して おります。勉強もかねてC言語によるDLLを作成・利用しエンコーディング 結果を取得しようと考えています。
そこで、まずはテストということでDLLに文字列を渡し、その結果をbasic で表示するプログラムを作成しようとしております。プログラムは以下
のとおりです。
REM ***** BASIC *****
Declare Function MyMessageBox Lib "test.dll" Alias "MyMessageBox" (str As String)
Sub MessageBoxStrTest()
  Dim s1 as String
  Dim s2 as String
  s1="あ"
  s2=MyMessageBox(s1)
  msgbox(s2)
End Sub
REM *** BASIC END HEAR ***

11 :
Cプログラムは以下のとおりです。
//-----------------
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include"test.h"
const char* __stdcall MyMessageBox(const char* str){
   MessageBox(0,str,"Title",0);
   return str;
}
//-------ここまで--------
ちなみにwindowsに最初から提供されているMessageBox()関数ではちゃんと 「あ」という文字が表示されます。
basicに返戻したあとでは文字列が 「-4424」のように表示されてしまいます。開発環境は以下のとおりです。
OS :WindowsXP Professional SP2
開発言語 :gcc(MinGW)
OpenOffice:OpenOffice.org2.0.3

12 :
自己レスです。上記の例で1箇所自分で間違いを発見しました。
Declare Function MyMessageBox Lib "test.dll" Alias "MyMessageBox" (str As String) As String
のように返礼値がString型であることを明示したので未知数が返ることが
なくなりました。このとき同様に「あ」という文字をdll側に渡すと「・」という
文字がbasic側のmessageboxで表示されます。「a」という文字をdll側に渡す
と「a」という文字がbasic側で表示されます。
どのようにしたら日本語を正しくbasic側に返礼させることができるのでしょうか?

13 :
MinGW環境ないんでBCC5.5で試してみた。
UTF-8Nを要求される状況でShift JISを返すから化けるような気がする。
その割に引数の文字列がDLL側で正しく表示されるのがよく分からんが。
MinGWならDLL側でiconv()とか使ってUTF-8Nエンコして返すのが一番早いんじゃないかね。

14 :
iconv.h拾ってきて試してみたが、やはりOOo側が認識してないような雰囲気が。
少なくともDLLに正しく文字列は渡ってるんだから、結果としてURIエンコードされるなら
iconv()なくても別に問題ない気がしてきた。

15 :
>>13,>>14
早速のレスありがとうございます。ご指摘のとおり今回は、URLエンコードをしたいだけ
なので日本語がbasic側で正しく表示される必要はありません。しかし、今後そのような
プログラムが必要になったときにやっぱり困りますよね。。。
ちなみに以下のサイトを参考にUNICODE対応DLLを作成に挑戦していますが、うまくいかないですね。
ttp://www.ruche-home.net/program/tips/tchar.php

16 :
#include "urlEnc.h"
char* urlEncode(const char* str){
   int i=0;/** strの何番地をみているかを覚えるため **/
   int x=0;/** カウンタ **/
   int pos=0;/** tmpUrlが何文字入力しているかを覚えるため **/
      char *tmpUrl = (char *)calloc(512,sizeof(char));
      unsigned char *tmp = (char *)calloc(2,sizeof(char));
      unsigned char *tmp1 = (char *)calloc(2,sizeof(char));
      unsigned char *tmp2 = (char *)calloc(6,sizeof(char));
      while(TRUE){
         if( str[i] == 0x00 ){break;}
         if( (str[i] & 10000000) == 10000000 ){
            tmp[0]=(unsigned char)str[i];
            tmp[1]=(unsigned char)str[i+1];
            sprintf(tmp2,"%%%X%%%X",tmp[0],tmp[1]);
            for(x=0;x<6;x++){
               tmpUrl[pos++] = tmp2[x];
            }
            i++;
         }else{/** 単なるアスキーコードの場合 **/
            tmp[0]=(unsigned char)str[i];
            sprintf(tmp1,"%X",tmp[0]);
            for(x=0;x<2;x++){
               tmpUrl[pos++] = tmp1[x];
            }
         }
         i++;
      }
      return tmpUrl;
}

17 :
上のコードでいちおうURLエンコードを行えました。汚いプログラムですが使いたい方がいたらどうぞ。
つづけざまに質問なのですが、VBAを使用していたときには現在開いているIEオブジェクトを以下のように捕らえていました。
  WinExist = False
  Set ObjShell = CreateObject("Shell.Application")
  For Each ObjWindow In ObjShell.Windows
    If Not InStr(1, ObjWindow.document.Title, "サーバが見つかりません") Then
      WinExist = True
      Set IE = ObjWindow
    End If
  Next
  Set ObjShell = Nothing
  If WinExist = False Then
    Set IE = CreateObject("InternetExplorer.Application")
  End If
これをそのままbasicで実行してみてもbasicにはFor Each ... in ... という構文がないようで
うまく動作しませんでした。これに変わる方法で現在開いているIEオブジェクトを取得する方法は
ありますでしょうか?

18 :
for each nextは他のループに置き換える。
WSHの配列オブジェクト・コレクションはCountで個数、Itemで要素を取得できる。
こっちはOOoとは関係ないのでWSHスレ等で聞くべきだ。

19 :
OpenOffice.org CalcがExcel VBAをサポート
ttp://opentechpress.jp/developer/06/11/22/0059225.shtml

20 :
VBA がつかえる OpenOffice.org 2.0.2, Novell Edition には 日本語版もあるみたいよ

21 :
>>19
>Ark
>Debian
>DroplineGNOME
>Frugalware
>Gentoo
>Mandriva
>QiLinux
>Red Hat (FC6)
>Ubuntu
>SUSEおよびSUSE SLED
これらのLinuxディストリビューションのOpenOffice.orgにVBA互換機能が搭載
されていると書いてあったんで、自分はDebianユーザーだからVBA互換機能が
使えるかなと期待したんだけど、どうやら自分が入れたOOo2.0.2にはVBAの
互換機能が搭載されていないみたいだ。ガクリ
VBAコードを含むExcelのファイルを開いてみたんだけど、なにも起こらないし、
コードも見えない。

22 :
>>21
Debian使いなら自力で使えるようにしていただきたいですな

23 :
捕捉
今の環境ではなく、別の環境で

24 :
>>22 Debianのパッケージをそのまんま入れれば
互換機能が使えるという意味かと思ったんですが。
Debian使いだからかえってアプリを入れたり消したり
するのも全部apt依存症で、なんにもできないんです。

25 :
>>24
なら、EtchのVMware Player用イメージでも使えばよろし

26 :
これの本もほしいな
命令/関数を
全て
網羅したやつ。
使える関数、命令何もかも全てが載ってるやつが。

27 :
GFDLでね

28 :
OOo Basicってそこそこ使えると思うけど、このスレは過疎ってるね。

29 :
宣伝して宣伝して

30 :
取っ付き難いんだよね。なんか面白そうなサンプルないかな。

31 :
>>27
もっとマトモなライセンスはいくらでもあるだろうに…

32 :
OOo Basic やろうぜ。

33 :
>>31
たとえば?CC?

34 :
今日Basic使ってみたけど、VBAとあんまり変わらんね。
十分使える。

35 :
なかなかナイスなマクロだと思うけどな。
よって、あげ。

36 :
過疎age

37 :
Basicに限定したようなスレタイになっているのが過疎の原因かな

38 :
vbaで言うところのCollectionに相当するものってあるんでしょうか?

39 :
コードを記述するとき、VBAみたいに勝手に大文字になってくれないのですか?

40 :
>>39
それは言語仕様とは関係ないんじゃないすかね?
逆にその挙動は気持ち悪い。

41 :
始めたんだが もう挫折した orz
何かいい本ないですか
サンプルが一杯載ったのがあればいいんだが
初心者なんで取り敢えず動くコ-ドをイジって覚えようかと
本屋に昼に行ってみたけどVBばっかりだった。

42 :
逆に考えるだ。今いろんなものを作って企画を持ち込めば、本を出せると考えるんだ。

43 :
>>41
公式ガイドブックの公開版pdfがあると思います。
Chapter9でマクロの解説があるので参考になるかも知れません。

44 :
OpenOffice.org 1.1 Developer's Guide
StarOfficeTM 6.0 Office Suite Basic Programmer's Guide
OpenOffice.org Basicプログラミング Calc
StarSuiteTM 7 Office Suite Basic プログラマ向けガイド
この辺りのやつでいいのかなあ
とりあえず読んで見ます。
廻りに聞く人居ないので、初心者はつまると、お手上げです。

45 :
>>44
http://ooosupport.good-day.net/ja/documents/manual/

46 :
ありがとう

47 :
>>46
日本語の掲示板なら
OOo Basic Wiki
http://hermione.s41.xrea.com/pukiwiki/
OOo Q&A
http://oooug.jp/faq/
ここにもいくつかサンプルあり
海外の良書は以下から
http://www.pitonyak.org/oo.php

48 :
>>6
Sub Hyou3Active
Dim oDocument As Object
Dim oSheet As Object
Dim oCController As Object

oDocument = ThisComponent
oSheet = oDocument.Sheets
oCController = oDocument.CurrentController

oCController.ActiveSheet = oSheet.getByName("表3")
End Sub

49 :
ttp://docs.sun.com/app/docs/doc/819-1332?l=ja&a=load
ttp://docs.sun.com/app/docs/doc/819-1324?l=ja&a=load
starsuiteのが使えるね

50 :
ググっててOOoBasicで書かれたらしいOOoBasicのデバッカを見つけた。
2.0のほうにはjaとあるから日本語対応?
ttp://www.nichoume.com/ooo/dev/OOoBasicDebugger/2.0/
ttp://www.nichoume.com/ooo/dev/OOoBasicDebugger/2.3/
注)信用できるサイトか分からないんでダウンロードには注意してね。

51 :
>>50
一応、信用できると思う。
日本人の開発者の個人サイトだから。

52 :
チューバッカ
厨房ばかりであるさま。

53 :
http://www.ooomacros.org
ここって有名サイトらしいのですが、ここではまだ紹介されていないみたいですね。
http://www.ooomacros.org/user.php にあるCalc Macro Recorderというマクロが
便利そうで興味があるんですが、ちょっと恐くてダウンロードできない。orz

54 :
VB.NETでCalcのファイルを開き、データを取得することができますか?

55 :
>>48
とても参考になった。

56 :
誰もいねえのか?

57 :
過疎っているねアゲ

58 :
getcellbypotionとか長ったらしいコマンドは止めてくれー!!
普通にCellでいいじゃんか。

59 :
確かにそうだよな

60 :
>>58
飲料(potion)を使って細胞(cell)を取得(get)するのか?

61 :
>>60 そういうツッコミ方で来ましたかw
たぶんgetCellByPositionの間違いだろね。

62 :
VBAと完全に互換性をもってほしい。

63 :
>>62
それは無理じゃね?
MSさんが許さんぜよ

64 :
そこを何とか。

65 :
MSと契約したNovellが頑張ってるよ

66 :
VBAのほうで互換性もたせりゃよかんべよ

67 :
OOo Basicは習得が難しい。VBAのほうが簡単。

68 :
OOo Basicは難しくないけど、処理速度が遅すぎる。
ループを回してみると分かるんだけど、どうも条件分岐がトロイみたい。

69 :
つーか、全体的にもっさりなんだよなOpenOfficeって。

70 :
もっさりだけならいいが、バグ多すぎ。

71 :
CalcでMSXMLで保存→Calcで開くとすごい事にw

72 :
俺用メモ:
javavendors.xml
 <vendorInfos>
  </vendor>
   <vendor name="BEA Systems, Inc.">
     <minVersion>1.4.1</minVersion>
   </vendor>
 </vendorInfos>
 <plugins>
  <library vendor="BEA Systems, Inc.">sunjavaplugin.dll</library>
 </plugins>

73 :
OpenOffice.orgとStarSuite8はどっちがいいのですか?
操作性、PCへの負担、機能性、相互性、現状とこれからの発展など含めて軽く解説をお願いします。
良い方を入れます。
※MSのワード、エクセル、パワーポイントは基本的に使えますし、比較的よく使います。
新しく自作したPCに入れるものを考えています。

74 :
>>73
ソフトウェア板に行って基礎から教えてもらうと良いよ。
StarSuite は OpenOffice.org を元にしたパッケージ版だから
両方使えるなら StarSuite にしときな。

75 :
StarSuite8は色んなフォントが入ってるよな。

76 :
マンセー!!!!!!

77 :
???

78 :
ひゃあああああ

79 :
VBAをOpenOfficeに変換したいけど、OpenOffice.org は触ったこと
がありません。
『Convert Excel VBA to OpenOffice Basic』というサイトを
見つけたけど、誰か使ったことありますか?
ttp://www.business-spreadsheets.com/vba2oo.asp
他にVBAを返還するフリーツールってあるんでしょうか?
100%完璧でなくても使ってみたいのですが・・・

80 :
OpenOffice Basicは処理速度が相当遅いよ。
場合によってはVBAの10倍以上時間がかかるときもある。
一生懸命使ってみたけど、ストレスがたまる。

81 :
>>79
> 『Convert Excel VBA to OpenOffice Basic』というサイトを
> 見つけたけど、
あんたは偉い!

82 :
>>81
実際、どれ位使い物になるか知りたいんですよ。
もっとも来週(訳あって火曜日以降)、会社で試してみるけどね。
うまく動くといいけど、もぐら叩きのデバッグかも。

83 :
いらん

84 :
いる

85 :
OpenOfficeはショボすぎ。

86 :
まあ >>85 が使ってる様な一部の機能は無いかもしれんが、
普通の用途では十分だよ

87 :
マクロの処理速度がおせーわ。
もっとキビキビ動かないと。

88 :
>>87
うpしてみ

89 :
アップするまでもなく、適当にループ回してセルに何か書き込んでみ。
余りの遅さに気が遠くなるから。

90 :
MS-ExcelのVBAも動作遅いよ。ユーザーフォームのコントロールから
アクティブなセルを一セルずつ移動させるだけで遅延が生じて重い。

91 :
だから、どっちも遅いんだけど、OOo Basicが極端に遅いってことだ。
場合によってはVBAの10倍くらい遅い。

92 :
Python は何をやるにも C の 100 倍くらい遅いけど、
最近では C と同じところでも使われているよ。
何かしらメリットがあればデメリットは覆い隠せる。

93 :
あんたアホだな。
PythonとCは基本的に用途が異なる言語だろ。
遅いとか早いの問題じゃない。
VBAとOOo Basicは用途が同じ。
それで速度が10倍違えば使えない。

94 :
だから、同じ用途で使われていてメリットがあればデメリットを覆い隠せると
せっかく書いたのに読めなかったのかな? 他人の話は聞かない主義の人?

95 :
じゃあ、OOo Basicのメリットを言ってみな。
『タダ』以外で。

96 :
>>95
>『タダ』以外で。
わざわざアホなハードル設けてご苦労なこった。
君も気付いた通り『タダ』なのがメリットだよ。
自分で使うのが無料なだけでなく、家族や友達に
使わせるのも無料だし、PC を複数使い分けていて
全部の PC にインストールしても無料。業務
システムに組み込むのも無料だし、再販しても
ライセンス料は取られない。アップグレードも
無料だし、アップグレードしない自由もある。
インストールするのも自由だし、ソースを書き
換えるのも自由。そう、自由なのも大きな
メリットだね。あとオープン。単にソースコードが
オープンなだけでなく、ファイルフォーマットも
オープンなら、設計者の議論もオープンに公開
されている。それ以外に何か説明が必要かな?

97 :
あとクロスプラットフォームなのもメリットだね。
Mac のネイティブ版の開発も進んでいるし。
ちょっと古い OS でもビルド出来る。
ペイントツールとデータベースが付いてるのも良いね。
しかも『タダ』で。

98 :
たかが数万円のMS-Officeけちって
10倍も処理に時間を食われれば、『タダ』など何の意味もない。
魅力を感じるのはキモヲタニートの君だけだよwww

99 :
キモヲタニートくらいしか言う事が無いなら、わざわざ出てこなくて良いのに。
何かまともな反論を思いついたらいつでも書き込んでくれ。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
23: 【GNU】スクリプト言語 Guile【scheme】 (100)
24: 【アンチ】関数型言語は使えない【玩具】 (684)
25: こんなライブラリは嫌だ! (81)
27: VB.NET質問スレ(Part38) (172)