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 には 日本語版もあるみたいよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- サウナ夫婦死亡 非常ボタンの通報装置の電源入っておらず オーナー「今まで電源入れたことない」★2 [夜のけいちゃん★]
- 日中関係改善は「下手をすると10年かかる」 トランプを全面信頼できない高市官邸の苦悩★5 [ぐれ★]
- 【高市首相】「日本人が日本各地を旅行するのも大切」 中国からの渡航自粛巡り [ぐれ★]
- 【野球】WBC、録画放送含め地上波中継なし (ネットフリックス) ★3 [阿弥陀ヶ峰★]
- ファミマ「遊べるコンビニ」へ ゲーム機を5000店舗に設置方針 IP強化 [七波羅探題★]
- 町山智浩「日本のパンダ経済効果は308億円」…「…いらない」と言ってる人達は、パンダで暮らす人々の損害補填してくれるのか…と問う★4 [少考さん★]
- 風 の ナ ウ シ カ の
- なんかリアルに社会が貧困になってくると昔ウケてた貧乏メシが全然面白くなくなってくるよな [455031798]
- ドラえもん
- 🐑🐑🐑🐑🐑🐑🐑🐑🐑🐑🐑
- ガチで日本の衰退やばくねって思った、身近な出来事 [943688309]
- カービィ「漫画化、アニメ化、カフェ常設、グラミー賞受賞してます」←カービィ好きはハッタショと言われる理由
