【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

他に追加情報があったら教えてください。
2008/05/30(金) 14:49:12
続き。

Sub Hoyoyo( sString As String )
msgbox sString
End Sub

Hoyoyo ドキュメント中の Standard ライブラリ、Module1 にある Hoyoyo subroutine を引数付きで実行する。

Sub invoke_Hoyoyo
sURL = "vnd.sun.star.script:Standard.Module1.Hoyoyo?language=Basic&location=document"
'フレームを見つけてくる
oFrames = StarDesktop.getFrames()
Dim oFrame As Object
For i = 0 To oFrames.getCount() -1 Step 1
If Left(oFrames.getByIndex(i).Title,6) = "Hoyoyo" Then
oFrame = oFrames.getByIndex(i)
End If
Next
If NOT IsNull( oFrame ) Then
oDoc = oFrame.getController().getModel()
oSP = oDoc.ScriptProvider
oScript = oSP.getScript(sURL)
If NOT IsNull( oScript ) Then
oScript.invoke( Array( "Say Hoyoyo." ), Array(), Array() )
End If
End If
End Sub
215デフォルトの名無しさん
垢版 |
2008/05/30(金) 17:24:49
>>214
oDoc = oFrame.getController().getModel()
でドキュメントオブジェクトは取得できるのですが
oSP = oDoc.ScriptProvider の行で
「BASIC ランタイムエラー プロパティまたはメソッドが見つかりません」
と言うメッセージが出て終了します
もしかして1.1.5では実行できないのでしょうか
2008/05/30(金) 18:40:35
>>215
>1.1.5
その考えは無かったわ

dispatch でも動かん。すまん、わからん
Scripting Framework が導入されたのが 2 系からだから ScriptProvider は 1 系だと 1.9 後半くらいじゃないと動かん
217デフォルトの名無しさん
垢版 |
2008/05/30(金) 19:26:27
>>216
スペックが低いためか2.x.xは正常に動作しないため
http://oooug.jp/mirror/1.1.5/index.html
で入手した物を使用しています
お手数をおかけして申し訳ありませんでした
2008/06/02(月) 14:58:42
>>217
SA5F(Geode800MHz)でさえ、OpenOffice2.4は(遅いけど)問題なく動きますよ。
よほどメモリ貧乏なのでなければ更新した方がいい気もしますが。
# 2.1が怪しいのは元々エラー処理が雑だったからで、2.4は割りと安定してます。
219デフォルトの名無しさん
垢版 |
2008/06/03(火) 10:26:39
>>218
…300MHzです("スペックが低いためか"どころではないです)
本当に申し訳ありませんでした
2008/06/04(水) 15:08:43
起動やファイルを開くベンチマーク結果を挙げているページ
ttp://www.oooninja.com/2008/05/openofficeorg-getting-faster-benchmark.html
ttp://www.oooninja.com/2008/05/responses-to-is-openofficeorg-getting.html
2008/06/06(金) 12:07:41
ODFXSLTRunner
ttp://blogs.sun.com/GullFOSS/entry/odfxsltrunner_a_new_tool_in
ttp://wiki.services.openoffice.org/wiki/ODFXSLTRunner
222デフォルトの名無しさん
垢版 |
2008/06/10(火) 20:28:46
update10以降、起動が早くなった気がしないでもない
2008/06/14(土) 01:27:01
>>219
是非、「OFFICEスイート」から「テキストエディタ」に乗り換えることをお勧めしますw
2008/06/17(火) 00:56:02
100 MHz の PC でテキストエディタ + TeX のころが懐かしい
2008/06/17(火) 00:59:40
懐古厨が使うようなソフトではないだろ。それに低速マシンなら Microsoft Office の 2000 辺りが無難。
2008/06/17(火) 01:17:23
チープなマシンで使うなら、ちょっと古い版のgnumericと、
コンソールで使うエディタとdbが良いような。

