「0」と呼ばれるキーを持つ辞書のいずれかを期待してい
のための関数でのデータ型を定義する必要があるということです辞書内の0
は値を保持しません。おそらく1
はあなたに望ましい結果を与えることができます。私はPHPを知りませんが、私は上記のコードとあなたの要件から理解できるものは、これは私が思い付いたので、私はあなたが望むものかどうかはわかりません?
Sub Sample()
Dim Dict1 As Dictionary
Dim sString As String
Set Dict1 = New Dictionary
With Dict1
.CompareMode = BinaryCompare
.Add 1, "Item 1"
End With
sString = "Sid"
Debug.Print sName(Dict1)
Debug.Print sName(sString)
End Sub
Public Function sName(Inpt As Variant) As Variant
If TypeName(Inpt) = "Dictionary" Then
sName = Inpt.Item(1)
ElseIf TypeName(Inpt) = "String" Then
sName = Inpt
End If
End Function
EDIT
それでも0
を使用したい場合は、辞書に追加しているときに、たとえば
With Dict1
.CompareMode = BinaryCompare
.Add 0, "Item 1"
End With
ため0
を使用して、あなたはで0
を使用することができます
sName = Inpt.Item(0)
SNAPSHOT(ALL 3つの条件 - 0の使用と、1)
HTH
シド
は、詳細な回答ありがとうございます!私はこれを確認したらすぐにこれをマークします –
私の知る限り、辞書のキーは常にテキストです。上のコード例では、 "1"または "0" 'を使用する必要があると思います。 '.exists'でキーの存在を確認するのも良い考えです。 – Pynner
@Pynner:はい。あなたは' .exists'で絶対に正しいです。私は故意に '.Exist'を使用しなかったので、上のケース2のように' 0'の使用法を示すことができます:)ケース2で気付くと '。(1)の代わりに'。(0) ) 'はエラーではなくヌル値を返します。 :) –