【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

他に追加情報があったら教えてください。
2006/10/17(火) 10:27:59
OpenOffice.org Calcをデータベースサーバーのクライアントソフトに
しようと思うんですが、どなたか一緒に情報探してくれる人いませんか。
2006/10/18(水) 09:31:21
>>8
すでにあるよ。
Fio
ttp://seiza.dip.jp/machine/fio/
10なしたか
垢版 |
2006/10/19(木) 08:53:11
はじめまして。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なしたか
垢版 |
2006/10/19(木) 08:54:18
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なしたか
垢版 |
2006/10/19(木) 11:57:59
自己レスです。上記の例で1箇所自分で間違いを発見しました。

Declare Function MyMessageBox Lib "test.dll" Alias "MyMessageBox" (str As String) As String

のように返礼値がString型であることを明示したので未知数が返ることが
なくなりました。このとき同様に「あ」という文字をdll側に渡すと「・」という
文字がbasic側のmessageboxで表示されます。「a」という文字をdll側に渡す
と「a」という文字がbasic側で表示されます。

どのようにしたら日本語を正しくbasic側に返礼させることができるのでしょうか?
2006/10/19(木) 14:02:49
MinGW環境ないんでBCC5.5で試してみた。
UTF-8Nを要求される状況でShift JISを返すから化けるような気がする。
その割に引数の文字列がDLL側で正しく表示されるのがよく分からんが。
MinGWならDLL側でiconv()とか使ってUTF-8Nエンコして返すのが一番早いんじゃないかね。
2006/10/19(木) 15:36:14
iconv.h拾ってきて試してみたが、やはりOOo側が認識してないような雰囲気が。
少なくともDLLに正しく文字列は渡ってるんだから、結果としてURIエンコードされるなら
iconv()なくても別に問題ない気がしてきた。
15なしたか
垢版 |
2006/10/19(木) 20:15:29
>>13,>>14
早速のレスありがとうございます。ご指摘のとおり今回は、URLエンコードをしたいだけ
なので日本語がbasic側で正しく表示される必要はありません。しかし、今後そのような
プログラムが必要になったときにやっぱり困りますよね。。。
ちなみに以下のサイトを参考にUNICODE対応DLLを作成に挑戦していますが、うまくいかないですね。
ttp://www.ruche-home.net/program/tips/tchar.php
16なしたか
垢版 |
2006/10/20(金) 10:45:01
#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なしたか
垢版 |
2006/10/20(金) 10:52:09
上のコードでいちおう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オブジェクトを取得する方法は
ありますでしょうか?
2006/10/20(金) 16:29:58
for each nextは他のループに置き換える。

WSHの配列オブジェクト・コレクションはCountで個数、Itemで要素を取得できる。
こっちはOOoとは関係ないのでWSHスレ等で聞くべきだ。
19デフォルトの名無しさん
垢版 |
2006/11/24(金) 13:36:41
OpenOffice.org CalcがExcel VBAをサポート
ttp://opentechpress.jp/developer/06/11/22/0059225.shtml
2006/11/25(土) 01:23:26
VBA がつかえる OpenOffice.org 2.0.2, Novell Edition には 日本語版もあるみたいよ
21デフォルトの名無しさん
垢版 |
2006/12/02(土) 00:11:53
>>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のファイルを開いてみたんだけど、なにも起こらないし、
コードも見えない。
2006/12/02(土) 10:21:30
>>21
Debian使いなら自力で使えるようにしていただきたいですな
2006/12/02(土) 10:22:27
捕捉
今の環境ではなく、別の環境で
2006/12/05(火) 01:11:51
>>22 Debianのパッケージをそのまんま入れれば
互換機能が使えるという意味かと思ったんですが。
Debian使いだからかえってアプリを入れたり消したり
するのも全部apt依存症で、なんにもできないんです。
2006/12/05(火) 09:00:34
>>24
なら、EtchのVMware Player用イメージでも使えばよろし
26デフォルトの名無しさん
垢版 |
2007/01/10(水) 00:30:32
これの本もほしいな
命令/関数を


全て


