Compartilhar via


Adicionar formas programaticamente a um documento do Visio

Você pode adicionar formas a um documento do Microsoft Office Visio recuperando os mestres de um estêncil e soltando as formas na página ativa.

Para obter mais informações, consulte a documentação de referência do VBA para o método Microsoft.Office.Interop.Visio.Documents.Add, a propriedade Microsoft.Office.Interop.Visio.Application.ActivePage e o método Microsoft.Office.Interop.Visio.Page.Drop.

Adicionar formas a um documento do Visio

Para adicionar formas a um documento do Visio

  • Com um documento ativo, recupere os mestres da coleção Documents.Masters e solte as formas no documento ativo. Você pode recuperar um mestre usando o índice ou o nome do mestre.

    O exemplo de código a seguir cria um documento em branco do Visio e, em seguida, abre-o com o estêncil Formas Básicas encaixado. Em seguida, o código recupera várias formas e as solta na página ativa.

    this.Application.Documents.Add("");
    
    Visio.Documents visioDocs = this.Application.Documents;
    Visio.Document visioStencil = visioDocs.OpenEx("Basic Shapes.vss",
        (short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked);
    
    Visio.Page visioPage = this.Application.ActivePage;
    
    Visio.Master visioRectMaster = visioStencil.Masters.get_ItemU(@"Rectangle");
    Visio.Shape visioRectShape = visioPage.Drop(visioRectMaster, 4.25, 5.5);
    visioRectShape.Text = @"Rectangle text.";
    
    Visio.Master visioStarMaster = visioStencil.Masters.get_ItemU(@"5-Point Star 7");
    Visio.Shape visioStarShape = visioPage.Drop(visioStarMaster, 2.0, 5.5);
    visioStarShape.Text = @"Star text.";
    
    Visio.Master visioHexagonMaster = visioStencil.Masters.get_ItemU(@"Hexagon");
    Visio.Shape visioHexagonShape = visioPage.Drop(visioHexagonMaster, 7.0, 5.5);
    visioHexagonShape.Text = @"Hexagon text.";