VbaReferenceCollection

VbaReferenceCollection class

Représente une collection deVbaReference objets.

Pour en savoir plus, visitez leTravailler avec des macros VBA article documentaire.

public sealed class VbaReferenceCollection : IEnumerable<VbaReference>

Propriétés

NomLa description
Count { get; }Renvoie le nombre de références VBA dans la collection.
Item { get; }ObtientVbaReference objet à l’index spécifié.

Méthodes

NomLa description
Remove(VbaReference)Supprime la première occurrence d’un élément spécifiéVbaReference objet de la collection.
RemoveAt(int)Supprime leVbaReference élément à l’index spécifié de la collection.

Exemples

Montre comment obtenir/supprimer un élément de la collection de référence VBA.

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>
 /// Renvoie une chaîne représentant le chemin LibId d'une référence spécifiée.
/// </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>
/// Renvoie le chemin d'un identifiant spécifié d'une bibliothèque de types Automation.
/// </summary>
private static string GetLibIdReferencePath(string libIdReference)
{
    if (libIdReference != null)
    {
        string[] refParts = libIdReference.Split('#');
        if (refParts.Length > 3)
            return refParts[3];
    }

    return "";
}

/// <summary>
/// Renvoie le chemin d'un identifiant spécifié d'une bibliothèque de types Automation.
/// </summary>
private static string GetLibIdProjectPath(string libIdProject)
{
    return libIdProject != null ? libIdProject.Substring(3) : "";
}

Voir également