| >Call(サブルーチンA,X,Y,Z) >Call(サブルーチンB,Call(サブルーチンA,X,Y,Z),J,X) >Call(サブルーチンB,I,J,X)
>サブルーチン「サブルーチンA」は >上記の2つ目のような使い方もするということです。
>しかし、上記の2つ目のような使い方をして始めてUpVarコマンドは機能するのですよね? >それとも全く違いますか?
はい、全く違います。 >Call(サブルーチンB,Call(サブルーチンA,X,Y,Z),J,X) という形で実行させた場合ですよね? そうでないのなら、より適切に表現を改めてくださいお願いします。
まずヘルプのUpVarコマンドを熟読し、 そしてどういう構造が「サブツーリンの中から別のサブルーチンを呼び出す」というものなのかの認識を改めてください。 どうやらそこの認識からして間違っているようですので。(ヘルプのUpVarコマンド項の例を見れば多少は分かるかと)
少なくとも、 >Call(サブルーチンB,Call(サブルーチンA,X,Y,Z),J,X) では「サブルーチンを呼び出したサブルーチン」というものは存在しません。
なにより、実際にUpVarコマンドを実行して試してみれば UpVarコマンドが何の効果も発揮せず、エラーにもならない、という事が分かったと思いますが? たとえ動作を試してエラーが出た所で、あなたのパソコンがクラッシュするわけでも自作のデータが壊れるわけでも無いのですから。
質問するなとはいいませんが、 「機能するのですよね?」などと他人に確認するよりは、 実際に自分で機能するかどうかを試した方が、結論を素早く得られるとは思わなかったのですか?
もちろん、機能するかどうかを試す方法が分からない、という事であれば話は別ですがあなたは違いますよね? (わからないのであれば大変失礼しました)
>「どんな引数を指定していたかの情報を変数に代入してからも取得したい」 これもどういう状況を想定しているのかが分かりづらいのですが・・
I = Call(サブルーチンA,X,Y,Z) とした後、 「I」以外の変数を用いずに「X」「Y」「Z」が出せるか という事ですか?
(そちらの意図を汲めていない可能性がありますので、 意図を確信できるまで、これについての結論は控えさせていただきます)
最後に細かい所をいくつか。
毎レスごとに文頭に付けている >サブルーチン例 ですが、 正確には「サブルーチン呼び出し例」だと思われます。
タイトルについては私の一つ目のレスで無断で変更しちゃいました。今更ですが失礼。 (「必ず呼ばれないサブルーチンの引数」って「絶対に呼ばれないサブルーチンの引数」って意味ですよ)
文章表現の間違いというものは、意図が読み手に間違って伝わる可能性が高いものです。 きちんと自分の伝えたい内容になった文章になっているか、改めて注意してください。 では
|