ms-officeは、便利な事もあるんだけど、
やっぱり、リソース食い過ぎと思うんだ。
2008/06/17(火) 06:57:16
実際、ほとんどの仕事は 一太郎 ver3 で十分なんだけどね。
もう売ってないし。持ってても動かないし。
2008/06/17(火) 17:07:12
そこで仮想PCですよ

めちゃめちゃリソース食うけどな
2008/06/25(水) 00:06:59
jsでマクロ書いてる人いないんだ?
OO.o使うついでにjsの勉強兼ねてマクロ作ろうと思ったけど、rhinoインスコしてもeditorでソース開けないわ。
2008/06/25(水) 00:12:27
ツール - マクロの管理 - JavaScript で新しくマクロのファイルを作成、編集ボタンを押す
OOo は rhino を自前で含んでる (programs/classes/js.jar)
OOo 2.3 までは rhino 1.5 release 4.1 2003 04 21、OOo 2.4 からは 1.5 release 5 2004 03 25
2008/06/25(水) 00:24:34
>>230
うほ。目から鱗。class pathにd/lしたrhino指定してソース開かず齷齪してたよ。
ありがとう。
232デフォルトの名無しさん
垢版 |
2008/06/25(水) 18:47:51
開いた瞬間、全画面真っ黒になるマクロを作りたいのですが
どうせばいいですか。

マクロでまっくろじゃけえ、たいそうウケると信じております。
2008/06/25(水) 19:06:54
ナニで黒くするかね
-プレゼン
-ウィンドウ
2008/06/25(水) 20:06:31
ウイルスっぽい
2008/06/25(水) 21:02:40
これだとデスクトップマネージャの前に出られないか。

Sub BlackWindow()
oParent = StarDesktop.getActiveFrame().getContainerWindow()
oToolkit = oParent.getToolkit()
oDAcc = CreateUnoService( _
"com.sun.star.awt.DisplayAccess")
If oDAcc.hasElements() Then
oDisplay = oDAcc.getByIndex(0)
aSize = oDisplay.ScreenArea
nWindowTypeClass = com.sun.star.awt.WindowClass.TOP
oAttr = com.sun.star.awt.WindowAttribute
nAttr = oAttr.NODECORATION + oAttr.FULLSIZE
oWindow = CreateWindow( oToolkit, oToolkit.getDesktopWindow(), _
nWindowTypeClass, "window", nAttr, _
0, 0, aSize.Width, aSize.Height )
oWindow.setPosSize(0, 0, aSize.Width, aSize.Height, _
com.sun.star.awt.PosSize.POSSIZE )
oWindow.Background = 0
oWindow.setVisible(True)
End If
End Sub
2008/06/25(水) 21:03:14
続き

Function CreateWindow( oToolkit As Object, oParent As Object, _
nWindowTypeClass As Long, sTypeName As String, nAttr As Long, _
nX As Long, nY As Long, nWidth As Long, nHeight As Long ) As Object
aRect = CreateUnoStruct("com.sun.star.awt.Rectangle")
With aRect
.X = nX : .Y = nY
.Width = nWidth : .Height = nHeight
End With
aWinDesc = CreateUnoStruct("com.sun.star.awt.WindowDescriptor")
With aWinDesc
.Type = nWindowTypeClass
.WindowServiceName = sTypeName
.ParentIndex = -1
.Bounds = aRect
.Parent = oParent
.WindowAttributes = nAttr
End With
CreateWindow = oToolkit.createWindow(aWinDesc)
End Function
2008/06/26(木) 00:03:09
JSのOO.o用APiリファレンスってどこに載ってるか分かりますか。
Javaのはそれらしいのがあるんですけど、全部は載ってないし・・・。
2008/06/26(木) 00:07:39
http://api.openoffice.org/docs/common/ref/com/sun/star/module-ix.html
ありました。これですね。
2008/06/26(木) 00:12:09
OOo の SDK とってきたら Java UNO のと OOo API 両方入ってる

