• 締切済み

インクルードしたファイルの関数を使用する

お世話になっております。カナと申します。 宜しくお願いいたします。 ・windowsXP ・Vbscript ・IIS5.0 インクルードしたaspファイルに、関数があるのですが、 それを実行し戻り値を取得して呼び出し元の関数に戻った際に、 エラー「この変数は宣言されていません。」が出てしまいます。 以下ソースです。 '~~~~~TEST_1.asp~~~~~~~~~ <%@ LANGUAGE="VBScript" %> <% option explicit %> <!-- #include file="TEST_2.asp" --> <% call TEST_1() %> <% public function TEST_1(Data) Dim Data On Error Resume Next Data=27 Call TEST_2(Data) Response.Write(Data)%><br><%      '↑きちんと30が取得できます Response.Write(Err内容:" & Err.Description)%><br><% '↑ここでエラーの確認をしています。      '「この変数は宣言されていません。」になります。 End Function %> ~~~~~TEST_2.asp~~~~~~~~~ <% Public Sub TEST_2(ByRef Data) On Error Resume Next Response.Write("Data)%><br><%      '↑27が表示されます     Data=Data+3 End Sub %> ------------------------------------------------------- 以上です。 callで関数を呼んで、実行結果は正しく取得できるのですが、戻ってきたときにエラーになるので、この先のコードを書いていったときにエラー処理等に問題が出てしまいます。 もっと長いソースを書いているときも同様のエラーが出るので、ファイルのインクルードの仕方か関数の呼び出し方など、根本的になにか問題があるのだと思うのですが・・・。 何かおかしい点があるのでしょうか? 大変困っています。 申し訳ありませんが、どなたかご教授ください。

みんなの回答

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.2

すいません、このソースコードのミスを見つけたのでご指摘します。 もうだいぶ時間が経ってしまったので、解決されているかもしれませんが・・・ まず、call TEST_1() を呼んでますよね? しかし、TEST_1の関数を見ると、「public function TEST_1(Data)」 となっており、Dataに該当する引数を渡さないで実行しているために、 エラーになってます。 Easyミスなので、FunctionやSubの呼び出し元と呼び出し先の 引数の数があっているか、全体的に見直すことをお勧めします!

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

『On Error Resume Next』をコメントアウトして実行してみるとどこでエラーになっているのかの詳細が表示される場合がありますよ TEST_1.aspで『Option Explicit』を宣言しているので Dim宣言していない変数は使用出来ないことになります このエラーが発生しても On Errorでトラップされてしまうので原因箇所の特定が難しくなります 投稿のソースでおかしな点は Response.Writeの引数の""の整合ぐらいのように思います

関連するQ&A