網羅したやつ。
使える関数、命令何もかも全てが載ってるやつが。
2007/02/19(月) 23:31:07
GFDLでね
2007/02/22(木) 20:34:34
OOo Basicってそこそこ使えると思うけど、このスレは過疎ってるね。
2007/02/22(木) 23:11:02
宣伝して宣伝して
2007/02/23(金) 12:46:42
取っ付き難いんだよね。なんか面白そうなサンプルないかな。
2007/03/24(土) 14:24:30
>>27
もっとマトモなライセンスはいくらでもあるだろうに…
32デフォルトの名無しさん
垢版 |
2007/04/19(木) 22:19:35
OOo Basic やろうぜ。
2007/04/22(日) 13:26:37
>>31
たとえば?CC?
34デフォルトの名無しさん
垢版 |
2007/04/30(月) 21:57:52
今日Basic使ってみたけど、VBAとあんまり変わらんね。
十分使える。
35デフォルトの名無しさん
垢版 |
2007/05/09(水) 20:24:34
なかなかナイスなマクロだと思うけどな。
よって、あげ。
36デフォルトの名無しさん
垢版 |
2007/05/21(月) 11:58:04
過疎age
2007/05/21(月) 12:55:52
Basicに限定したようなスレタイになっているのが過疎の原因かな
2007/06/19(火) 22:26:17
vbaで言うところのCollectionに相当するものってあるんでしょうか?
2007/06/23(土) 19:32:22
コードを記述するとき、VBAみたいに勝手に大文字になってくれないのですか?
2007/06/27(水) 01:48:03
>>39
それは言語仕様とは関係ないんじゃないすかね?
逆にその挙動は気持ち悪い。
2007/06/27(水) 13:47:12
始めたんだが もう挫折した orz
何かいい本ないですか
サンプルが一杯載ったのがあればいいんだが
初心者なんで取り敢えず動くコ-ドをイジって覚えようかと

本屋に昼に行ってみたけどVBばっかりだった。
2007/06/27(水) 14:13:01
逆に考えるだ。今いろんなものを作って企画を持ち込めば、本を出せると考えるんだ。
43デフォルトの名無しさん
垢版 |
2007/06/27(水) 18:57:35
>>41
公式ガイドブックの公開版pdfがあると思います。
Chapter9でマクロの解説があるので参考になるかも知れません。
4441
垢版 |
2007/06/27(水) 19:24:09
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 プログラマ向けガイド

この辺りのやつでいいのかなあ
とりあえず読んで見ます。

廻りに聞く人居ないので、初心者はつまると、お手上げです。
2007/06/27(水) 19:58:13
>>44
http://ooosupport.good-day.net/ja/documents/manual/
2007/06/27(水) 20:39:59
ありがとう
2007/06/28(木) 09:17:29
>>46
日本語の掲示板なら
OOo Basic Wiki
http://hermione.s41.xrea.com/pukiwiki/
OOo Q&A
http://oooug.jp/faq/
ここにもいくつかサンプルあり

海外の良書は以下から
http://www.pitonyak.org/oo.php
2007/06/30(土) 13:45:08
>>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デフォルトの名無しさん
垢版 |
2007/07/18(水) 20:49:01
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デフォルトの名無しさん
垢版 |
2007/07/19(木) 19:08:48
ググっててOOoBasicで書かれたらしいOOoBasicのデバッカを見つけた。
2.0のほうにはjaとあるから日本語対応?

ttp://www.nichoume.com/ooo/dev/OOoBasicDebugger/2.0/
ttp://www.nichoume.com/ooo/dev/OOoBasicDebugger/2.3/

注)信用できるサイトか分からないんでダウンロードには注意してね。
2007/07/20(金) 07:50:33
>>50
一応、信用できると思う。
日本人の開発者の個人サイトだから。
52デフォルトの名無しさん
垢版 |
2007/07/20(金) 08:08:15
チューバッカ



厨房ばかりであるさま。
53デフォルトの名無しさん
垢版 |
2007/07/22(日) 21:40:53
http://www.ooomacros.org

ここって有名サイトらしいのですが、ここではまだ紹介されていないみたいですね。
http://www.ooomacros.org/user.php にあるCalc Macro Recorderというマクロが
便利そうで興味があるんですが、ちょっと恐くてダウンロードできない。orz
54デフォルトの名無しさん
垢版 |
2007/09/17(月) 09:36:10
VB.NETでCalcのファイルを開き、データを取得することができますか?
55デフォルトの名無しさん
垢版 |
2007/10/05(金) 23:30:04
>>48
とても参考になった。

56デフォルトの名無しさん
垢版 |
2007/10/08(月) 23:15:15
誰もいねえのか?

57デフォルトの名無しさん
垢版 |
2007/10/09(火) 19:16:17
過疎っているねアゲ
58デフォルトの名無しさん
垢版 |
2007/10/09(火) 21:23:22
getcellbypotionとか長ったらしいコマンドは止めてくれー!!
普通にCellでいいじゃんか。

