• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OpenOffice Basicで引数を2つ利用する関数が作れません )

OpenOffice Basicで引数を2つ利用する関数が作れません

このQ&Aのポイント
  • Open Office Calc 3.1.1を使っています。引数を2つ利用する関数を作成したいが、演算結果が#NAME?になってしまう。シンプルな関数の切り分けを行い、引数を1つ利用する場合は正しく計算されることが確認できた。
  • 関数名のタイプミスの可能性を排除するために、引数の数を1つに変更してみたところ、計算できることが確認できた。引数を複数利用する方法に問題があると思われる。
  • アドバイスをいただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.1

試してみましたが正常です。 バージョンは同じく3.1.1です。 関数の値の区切りを「;」でなく「,」を使ってしまっていませんか?

sarusearch
質問者

お礼

ご指摘のとおりでした。ありがとうございます!

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 前回の回答者です。 >以下で=test2(3,5)とすると結果が#NAME?になります。 基本的なことですが、ワークシート上では、(;)で入ります。#NAME?のエラーは、カンマ(,)を使ったからだと思います。 例: =TEST2(3;5) >できれば複数(3つ以上)引数を取る関数を作りたいのですが、 Function Test2(arg1 As Double, Optional arg2 As Double, Optional arg3 As Double) If IsMissing(arg2) Then arg2 =0 If IsMissing(arg3) Then arg3 =0 Test2 = arg1 + arg2 + arg3 End Function (Textベースでは、空白は入っています) 引数が足らない場合は、OOoのBASICなら、例えば、以下のようにして引数の足らない部分を避けるのではないかと思います。VBAでは、このような書き方はしませんが、こうしないと正しい解が返りません。他に書き方があるのかもしれませんが、前回書いた通り、パラメータ配列がありません。 パラメータにエラー値が入ると、それが数値化されますので、IsMissing がTrue の時に、パラメータに0を代入しなければなりません。 なお、前回、Lotus Symphony とは、ほとんど同じなのですが、OOo とのBasic Editor の違いは、全角スペースを受けないという違いに気がつきませんでした。

sarusearch
質問者

お礼

立て続けにありがとうございます。 やりたい事はこれでもう実現できそうです! ありがとうございました

専門家に質問してみよう