プロが教えるわが家の防犯対策術!

OpenOffice Basicで簡単な関数を作ってみたのですがエラーが出て実行できません。

Open Office Calc 3.1.1を使っています。

具体的にはサンプルに従い
http://ja.wikibooks.org/wiki/OpenOffice.org_Basi …

FUNCTION Outlay (ByVal x AS Long) AS Long
x = x - 60000 ' 食費に60,000 円かかります。
x = x - 20000 ' 光熱費は、20,000円です。
x = x - 10000 ' 通信費に、10,000円かかります。
x = x - 70000 ' 家賃は、70,000円です。
Outlay = x
END FUNCTION

と書いてみましたがコンパイルもしくは実行した場合に、1行目に対して
"basic ランタイムエラー 引数はオプションではありません。"と表示されます。

他にも色々試しているのですが切り分けられたのはどうやらエラーが発生するのは
引数を最初に参照している行のようだということです
試しにx = 3と書くとその行で同じ内容のエラーがデます

問題解決のために何か方法があれば教えていただけないでしょうか?
なお私はものすごく基本的なプログラミングはできますが、BVAやOpen Office basicは初めてです

A 回答 (2件)

OpenOffice Basicは使ったことありませんが提示のサイトを覗くと


提示のコードはそのサイトの例とし載っているものですね。
それにVBAと似たようなものでもあるようなので、一言。

コードとしては正しいと思われますので
エラーの原因は呼び出し方にあるのでは、と推察されます。

例えば、
引数を省略して呼び出したとか
引数に数値以外をセットして呼び出したとか

(正)MsgBox Outlay(500000)
(誤)MsgBox Outlay()

そこらを確認してみたらどうでしょうか。
以上です。
    • good
    • 0

こんにちは。



私は、OOo は持っていませんが、同系列のLotus Symphony で、本日、初めて試してみました。
syntax error やランタイムエラーこそ出ませんが、少なくとも、VBやVBAの規則の書き方ではないので、良く分かりません。

#FUNCTION 関数名 [(引数 [, 引数, ...])] [AS 型]
#  '処理内容
#  '[関数名 = 返値]
#END FUNCTION

この書き方って、ParamArray の書き方なのに、マニュアルを読むと、サポートしないと書かれています。なぜ、こんな書き方をするのか、私の誤解なのかな?

>試しにx = 3と書くとその行で同じ内容のエラーがでます

どこに入れているのか分かりませんが、ユーザー定義関数(User Defined Function)ですから、

Sub Main
MsgBox OUTLAY(200000)
End Sub

とするか、

ワークシートで、
A1:
=OUTLAY(B1)

B1:200000

と入れ、数式をF2で押して、再計算させれば、引き算されて数字が出てくるはずです。

でも、今はそれ以上は分かりません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

折角試していただいたのに大変申し訳ないのですが全角スペースが入っているという
恥ずかしい誤りでした。申し訳ございません。ありがとうございました。

お礼日時:2010/02/12 12:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!