ここも見とくといいかも
ttp://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Scripting/Writing_Macros
2008/06/26(木) 22:27:43
ToolbarController を実装して Addons で OfficeToolbar に入れたのに初期化されないよ
Standard ツールバーに入れたら初期化されたから、Addons によるツールバーでは
Factory から作成されとらんのか。issue に・・・
2008/07/04(金) 21:48:20
http://api.openoffice.org/
ここ見ても英語だし、さっぱり分からん。
2008/07/09(水) 00:16:06
日本語に翻訳するところから始めるんだ
autodoc は UTF-8 通るんかね?
243デフォルトの名無しさん
垢版 |
2008/07/10(木) 17:54:23
OOo Basicで"VBScript.RegExp"を使うことは出来ないのでしょうか
2008/07/10(木) 18:52:04
>>243
こうか?
Sub retest
Dim Re As Object
Re = CreateObject("VBScript.RegExp")

Re.Pattern = "A."
Re.Ignorecase = True
Re.Global = True
sResult = Re.Replace("abc", "12")

msgbox sResult
Re = nothing
End Sub
245デフォルトの名無しさん
垢版 |
2008/07/10(木) 19:42:21
>>244
そうなのですが、実行すると"Re.Pattern"の部分で
"BASICランタイムエラー 例外が発生しました Type:Unknown"
というメッセージが表示されて終了してしまうのです
>>211
の人の場合のようにバージョン(ちなみに2.0)が関係するのでしょうか


2008/07/10(木) 20:30:09
>>245
WinXPSP3で OOo 2.4.1、2.0.4 なら普通に動くが・・・
OS の問題かね?
247デフォルトの名無しさん
垢版 |
2008/07/10(木) 22:26:36
>>246
OSはWin98SE(Ie6SP1)です
あきらめてbregexp.dllを使ってみようかと思いますが
"Declare Function"が使えるのはどのバージョンからでしょうか
2008/07/10(木) 22:36:14
>>247
1.0 系からでも使えるはず
2008/07/11(金) 00:38:56
Declare Function ReReplace Lib "bregexp.dll" Alias "Replace" _
(szRegstr As String, szTarget As String) As String

Sub ExampleDeclare
Dim sExp As String
Dim sTarget As String
Dim sStr As String
sTarget = "12"
sExp = "/\d/x/"
sStr = ReReplace(sExp, sTarget)
msgbox sStr
'FreeLibrary("bregexp.dll" )
End Sub

invalid target parameter って表示される・・・。
250デフォルトの名無しさん
垢版 |
2008/07/11(金) 08:36:57
>>248
1.1.5使いの211です
>>249を実行すると
「BASIC ランタイムエラー 実装されていません」
となります
日本語独自ビルドであることは無関係なのでしょうか?
>>223
表計算ソフトが必要なのでエディタで代替出来ません
>>226
gnumericはインストールできませんでした
2008/07/11(金) 20:04:38
実装されていませんって・・・ダミーってことかね

・・・ com.sun.star.util.TextSearch サービスはカスだしなぁ
2008/07/11(金) 21:45:45
>>250
dll はフルパスで書かなきゃ駄目とか
253デフォルトの名無しさん
垢版 |
2008/07/11(金) 22:52:06
>>252
早速試してみたところ実装はされたようですが
下記のマクロを実行したところ
「BASICのシンタックスエラー パラメータはプロシージャに合いません」
となります(Excelでは「345」と正常に表示されます)

Declare Function Match Lib "C:\WINDOWS\SYSTEM\bregexp.dll" _
(szRegstr As String, szTarget As String) As String

Sub Test
sTarget = "12.345"
ret = Match("m/(\d{3})/", sTarget)
MsgBox ret
End Sub
2008/07/11(金) 23:05:33
Sub Test
Dim sTarget As String
Dim sExp As String
sExp = "m/(\d{3})/"
sTarget = "12.345"
ret = Match(sExp, sTarget)
MsgBox ret
End Sub

こうすると、クラッシュするようになったよ・・・。
2008/07/11(金) 23:18:29
>>254
奇遇だな。俺も今それを試してクラッシュしたところだ。OOo beta 3 だけどな。
2008/07/11(金) 23:19:40
OOo 3 beta だった
2008/07/11(金) 23:21:19
>>249 を書いたのも俺だが、sTarget = "12" を "123" にするとクラッシュするんだ

