VbaReferenceCollection

VbaReferenceCollection class

Representerar en samling avVbaReference objekt.

För att lära dig mer, besökArbeta med VBA-makron dokumentationsartikel.

public sealed class VbaReferenceCollection : IEnumerable<VbaReference>

Egenskaper

namnBeskrivning
Count { get; }Returnerar antalet VBA-referenser i samlingen.
Item { get; }BlirVbaReference objekt vid angivet index.

Metoder

namnBeskrivning
Remove(VbaReference)Tar bort den första förekomsten av en angivenVbaReference föremål från samlingen.
RemoveAt(int)Tar bortVbaReference element vid det angivna indexet för samlingen.

Exempel

Visar hur man hämtar/tar bort ett element från VBA-referenssamlingen.

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>
 /// Returnerar en sträng som representerar LibId-sökvägen för en angiven referens.
/// </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>
/// Returnerar sökväg från en specificerad identifierare för ett bibliotek av automationstyp.
/// </summary>
private static string GetLibIdReferencePath(string libIdReference)
{
    if (libIdReference != null)
    {
        string[] refParts = libIdReference.Split('#');
        if (refParts.Length > 3)
            return refParts[3];
    }

    return "";
}

/// <summary>
/// Returnerar sökväg från en specificerad identifierare för ett bibliotek av automationstyp.
/// </summary>
private static string GetLibIdProjectPath(string libIdProject)
{
    return libIdProject != null ? libIdProject.Substring(3) : "";
}

Se även