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
他に追加情報があったら教えてください。
探検
【StarSuite Basic/OpenOffice.org Basic】
■ このスレッドは過去ログ倉庫に格納されています
2006/10/06(金) 20:04:48
2nat
2006/10/06(金) 20:10:10 2get
2006/10/08(日) 19:00:32
リンク付け足し。ここは参考になります。
Developers Guide
http://openoffice-docj.sourceforge.jp/tr/translated/developerguide.html
Developers Guide
http://openoffice-docj.sourceforge.jp/tr/translated/developerguide.html
2006/10/09(月) 23:49:11
2006/10/10(火) 00:03:12
developerguide がwebで読めるのか。これは助かるな。
ZIPアーカイブされたのをローカルに保存しておく手間が省ける。
ZIPアーカイブされたのをローカルに保存しておく手間が省ける。
2006/10/10(火) 19:38:11
初歩的な質問でごめんなさい。
ExcelのVBAでは
Worksheets("シート名").Activate
と書くところを、OOo Basicの場合ではどう書けばいいんでしょうか?
ExcelのVBAでは
Worksheets("シート名").Activate
と書くところを、OOo Basicの場合ではどう書けばいいんでしょうか?
7ハンカチ仮面
2006/10/10(火) 20:24:012006/10/17(火) 10:27:59
OpenOffice.org Calcをデータベースサーバーのクライアントソフトに
しようと思うんですが、どなたか一緒に情報探してくれる人いませんか。
しようと思うんですが、どなたか一緒に情報探してくれる人いませんか。
2006/10/18(水) 09:31:21
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 ***
ムを作成して おります。勉強もかねて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
//-----------------
#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側に返礼させることができるのでしょうか?
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エンコして返すのが一番早いんじゃないかね。
UTF-8Nを要求される状況でShift JISを返すから化けるような気がする。
その割に引数の文字列がDLL側で正しく表示されるのがよく分からんが。
MinGWならDLL側でiconv()とか使ってUTF-8Nエンコして返すのが一番早いんじゃないかね。
2006/10/19(木) 15:36:14
iconv.h拾ってきて試してみたが、やはりOOo側が認識してないような雰囲気が。
少なくともDLLに正しく文字列は渡ってるんだから、結果としてURIエンコードされるなら
iconv()なくても別に問題ない気がしてきた。
少なくともDLLに正しく文字列は渡ってるんだから、結果としてURIエンコードされるなら
iconv()なくても別に問題ない気がしてきた。
15なしたか
2006/10/19(木) 20:15:2916なしたか
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;
}
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オブジェクトを取得する方法は
ありますでしょうか?
つづけざまに質問なのですが、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スレ等で聞くべきだ。
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
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のファイルを開いてみたんだけど、なにも起こらないし、
コードも見えない。
>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使いなら自力で使えるようにしていただきたいですな
Debian使いなら自力で使えるようにしていただきたいですな
2006/12/02(土) 10:22:27
捕捉
今の環境ではなく、別の環境で
今の環境ではなく、別の環境で
2006/12/05(火) 01:11:51
>>22 Debianのパッケージをそのまんま入れれば
互換機能が使えるという意味かと思ったんですが。
Debian使いだからかえってアプリを入れたり消したり
するのも全部apt依存症で、なんにもできないんです。
互換機能が使えるという意味かと思ったんですが。
Debian使いだからかえってアプリを入れたり消したり
するのも全部apt依存症で、なんにもできないんです。
2006/12/05(火) 09:00:34
>>24
なら、EtchのVMware Player用イメージでも使えばよろし
なら、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?
たとえば?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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 [少考さん★]
- 【日本人の旅行離れ】国内旅行すら行けなくなった……オーバーツーリズムだけじゃない 旅行者減少の異常事態 ★2 [ぐれ★]
- “ひとり焼肉”でおなじみ「焼肉ライク」が閉店ラッシュ。なぜ「コスパが悪い」と言われてしまうのか [Gecko★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- なぜ安っぽく見えてしまうのか…? ダウンジャケット姿が垢抜けない人の"意外な盲点" (ビジネスマンのためのスタイリスト) [少考さん★]
- 【日中】経団連会長、1月の北京訪問に暗雲 中国は受け入れ是非明らかにせず 関係「政冷経冷」に [煮卵★]
- 「SCORE」←これなんて読むんや?🙋🏡
- 【高市朗報】鈴木大臣「嫌儲のデマに騙されないで。お米券の使い勝手は悪くない。卵味噌醤油も買えます。現金と変わりません」 [517459952]
- iPhone高騰する説、デマだった!ハードからOSまで全てAppleが作るからメモリも自給自足、iOSはメモリ少なくて良いから128MBぐらいでOK [749674962]
- 🏡おい!返事しろ︎︎!知的障害者!
- 【悲報】ワンピースの尾田栄一郎の描く女が気持ち悪過ぎると大炎上中wwwwwwwwwwwwwwwwwwww [802034645]
- 【悲報】東京40代「生活苦しい!戸建てなんて絶対無理…」地方20代「家と車買って子供できた~今日は家族でモールで買い物」 [732289945]