OOo 1.1 からPy-UNOが利用できるから、Python 使うとか・・・
1.1.5 をDLしてくるか
2008/07/11(金) 23:24:55
ま、あきらめて自分で実装するのが一番早かったりしてな
2008/07/11(金) 23:34:25
なるほど、Alternative dialog Find & Replace for Writer 拡張機能の正規表現は
Basic で書かれてるんかな?コメがチェコ語?かなんかでパット見よー分からん

それならパクッテこれば・・・1系で動くか分からんが
2008/07/12(土) 00:03:17
あー、1.1.5 でも Py-UNO で TCP/IP 接続でいけるな
ttp://udk.openoffice.org/python/python-bridge.html
2008/07/12(土) 00:05:59
ここはお前の日記帳か
それになんで TCP/IP が出てくるんだ
2008/07/12(土) 00:09:56
OOo はTCP/IPで接続できるが?別にpipeでもいいけど
2008/07/12(土) 04:50:57
通りすがりの者だが読んでるだけで勉強になるスレだと思った
264デフォルトの名無しさん
垢版 |
2008/07/12(土) 09:21:29
243です
私もフルパス指定でやってみましたが"bregexp.dll"以外のdll
(unlha32.dll,urmon.dll,nmail.dll)ではいずれも関数を呼び出した行で
"実装されていません"となります(フルパス指定しない場合と同じ)
なので2.0では"Declare Function"が使えないのだと思っていました
2008/07/12(土) 11:23:01
kernel32 内のは動く (1.1.5、2.0)
ttp://www.oooforum.org/forum/viewtopic.phtml?t=72220&highlight=kernel32

Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
(ByRef lpbuffer As String, nSize As Long) As Long

Public Function ComputerName() As String
Dim sBuffer As String
Dim lSize As Long
Dim sNome As String

sBuffer = Space$(260)
lSize = Len(sBuffer)
Call GetComputerName(sBuffer, lSize)
If lSize > 0 Then
sNome = Left$(sBuffer, lSize)
lSize = InStr(sNome, Chr$(0))
If lSize Then
sNome = Left$(sNome, lSize - 1)
End If
Else
sNome= ""
End If
'ComputerName = sNome
MsgBox sNome
End Function

bregexp のときの Declare 時の引数を ByRef だの ByVal をいじっても特に変わりなし
相性悪いんかね・・・
266デフォルトの名無しさん
垢版 |
2008/07/12(土) 18:14:12
>>265も動きません
OS等OOo以外の環境が原因の可能性が濃厚ですね
そうなると他の方には解決策の探しようがありませんので
"Declare Function"の使用は断念します
お騒がせしました
(com.sun.star.util.TextSearchで2件目以降のマッチングさえ取得できれば・・・)
2008/07/13(日) 00:34:31
TextSearch はリファレンスにサブパターンが取得できるっぽいことが書かれてるのに
取得できないのが痛いよなぁ

二件目以降は文字列の endOffset 以降を再検索で・・・
268デフォルトの名無しさん
垢版 |
2008/07/22(火) 06:11:06
com.sun.star.i18n.TransliterationでURLエンコード、デコードって出来るんでしょうか?
2008/07/22(火) 14:46:57
いいえ
270デフォルトの名無しさん
垢版 |
2008/07/22(火) 20:10:42
そうですか、さんくすです。
2008/08/27(水) 12:53:02
Sub clipboard_2
oClip = CreateUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oTransfer = oClip.getContents()
aDataFlavors = oTransfer.getTransferDataFlavors()
bType = False
For i = 0 To UBound(aDataFlavors) Step 1
aDataFlavor = aDataFlavors(i)
If aDataFlavor.MimeType = "text/plain;charset=utf-16" Then
bType = True
Exit For
End If
Next

If bType Then
' convert utf-16 to UNO string
oConverter = CreateUnoService("com.sun.star.script.Converter")
sData = oConverter.convertToSimpleType( _
oTransfer.getTransferData(aDataFlavor), _
com.sun.star.uno.TypeClass.STRING)
End If

