2016-03-23 8 views
0

LotusNotesアプリケーションからデータを取得するVBAマクロがあります。そのほとんどはうまくいきますが、Item内の要素の数を取得することはありません。例えばVBAを使用したLotusNoteアイテムの数

Dim DomSession As Object 
Dim DomDir As NotesDatabase 
Dim DomContacts As NotesView 
Dim DomDoc As NotesDocument 

While Not (DomDoc Is Nothing) 
GetItemValue("name of item")(0) 
Set DomDoc = DomContacts.GetNextDocument(DomDoc) 
Wend 

GetItemValue( "アイテムの名前")(0)私の項目の最初または唯一の値を取得します。しかし、アイテム内に要素が多く存在する場合は、それが何回起こるか分かりません。インデックス(i)をループすると、リストが境界外になるまでループするので、VBAで実行時エラーが発生します。

ロータススクリプト自体には、@Countがあります。これは、私がしたいことをするはずですが、これはVBAでは機能しません。助言がありますか?

+0

暗闇の中でショットを。私がLotusscriptで作業して以来、ずっとずっと続いています。この 'MyAr = doc.GetItemValue(" item "の名前)'と 'Ubound(MyAr)'のようなものを試してみてください。 –

+0

ありがとう!これはトリックを行うように見えます。 – Ocmer

+0

実際には、配列要素1はインデックス0にあるので、Ubound(MyAr)+1です。 –

答えて

2

GetitemValueは、項目内のすべての値を含む配列を返します。

としては、あなたは、単にUBOUNDを使用して、変数やサイクルに結果を割り当てるコメントで指摘:

Dim DomSession As Object 
Dim DomDir As NotesDatabase 
Dim DomContacts As NotesView 
Dim DomDoc As NotesDocument 
Dim varValues 

While Not (DomDoc Is Nothing) 
    varValues = DomDoc.GetItemValue("name of item") 
    max = ubound(varValues) 
    For i = 0 to max 
     yourValue = varValues(i) 
     '- do whatever you want with values 
    Next 
    Set DomDoc = DomContacts.GetNextDocument(DomDoc) 
Wend 
+0

解決に感謝します。 – Ocmer

関連する問題