Exemplo de macro para duplicar uma página no Visio

Traduções deste artigo Traduções deste artigo
ID do artigo: 290581 - Exibir os produtos aos quais esse artigo se aplica.
Para uma versão deste artigo do Microsoft Visio 2000, consulte 289859.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo explica como duplicar uma página, juntamente com as formas na página específica, usando o Microsoft Visual Basic for Applications. O código de exemplo também fornece um exemplo de como usar a propriedade Page.PageSheet para obter acesso às células da ShapeSheet da página.

Mais Informações

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades.

Código de exemplo

O seguinte código de exemplo reproduz uma página.
Public Sub DuplicateActivePage()
    Dim OriginalPage As Visio.Shape
    Dim DuplicatePage As Visio.Shape
    
    Dim ShapeDropX As Double
    Dim ShapeDropY As Double
    
    Set OriginalPage = ActivePage.PageSheet
    ActiveWindow.SelectAll 'Select everything on the first page...
    ActiveWindow.Group '...then group it all...
    ActiveWindow.Copy '... then copy it to the clipboard.
    
    ShapeDropX = ActiveWindow.Selection(1).Cells("PinX") 
    'Get the new Group's x position.

    ShapeDropY = ActiveWindow.Selection(1).Cells("PinY") 
    'Get the new Group's y position.
    
    Set DuplicatePage = ActiveDocument.Pages.Add.PageSheet 
    'Create the new page.
    
    'Set attributes of the new page to be the same as the original page.
    With DuplicatePage
        .Cells("PageWidth") = OriginalPage.Cells("PageWidth")
        .Cells("PageScale") = OriginalPage.Cells("PageScale")
        .Cells("ShdwOffsetX") = OriginalPage.Cells("ShdwOffsetX")
        .Cells("PageHeight") = OriginalPage.Cells("PageHeight")
        .Cells("DrawingScale") = OriginalPage.Cells("DrawingScale")
        .Cells("ShdwOffsetY") = OriginalPage.Cells("ShdwOffsetY")
        .Cells("DrawingSizeType") = OriginalPage.Cells("DrawingSizeType")
        .Cells("DrawingScaleType") = OriginalPage.Cells("DrawingScaleType")
        .Cells("InhibitSnap") = OriginalPage.Cells("InhibitSnap")
        .Cells("PlaceStyle") = OriginalPage.Cells("PlaceStyle")
        .Cells("PlaceDepth") = OriginalPage.Cells("PlaceDepth")
        .Cells("PlowCode") = OriginalPage.Cells("PlowCode")
        .Cells("ResizePage") = OriginalPage.Cells("ResizePage")
        .Cells("DynamicsOff") = OriginalPage.Cells("DynamicsOff")
        .Cells("EnableGrid") = OriginalPage.Cells("EnableGrid")
        .Cells("CtrlAsInput") = OriginalPage.Cells("CtrlAsInput")
        .Cells("LineAdjustFrom") = OriginalPage.Cells("LineAdjustFrom")
        .Cells("BlockSizeX") = OriginalPage.Cells("BlockSizeX")
        .Cells("BlockSizeY") = OriginalPage.Cells("BlockSizeY")
        .Cells("AvenueSizeX") = OriginalPage.Cells("AvenueSizeX")
        .Cells("AvenueSizeY") = OriginalPage.Cells("AvenueSizeY")
        .Cells("RouteStyle") = OriginalPage.Cells("RouteStyle")
        .Cells("PageLineJumpDirX") = OriginalPage.Cells("PageLineJumpDirX")
        .Cells("PageLineJumpDirY") = OriginalPage.Cells("PageLineJumpDirY")
        .Cells("LineAdjustTo") = OriginalPage.Cells("LineAdjustTo")
        .Cells("LineToNodeX") = OriginalPage.Cells("LineToNodeX")
        .Cells("LineToNodeY") = OriginalPage.Cells("LineToNodeY")
        .Cells("LineToLineX") = OriginalPage.Cells("LineToLineX")
        .Cells("LineToLineY") = OriginalPage.Cells("LineToLineY")
        .Cells("LineJumpFactorX") = OriginalPage.Cells("LineJumpFactorX")
        .Cells("LineJumpFactorY") = OriginalPage.Cells("LineJumpFactorY")
        .Cells("LineJumpCode") = OriginalPage.Cells("LineJumpCode")
        .Cells("LineJumpStyle") = OriginalPage.Cells("LineJumpStyle")
        .Cells("XRulerOrigin") = OriginalPage.Cells("XRulerOrigin")
        .Cells("YRulerOrigin") = OriginalPage.Cells("YRulerOrigin")
        .Cells("XRulerDensity") = OriginalPage.Cells("XRulerDensity")
        .Cells("YRulerDensity") = OriginalPage.Cells("YRulerDensity")
        .Cells("XGridOrigin") = OriginalPage.Cells("XGridOrigin")
        .Cells("YGridOrigin") = OriginalPage.Cells("YGridOrigin")
        .Cells("XGridDensity") = OriginalPage.Cells("XGridDensity")
        .Cells("YGridDensity") = OriginalPage.Cells("YGridDensity")
        .Cells("XGridSpacing") = OriginalPage.Cells("XGridSpacing")
        .Cells("YGridSpacing") = OriginalPage.Cells("YGridSpacing")
    End With
    
    ActivePage.Paste 'Paste the copied group from the Clipboard.
    ActiveWindow.Selection(1).Cells("PinX") = ShapeDropX 
    'Position the group.
    ActiveWindow.Selection(1).Cells("PinY") = ShapeDropY
    ActiveWindow.Selection(1).Ungroup 'Ungroup the group.
    
    ActiveWindow.Page = OriginalPage.ContainingPage.Name 
    'Go back to the original page...

    ActiveWindow.SelectAll '...then select the group...
    ActiveWindow.Selection(1).Ungroup '...and ungroup it...
    ActiveWindow.DeselectAll ' and then deselect all of the shapes.
    
    MsgBox DuplicatePage.ContainingPage.Name & " has been created."
End Sub
				

Referências

Para obter mais informações sobre como usar o código de exemplo neste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
277011A execução de código de exemplo de artigos da Base de dados de Conhecimento
Como alternativa, visite o seguinte site da Microsoft:
MSDN Online Visio Development Center

Propriedades

ID do artigo: 290581 - Última revisão: terça-feira, 28 de novembro de 2006 - Revisão: 5.1
A informação contida neste artigo aplica-se a:
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visio Standard 2007
  • Microsoft Office Visio Standard 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Visio 2002 Professional Edition
  • Microsoft Visio 2002 Standard Edition
Palavras-chave: 
kbmt kbhowto KB290581 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 290581

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com