アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBのプロシージャ間で、Dicitionaryオブジェクトを引数にして渡したいのですが、可能でしょうか。
以下のテストプログラムを起動すると、引数エラーになってしまうのですが、
可能なのでしょうか。

実際は、MsgSet()とMsgGetは別々のプロジェクトの為MsgDicオブジェクトを
グローバル変数としてはもつことが出来ません。

'*****値設定用プロシージャ*****
Sub MsgSet()
Dim MsgDic 'メッセージ格納領域
Set MsgDic = Server.CreateObject("Scripting.Dictionary")
MsgDic.RemoveAll

'値の設定
MsgDic.Add "MSG1", "メッセージ1"
MsgDic.Add "MSG2", "メッセージ2"
MsgDic.Add "MSG3", "メッセージ3"

Call MsgGet(MsgDic)
End Sub

'*****値取得用プロシージャ*****
Sub MsgGet(MsgDic)

Dim getKey,i
getKey = MsgDic.keys

For i = 0 To MsgDic.Count -1
Print getKey(i)
Next
End Sub

A 回答 (1件)

言語は何でしょうか?ASPですか?VB6ですか?


Server.CreateObjectが入っているのでASPと見えますが、別プロジェクトと言うことで、VB6のようにも見えます。

そんでもって、どんなエラーメッセージが返されるのですか?どの行ですか?

このままVBSで実行させてみましたが、
Print getKey(i) のところで TypeMissMatch で落ちます。
これをMsgBox にしたら普通に通りました。

一般的に、関数の引数でDictionary Object を渡すのは普通に出来ますよ。
    • good
    • 0
この回答へのお礼

最初は、ASP内で作成したDictionaryオブジェクトを
使用したくって。

VBにテスト用のDictionaryオブジェクトを作成した時に、Server.CreateObject("Scripting.Dictionary")と記述してしまって落ちていたようです。
VBでは、CreateObject("Scripting.Dictionary")と記述したら上手く行きました。

また本来の目的として、ASPでDictionaryオブジェクト
を作成して、COMへ渡すこともできました。

ありがとう御座います。

お礼日時:2005/08/19 10:33

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A