web-dev-qa-db-ja.com

VBAのリストと配列

私はVB.NETで書くことに非常に新しいので、VB.NETとVBAの間に大きな違いがあることに気づきさえしませんでした。 Visual Studioでアプリケーションを作成していましたが、OutlookでVBAに移植する必要があることに気づきました。また、対処する必要がある構文の問題がいくつかあります。私はすでに検索しましたが、VBAまたはVB6の最終的な参照(msdnなど)を見つけることができません。VB6はVB.NETよりもVBAにずっと近いと聞いています。

ここにコードの関連セクションを含めます。誰かがもっとコンテキストを必要とするなら、私に知らせてください-私は全部を投稿することができます、それはそれほど長くありません。ただし、この投稿はできる限りシンプルにしたいと思います。

Dim DateToday As String = String.Format("0:{yyyy/MM/dd}", DateTime.Now)
Dim Computers As New SortedList()
Dim disabledList As New List(Of String)
'\\ four additional lists
Dim compArray As Array

...

Computers.Add(ComputerName, ErrorState)

新しいリストとソートされたリストは、リストの後の括弧で「予想:ステートメントの終わり」を示します。配列は、配列のExpected:識別子を提供します。文字列DateTodayは、等号でステートメントの予期される終了を示します。ソート済みリストに追加しようとすると、Expected:=が返されます。

私はおそらく2〜3日間VB.NETを使用してきましたが、VBAまたはVB6を使用したことがないので、ここからどこに行くかを知るのに必要な経験がありません。あなたのいずれかが私を助けてくれるなら、私は本当に感謝しています!

8
Wolves

データ型の一部を変更する必要がありますが、使用したデータ型が正確でない可能性があるため、投稿した内容の基本はこれに似たものに変換される可能性があります。

Dim DateToday As String: DateToday = Format(Date, "yyyy/MM/dd")
Dim Computers As New Collection
Dim disabledList As New Collection
Dim compArray(1 To 1) As String

'Assign data to first item in array
compArray(1) = "asdf"

'Format = Item, Key
Computers.Add "ErrorState", "Computer Name"

'Prints "ErrorState"
Debug.Print Computers("Computer Name")

コレクションはソートできないため、データをソートする必要がある場合は、おそらく配列を使用する必要があります。

これは、Outlook開発者リファレンスへのリンクです。 http://msdn.Microsoft.com/en-us/library/office/ff866465%28v=office.14%29.aspx

あなたが始めるのを助けるもう一つの素晴らしいサイトは http://www.cpearson.com/Excel/Topic.aspx です

すべてのデータ型が同じではなく、.Netフレームワークがないため、すべてをVB.NetからVBAに移行するのは簡単ではありません。動けなくなった場合は、変換を止めたコードを投稿するだけで、きっと助けが得られます!

編集:

Sub ArrayExample()
    Dim subject As String
    Dim TestArray() As String
    Dim counter As Long

    subject = "Example"
    counter = Len(subject)

    ReDim TestArray(1 To counter) As String

    For counter = 1 To Len(subject)
        TestArray(counter) = Right(Left(subject, counter), 1)
    Next
End Sub
13
Ripster