秋葉原のソフマップでASUSのZenBook (Ultrabookとか呼ばれてるらしい) を購入。
http://zenbook.asus.com/jp/
CPUとかメモリとかが劇的に増えてるわけじゃないけど、SSDのおかげか、マシンの起動とか、LibreOfficeの起動とか、めっちゃ速なっとる。何かこの速さをいかした使い方をしてみたいと思いつつ思いつかないけど。
旧日記 http://blog.good-day.net/~tani/diary/ から、こっちへ本格的に移転中。
本ページは谷 列樹(たに つらき)の備忘録です。
実在の団体・人物とは関係ないと思います。
2011年12月26日月曜日
2011年12月12日月曜日
OOo(libreOffice) BasicでEval
ExelのVBAでは、文字列で渡された計算式を実行するためのApplication.Evaluate()ってメソッドがあるけど、OOo(LibreOffice)では見当たらなかったので。
ググると、以下のような投稿を発見。
http://www.oooforum.org/forum/viewtopic.phtml?t=58809
これの一番最後に答えが書いてあって、ようはJavaScriptのEvalを使って計算を行うマクロを作っておいて、それをOOo Basicから呼び出すというコード。まず、以下のようなJavaScriptの一行マクロをドキュメントのLibrary1のEvalCell.jsとして作成。
dResult = eval(String(ARGUMENTS[0]));
んで、そのあと以下のようなOOo Basicのコードで呼び出す、って感じ。
Function Eval(s as String) as Double
oDocScriptProvider = ThisComponent.getScriptProvider()
oScript = oDocScriptProvider.getScript("vnd.sun.star.script:Library1.EvalCell.js?language=JavaScript&location=document")
On Error Resume Next
Eval = oScript.Invoke(Array(s), Array(1), Array(dResult))
On Error Goto 0
End Function
ググると、以下のような投稿を発見。
http://www.oooforum.org/forum/viewtopic.phtml?t=58809
これの一番最後に答えが書いてあって、ようはJavaScriptのEvalを使って計算を行うマクロを作っておいて、それをOOo Basicから呼び出すというコード。まず、以下のようなJavaScriptの一行マクロをドキュメントのLibrary1のEvalCell.jsとして作成。
んで、そのあと以下のようなOOo Basicのコードで呼び出す、って感じ。
Function Eval(s as String) as Double
oDocScriptProvider = ThisComponent.getScriptProvider()
oScript = oDocScriptProvider.getScript("vnd.sun.star.script:Library1.EvalCell.js?language=JavaScript&location=document")
On Error Resume Next
Eval = oScript.Invoke(Array(s), Array(1), Array(dResult))
On Error Goto 0
End Function
登録:
投稿 (Atom)