OOobbs2/93
質問
function のパラメータ個数を可変にできますか? function test(t0 as string,t1 as string) as string test = t0+t1 end function これではパラメータを2つしか渡すことができません。 optional と ismissing の確認ができました。 また説明によれば、たとえば10個までのパラメータに対応するには、10個分の変数の記述が必要なようです。これら大量の変数を、省略されているかどうかなど確認するには、 for 〜 next などを使って処理したくなります。となると初めから配列にしておきたいのですが、パラメータに t(0) などは書けないようです。 遅くなりました。 当方のバージョン([ヘルプ]-[OpenOffice.org情報])は2.0とだけあります。 配列でパラメータを受けるのは別用途であって、希望する機能はないようですね。 dim t(任意) if ismissing(t0) then t(0)=空の時の処理 else t(0)=t0 end if if ismissing(t1) then t(1)=空の時の処理 else t(1)=t1 : : cint(ismissing(変数)) で true=-1 、 false=0 になるようなので、そのへんを代入式に組み込める場合には、多少見通しは良くなる気もしました。 回答
次のようにすると t1 は可変になります。 function test(t0 as string,Optional t1 as string) as string If IsMissing(t1) Then test = t0 Else test = t0 & t1 End If end function このとき次のように利用できます。 test("A") test("A", "B") しかし、宣言しない引数は利用できないので利用時に引数を自由に個数を変更するのは無理です。 また、Optional 宣言されている引数が与えられたかどうかは IsMissing 関数を使用します。
Calc のシート関数として利用するわけですか。 test を私の環境 WinXP, OOo 2.3.1 で =test() とすると「引数はオプションではありません」というエラーが正しく出ました。 >パラメータに配列を セル範囲を引数として受け取ることはできますが、配列の指定は・・・できましたっけ? 範囲指定 "A1:B3" などが引数に指定されたときにはインデックスが 1 から始まる二次元配列を受け取ることになります。
感想,コメント,メモ
|