59デフォルトの名無しさん
垢版 |
2007/10/10(水) 20:11:36
確かにそうだよな
2007/10/12(金) 10:43:13
>>58
飲料(potion)を使って細胞(cell)を取得(get)するのか?
61デフォルトの名無しさん
垢版 |
2007/10/12(金) 13:29:39
>>60 そういうツッコミ方で来ましたかw
たぶんgetCellByPositionの間違いだろね。
62デフォルトの名無しさん
垢版 |
2007/10/16(火) 20:15:21
VBAと完全に互換性をもってほしい。




2007/10/16(火) 20:19:30
>>62
それは無理じゃね?
MSさんが許さんぜよ
64デフォルトの名無しさん
垢版 |
2007/10/17(水) 01:17:35
そこを何とか。

2007/10/17(水) 06:52:37
MSと契約したNovellが頑張ってるよ
2007/10/17(水) 16:25:09
VBAのほうで互換性もたせりゃよかんべよ
67デフォルトの名無しさん
垢版 |
2007/10/17(水) 16:33:27
OOo Basicは習得が難しい。VBAのほうが簡単。
68デフォルトの名無しさん
垢版 |
2007/10/17(水) 22:29:45
OOo Basicは難しくないけど、処理速度が遅すぎる。
ループを回してみると分かるんだけど、どうも条件分岐がトロイみたい。
69デフォルトの名無しさん
垢版 |
2007/10/24(水) 19:47:07
つーか、全体的にもっさりなんだよなOpenOfficeって。
70デフォルトの名無しさん
垢版 |
2007/10/26(金) 00:58:59
もっさりだけならいいが、バグ多すぎ。

2007/10/26(金) 01:42:33
CalcでMSXMLで保存→Calcで開くとすごい事にw
2007/10/26(金) 16:16:12
俺用メモ:
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デフォルトの名無しさん
垢版 |
2007/10/27(土) 15:44:48
OpenOffice.orgとStarSuite8はどっちがいいのですか?
操作性、PCへの負担、機能性、相互性、現状とこれからの発展など含めて軽く解説をお願いします。

良い方を入れます。
※MSのワード、エクセル、パワーポイントは基本的に使えますし、比較的よく使います。
新しく自作したPCに入れるものを考えています。
2007/10/27(土) 16:06:46
>>73
ソフトウェア板に行って基礎から教えてもらうと良いよ。
StarSuite は OpenOffice.org を元にしたパッケージ版だから
両方使えるなら StarSuite にしときな。
75デフォルトの名無しさん
垢版 |
2007/10/28(日) 14:44:10
StarSuite8は色んなフォントが入ってるよな。

76デフォルトの名無しさん
垢版 |
2007/10/30(火) 22:25:02
マンセー!!!!!!



77デフォルトの名無しさん
垢版 |
2007/11/02(金) 17:03:25
???
78デフォルトの名無しさん
垢版 |
2007/11/03(土) 15:37:05
ひゃあああああ
79デフォルトの名無しさん
垢版 |
2007/11/04(日) 20:35:17
VBAをOpenOfficeに変換したいけど、OpenOffice.org は触ったこと
がありません。
『Convert Excel VBA to OpenOffice Basic』というサイトを
見つけたけど、誰か使ったことありますか?

ttp://www.business-spreadsheets.com/vba2oo.asp

他にVBAを返還するフリーツールってあるんでしょうか?
100%完璧でなくても使ってみたいのですが・・・
80デフォルトの名無しさん
垢版 |
2007/11/04(日) 21:29:17
OpenOffice Basicは処理速度が相当遅いよ。
場合によってはVBAの10倍以上時間がかかるときもある。
一生懸命使ってみたけど、ストレスがたまる。

2007/11/04(日) 23:22:30
>>79
> 『Convert Excel VBA to OpenOffice Basic』というサイトを
> 見つけたけど、

あんたは偉い!
82デフォルトの名無しさん
垢版 |
2007/11/05(月) 00:30:53
>>81
実際、どれ位使い物になるか知りたいんですよ。
もっとも来週(訳あって火曜日以降)、会社で試してみるけどね。
うまく動くといいけど、もぐら叩きのデバッグかも。
2007/11/25(日) 20:56:46
いらん
84デフォルトの名無しさん
垢版 |
2007/11/26(月) 16:15:02
いる
85デフォルトの名無しさん
垢版 |
2007/11/30(金) 14:16:06
OpenOfficeはショボすぎ。