End Sub

上記の "If bType Then" 以降の処理を行わず "aDataFlavor" を
クリップボードに戻す事は可能でしょうか
2008/08/27(水) 13:29:10
>>271
クリップボードの内容を text/plain;charset=utf-16 だけにしたいってこと?
2008/08/27(水) 14:40:02
>>272
はい、なぜか文字数が多くなると "If bType Then" 以降の処理の結果
"sData"が空になってしまうので回避したいのです
2008/08/27(水) 14:45:16
>>273
64k 以上の文字列は扱えない・・・。というのが問題だとおもう
OOo Basic だと文字列は64kまで
2008/09/05(金) 12:25:27
ttp://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FGeneric%2FWindow

このページに

>* boolean isVisible () 表示状態を返します
>* void setVisible ( [in] boolean Visible ) 表示状態を切り替えます

とあるのですが
oContainerWindow.setVisible(False) は問題ありませんが
bVisible=oContainerWindow.isVisible() はエラーになります

散々調べた結果

ttp://api.openoffice.org/docs/common/ref/com/sun/star/awt/XWindow.html#setVisible

このページで setVisible は XWindow の下位

ttp://api.openoffice.org/docs/common/ref/com/sun/star/awt/XWindow2.html#isVisible

isVisible は XWindow2 の下位である事まではわかったのですが、そこから先がわかりません
ご教授賜りたく、よろしくお願いいたします
2008/09/05(金) 12:37:11
>>275
OOo 2.4.1 winXP では Calc のウィンドウに対して問題なく動く
Sub test25
oDoc = ThisComponent
oFrame = oDoc.getCurrentController().getFrame()
oContainerWindow = oFrame.getContainerWindow()
oContainerWindow.setVisible(False)
bVisible = oContainerWindow.isVisible()
oContainerWindow.setVisible(True)
End Sub

どんなエラーが出るんかね?
2008/09/05(金) 17:44:16
>>276

BASIC ランタイムエラー
プロパティまたはメソッドが見つかりません
です

このスレッドを読むと1 系には実装されていないとかいうことでしょうか
設定は出来て取得できないなんて考えられないソフトです

メディアを演奏しようとすると
オブジェクト変数は設定できていません
とか言われるし

lockControllers() と addActionLock() を両方使っても
セルカーソルが移動するし

シート数40、サイズ9Mほど(Excel97の場合)のファイルを保存するのに5分!もかかるし
(StarCalc形式なら20秒弱ですむが文字が化けるし、Excel形式だと開くときにシート毎に
行の高さの調整とかを頼みもしないのに実行するのでとてもうっとうしい)

非表示で開いたCSVファイルを保存すると空になってしまうし・・・

Excelのマクロを移植するのは断念します

ありがとうございました

さようなら
2008/09/05(金) 20:58:10
OOo のマクロは利用者が少ないし、ドキュメントも整備されてないから、
開発にかなり忍耐を強いられるのは事実だな。多分不具合も多いと思う。
OOo3 系でも改善される気配がないし。

それに Excel は 2003 までだったらマクロとか動作速度に関しては良くできてるよ。
ただ、Excel 2007 で9M のファイルを開くとエラいことになりそうな気はするけど。
2008/09/05(金) 21:35:08
>>278
よく使う API には問題ない
Basic も大抵なんともないが、あまり使われてなさそうなランタイム関数を使うとバグであー、ってなる

ドキュメントが整備されるとは思えん・・・DevGuide 読めば分かると思われてるし
2008/09/05(金) 21:54:41
まぁ、整備されつつあるドキュメントといえば
ttp://wiki.services.openoffice.org/wiki/Documentation/BASIC_Guide
PDF にすると 214 ページ

