VbaReferenceCollection

VbaReferenceCollection class

Bir koleksiyonu temsil ederVbaReference nesneler.

public sealed class VbaReferenceCollection : IEnumerable<VbaReference>

Özellikleri

İsim Tanım
Count { get; } Koleksiyondaki VBA başvurularının sayısını döndürür.
Item { get; } AlırVbaReference belirtilen dizindeki nesne.

yöntemler

İsim Tanım
Remove(VbaReference) Belirtilen bir VbaReference öğesinin ilk oluşumunu koleksiyondan kaldırır.
RemoveAt(int) Koleksiyonun belirtilen dizinindeki VbaReference öğesini kaldırır.

Örnekler

VBA başvuru koleksiyonundan bir öğenin nasıl alınacağını/kaldırılacağını gösterir.

[Test]
public void RemoveVbaReference()
{
    const string brokenPath = @"X:\broken.dll";
    Document doc = new Document(MyDir + "VBA project.docm");

    VbaReferenceCollection references = doc.VbaProject.References;
    Assert.AreEqual(5 ,references.Count);

    for (int i = references.Count - 1; i >= 0; i--)
    {
        VbaReference reference = doc.VbaProject.References[i];
        string path = GetLibIdPath(reference);

        if (path == brokenPath)
            references.RemoveAt(i);
    }
    Assert.AreEqual(4 ,references.Count);

    references.Remove(references[1]);
    Assert.AreEqual(3 ,references.Count);

    doc.Save(ArtifactsDir + "VbaProject.RemoveVbaReference.docm"); 
}

/// <summary>
/// Belirtilen bir başvurunun LibId yolunu temsil eden dizeyi döndürür. 
/// </summary>
private static string GetLibIdPath(VbaReference reference)
{
    switch (reference.Type)
    {
        case VbaReferenceType.Registered:
        case VbaReferenceType.Original:
        case VbaReferenceType.Control:
            return GetLibIdReferencePath(reference.LibId);
        case VbaReferenceType.Project:
            return GetLibIdProjectPath(reference.LibId);
        default:
            throw new ArgumentOutOfRangeException();
    }
}

/// <summary>
/// Otomasyon türü kitaplığının belirtilen tanımlayıcısından yolu döndürür.
/// </summary>
private static string GetLibIdReferencePath(string libIdReference)
{
    if (libIdReference != null)
    {
        string[] refParts = libIdReference.Split('#');
        if (refParts.Length > 3)
            return refParts[3];
    }

    return "";
}

/// <summary>
/// Otomasyon türü kitaplığının belirtilen tanımlayıcısından yolu döndürür.
/// </summary>
private static string GetLibIdProjectPath(string libIdProject)
{
    return libIdProject != null ? libIdProject.Substring(3) : "";
}

Ayrıca bakınız