2007/11/30(金) 22:53:41
まあ >>85 が使ってる様な一部の機能は無いかもしれんが、
普通の用途では十分だよ
87デフォルトの名無しさん
垢版 |
2007/12/01(土) 20:15:30
マクロの処理速度がおせーわ。
もっとキビキビ動かないと。


2007/12/01(土) 23:21:28
>>87
うpしてみ
89デフォルトの名無しさん
垢版 |
2007/12/06(木) 22:56:21
アップするまでもなく、適当にループ回してセルに何か書き込んでみ。
余りの遅さに気が遠くなるから。


90デフォルトの名無しさん
垢版 |
2007/12/07(金) 01:30:59
MS-ExcelのVBAも動作遅いよ。ユーザーフォームのコントロールから
アクティブなセルを一セルずつ移動させるだけで遅延が生じて重い。
91デフォルトの名無しさん
垢版 |
2007/12/11(火) 15:01:34
だから、どっちも遅いんだけど、OOo Basicが極端に遅いってことだ。
場合によってはVBAの10倍くらい遅い。

2007/12/11(火) 21:39:41
Python は何をやるにも C の 100 倍くらい遅いけど、
最近では C と同じところでも使われているよ。
何かしらメリットがあればデメリットは覆い隠せる。
93デフォルトの名無しさん
垢版 |
2007/12/11(火) 23:16:14
あんたアホだな。
PythonとCは基本的に用途が異なる言語だろ。
遅いとか早いの問題じゃない。
VBAとOOo Basicは用途が同じ。
それで速度が10倍違えば使えない。
2007/12/11(火) 23:19:21
だから、同じ用途で使われていてメリットがあればデメリットを覆い隠せると
せっかく書いたのに読めなかったのかな? 他人の話は聞かない主義の人?
95デフォルトの名無しさん
垢版 |
2007/12/11(火) 23:38:10
じゃあ、OOo Basicのメリットを言ってみな。
『タダ』以外で。
2007/12/11(火) 23:46:15
>>95
>『タダ』以外で。

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

ペイントツールとデータベースが付いてるのも良いね。
しかも『タダ』で。
98デフォルトの名無しさん
垢版 |
2007/12/12(水) 00:17:32
たかが数万円のMS-Officeけちって
10倍も処理に時間を食われれば、『タダ』など何の意味もない。
魅力を感じるのはキモヲタニートの君だけだよwww
2007/12/12(水) 00:24:27
キモヲタニートくらいしか言う事が無いなら、わざわざ出てこなくて良いのに。
何かまともな反論を思いついたらいつでも書き込んでくれ。
2007/12/12(水) 11:02:06
たかがマクロの速度ごときのために、タダで手に入るものの代替物に金を出したくないんだが。
101デフォルトの名無しさん
垢版 |
2007/12/12(水) 11:09:16
発想が貧乏人だなwwww
好きにしたまえ。


2007/12/12(水) 12:36:08
www
2007/12/12(水) 13:06:00
>>91
> 場合によってはVBAの10倍くらい遅い。

そうか? 俺はそうは思えないけどなあ。そういう実感はない。
2007/12/12(水) 13:12:28
>>97
それのみならず、OOoのばあいは、べつにBasicにこだわらなくても、
C/C++でもJavaでもPythonでもコードを書けるわけだしな。
105デフォルトの名無しさん
垢版 |
2007/12/12(水) 16:02:32
C/C++でもJavaでもPythonでもコードを書けないヤツほどそういうこと言うんだよwww


2007/12/12(水) 17:38:47
>>104
>それのみならず、OOoのばあいは、べつにBasicにこだわらなくても、
おいおいw

>>105
今は開発環境がタダで楽に作れる時代。
おまけ言語(VBA,OOo Basic)でもそもそする方が終わってる
実際VBAなんてVB厨位しか触らないだろ?
2007/12/12(水) 17:41:34
ふむ、つまりEmacsLispも秀丸マクロだかなんだかも、みーんな終わっていると。
# 恐らくはスクリプト言語の便利さを理解できないGUIユーザなんだろうなぁ。
2007/12/12(水) 17:57:17
>>107
なんでScript言語やGUIがいきなり出てくんの?w
別に職業マじゃない趣味グラマさんがどうしようが構わないよ

実務でEmacsLispや秀丸マクロの実装ってどんだけだよw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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