翻訳されるようだが・・・
よく使われるであろう Calc に関する内容が少なすぎんかね
2008/09/05(金) 22:11:23
最近見てないけど、全機能の解説には程遠いんだよね、確か
んで、ひたすら Google での検索地獄になる
2008/09/06(土) 14:48:54
まぁ、ぐぐっても解決策が出てきた例がない
283デフォルトの名無しさん
垢版 |
2008/09/07(日) 11:20:27
>>282
使えねーな、全く
会津若松市さん ご愁傷様
2008/09/07(日) 11:23:47
まあ英語ページで回答が見つかることもあるよ

彼らは一体どこで調べたんだろうと思うけども
2008/09/07(日) 12:34:40
本家で、難儀な質問に回答を出してるのは、
ソース触ってる中の人たちじゃまいか?

// ある意味、ソースがドキュメント状態?
2008/09/07(日) 18:23:15
大抵のことは散乱しているドキュメントなどで見つかるんだよ
ソースを見なきゃならんこともあったが・・・

とはいえ、ユーザーが最初の一歩を踏み出そうとするときにまとまったドキュメントが無いと躊躇すると思う
マクロを書くユーザーの多くは OOo のソースなんて見たくないと思うんだが
287デフォルトの名無しさん
垢版 |
2008/09/08(月) 00:56:22
使えねーな、全く
2008/09/08(月) 08:42:30
普通は >>277 のような書き込みは盛大に叩かれるのが一般的なのに、
ここでは誰も否定しないのが素晴らしい。みんなOOoには不満を抱えてるんだな

「○○がMS Officeを捨ててOOoを採用」とかいうニュースを見るたびに
担当 SE はご愁傷様、という気分になるよ
2008/09/08(月) 11:00:09
VBAでシステム組むのが馬鹿なんだよな。
そうでないなら、MSOfficeを大幅に減らしても殆ど問題がないのに。
2008/09/08(月) 21:10:54
>>289
同意。
2008/09/08(月) 21:33:36
>>289
あの便利さは一度覚えるとなかなか抜け出せないと思うよ
2008/09/08(月) 22:02:50
>>291
マならありえない発言だな
2008/09/08(月) 22:09:53
与えられた案件を顧客の要望に沿って実現するのがプログラマではないでしょうか
294デフォルトの名無しさん
垢版 |
2008/09/08(月) 23:27:41
>>289
> VBAでシステム組むのが馬鹿なんだよな。
> そうでないなら、MSOfficeを大幅に減らしても殆ど問題がないのに。
AccessVBAとSQLで大抵の業務がすげーーー効率化、精度向上、リアルタイム化出来るんだけど。
ほとんど労力いらずで。Baseなんてので開発すりゃ、100倍の労力と1/100のサービスになりそう。
なんせ、情報が貧困過ぎる。
2008/09/09(火) 00:24:07
細かい指摘ですまんが、

× SQL
◎ RDBMS
○ MS SQL Server

じゃないだろうか。
リアルタイム化というのは定期的にバッチで処理していた業務を OLTP 化するという事?
2008/09/09(火) 00:33:15
>>295 「AccessとVBA」って書きたかった に100ペセタ
297デフォルトの名無しさん
垢版 |
2008/09/09(火) 19:36:53
>>295
SQLは構造化クエリー言語だから、商品名ってわけじゃないと思うよ。
もち、Access内部のSQLを指す?

Baseはやはりどう考えても代替にはなり得ないと思うが
298デフォルトの名無しさん
垢版 |
2008/09/09(火) 23:31:31
>>297

> Baseはやはりどう考えても代替にはなり得ないと思うが
みんな黙っちゃったじゃまいか
2008/09/09(火) 23:37:54
MS Office は捨てて OOo に移行しろ、みたいなことを言う人は基本的に信用しないことにしている。
本気で OOo に触ったことがある人ならそんなこと言えないと思うし。
2008/09/09(火) 23:47:24
MSOfficeはVBA触って初めてそのバカ高い値段設定にも納得がいく。
開発環境としてすごい整ってる。

だがOO.oの未来を切り開きたい俺はPythonUNOで何とか頑張りたい。
2008/09/10(水) 00:10:28
>>299
信用するかどうかは君の好きで決めていいんだよ。
わざわざ理由を考えてことわる必要なんて無いさ。
2008/09/10(水) 00:24:12
このスレで言うのもなんだけど、Access を使うなら SQLite とか HSQLDB とか
Apache Derby とか MySQL とかをお好みで使えば良いじゃんと思ってしまう。
303デフォルトの名無しさん
垢版 |
2008/09/10(水) 14:53:08
>>297
> Baseはやはりどう考えても代替にはなり得ないと思うが

MSOfficeでも自動マクロ作成以外にマクロのコードを自分で組んでいる
ユーザはそう多くはないだろうということだろう。
OOoのマクロ言語がVBAの代替になるとまで言っている人を俺はいまだ見たことがないが。
問題点は指摘している人はオープンソース派サイドにも幾人かいるが。
2008/09/10(水) 15:53:35
純粋なロジックだけの話なら、ooo-basicはvbaの代替になると思う。
ぶっちゃけ、basicだから。

問題は、アプリとの絡みがある時に、リファレンスになる物が無いって事だろ。
calcのセル操作とかで分んない事があったら、キーマクロ吐き出させて、
呼出関数を探るんだけど、そのキーマクロが吐き出した関数の詳細が判らん。
例えばの話、セルの巾を変える関数が判ったら、
その近くにセルの高さを変える関数があるはずなんだけど、
そういう事が解るようなサマリーが無い。
その辺のドキュメントが整理されてくれば、使い易くなるんでないかなぁ。
305デフォルトの名無しさん
垢版 |
2008/09/10(水) 18:34:36
>>303
> MSOfficeでも自動マクロ作成以外にマクロのコードを自分で組んでいる
> ユーザはそう多くはないだろうということだろう。
VBAは全員手書きだと思ってた
Accessが吐き出すVBAコードは、ある程度例外処理もなされているが
とてもじゃないが冗長すぎる。日本語入ってなくて分かりづらいし
後から手書きで直すのが苦痛ってか不可能。
普通、最初から手で書くか、コピペ手直し派がほとんどだと思うよ。

Accessが吐き出すSQLは割りと綺麗
後、とってもいじりやすい
2008/09/10(水) 19:39:50
日本語コードに拒否反応起こらないの?
307デフォルトの名無しさん
垢版 |
2008/09/10(水) 22:17:22
>>306
オブジェクトの名称だろ
コードが日本語であるはずがない
ここの人は本当にVBA書いたことあるのだろうか?と疑いたくなる書き込みばかり

Accessが吐き出すVBAは全てアスキーコードに変換される
もちろん意味はある

しかし日本語で済めばそれに越したことはない
2008/09/11(木) 00:38:04
>>304
>キーマクロ吐き出させて

マクロの記録だとコマンド URL しか出んけど、その部分のソース見てるって事?
dispatch は最終手段・・・
2008/09/11(木) 04:38:49
OOoの場合は、マクロの自動生成で吐き出されるコードと、
打ち込みコードとの乖離がありすぎるのがいちばん難点。
その上、日本語のマニュアル書籍がほとんど皆無だから。
2008/09/11(木) 06:07:01
>>309
あれはひどい

あと、全APIのドキュメントがない以上、英語の状況も似たようなもんだと思うよ
英語ではチュートリアルがあるだけマシといえばマシだが
2008/09/11(木) 10:40:07
>>310
全API のドキュメントは登場しないと思う
今あるのは IDL ドキュメントだけど、IDL の無いサービスとかの IDL 追加を issue に出しても
内部用だから・・・とか言って拒否られる
2008/09/11(木) 15:27:36
Sub [test space]
[文字列] = "abc"
msgbox [文字列]
End Sub
313デフォルトの名無しさん
垢版 |
2008/09/11(木) 22:37:56
使えねーな。ほんと
誰でもいいから、もっと使ってネガティブキャンペーンして、MSOfficeの値段を下げてくれよ。
2008/09/11(木) 22:41:59
>>300
Py-UNO だとマクロを拡張機能に入れて配布しにくくないか?
サービスにして com.sun.star.task.XJobExecutor インターフェースとか使わないと実行しにくい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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