Compartilhar via


Criando páginas de quadros

No Word, você pode usar quadros no design da sua página da Web para facilitar a organização e o acesso às suas informações. Uma página de quadros, também chamada de conjunto de quadros, é uma página da Web dividida em duas ou mais seções, nas quais cada uma delas aponta para outra página da Web. O quadro de uma página de quadros também pode apontar para outra página de quadros. Para saber mais sobre a criação de quadros e páginas de quadros na interface do usuário do Word, confira a Ajuda do Word.

Os quadros e as páginas de quadros são criados com uma série de marcas HTML. O modelo de objeto do Visual Basic é melhor compreendido através da análise das respectivas marcas HTML para trabalhar com quadros e páginas de quadros.

Páginas de quadros em HTML

Em HTML, as páginas de frames e as molduras que contêm são criadas com um conjunto hierárquico de <etiquetas FRAMESET> e <FRAME> . Um conjunto de quadros pode incluir quadros e outros conjuntos de quadros. Por exemplo, o seguinte HTML cria um conjunto de quadros com um quadro na parte superior e um conjunto de quadros imediatamente abaixo dele. O conjunto de quadros contém um quadro à esquerda e um conjunto de quadros à direita. Esse conjunto de quadros contém dois quadros, um acima do outro.

<FRAMESET ROWS="100, *"> 
    <FRAME NAME=top SRC="banner.htm"> 
    <FRAMESET COLS="20%, *"> 
        <FRAME NAME=left SRC="contents.htm"> 
        <FRAMESET ROWS="75%, *"> 
            <FRAME NAME=main SRC="main.htm"> 
            <FRAME NAME=bottom SRC="footer.htm"> 
        </FRAMESET> 
    </FRAMESET> 
</FRAMESET>

[NOTA] Para compreender melhor o exemplo de HTML anterior, cole o exemplo num documento de texto em branco, mude o nome do documento "framespage.htm" e abra o documento no Word ou num browser.

O objeto Frameset

O objeto Frameset abrange a funcionalidade de ambas as etiquetas. Cada objeto Frameset é do tipo wdFramesetTypeFrameset ou wdFramesetTypeFrame, que representam as etiquetas <HTML FRAMESET> e <FRAME> , respetivamente. As propriedades que começam com "Frameset" aplicam-se aos objetos Frameset do tipo wdFramesetTypeFrameset (FramesetBorderColor e FramesetBorderWidth . As propriedades que começam com "Frame" aplicam-se aos objetos Frameset do tipo wdFramesetTypeFrame (FrameDefaultURL, FrameDisplayBorders, FrameLinkToFile, FrameName, FrameResizable e FrameScrollBarType).

Percorrendo a hierarquia do objeto Frameset

Uma vez que as páginas de quadros são definidas como um conjunto hierárquico de marcas HTML, o modelo de objeto para acessar os objetos Frameset também é hierárquico. Utilize as propriedades ChildFramesetItem e ParentFrameset para percorrer a hierarquia de objetos Frameset . Por exemplo,

MyFrameset.ChildFramesetItem(n)

devolve um objeto Frameset correspondente ao n th-first-level <FRAMESET$gt; ou $lt; FRAME$gt; etiqueta entre as <etiquetas FRAMESET$gt; e </FRAMESET$gt; correspondentes a MyFrameset.

Se MyFrameset for um objeto Frameset correspondente à $gt mais externa; FRAMESET$gt; no exemplo html anterior, MyFrameset.ChildFramesetItem(1) devolve um objeto Frameset do tipo wdFramesetTypeFrame que corresponde à moldura com o nome "top". Da mesma forma, MyFrameset.ChildFramesetItem(2) devolve um objeto Frameset do tipo wdFramesetTypeFrameset, que contém dois objetos frameset : o primeiro objeto corresponde à moldura com o nome "left", o segundo é do tipo wdFramesetTypeFrameset.

Frameset do tipo wdFramesetTypeFrame não incluem quadros filho, ao passo que os objetos wdFramesetTypeFrameset incluem pelo menos um.

O seguinte exemplo do Visual Basic exibe os nomes dos quatro quadros definidos no exemplo de HTML anterior.

Dim MyFrameset As Frameset 
Dim Name1 As String 
Dim Name2 As String 
Dim Name3 As String 
Dim Name4 As String 
 
Set MyFrameset = ActiveWindow.Document.Frameset 
 
With MyFrameset 
    Name1 = .ChildFramesetItem(1).FrameName 
    With .ChildFramesetItem(2) 
        Name2 = .ChildFramesetItem(1).FrameName 
        With .ChildFramesetItem(2) 
            Name3 = .ChildFramesetItem(1).FrameName 
            Name4 = .ChildFramesetItem(2).FrameName 
        End With 
    End With 
End With 
 
Debug.Print Name1, Name2, Name3, Name4

Quadros individuais e a página de quadros inteira

Para devolver o objeto Frameset associado a uma moldura específica numa página de frames, utilize a propriedade Frameset de um objeto Painel . Por exemplo,

ActiveWindow.Panes(1).Frameset

retorna o objeto Frameset correspondente ao primeiro quadro da página de quadros.

A página de quadros é um documento separado dos documentos que constituem o conteúdo dos quadros individuais. O objeto Frameset associado a uma página de frames é acedido a partir do objeto Documento correspondente, que por sua vez é acedido a partir do objeto Janela no qual a página frames é apresentada. Por exemplo,

ActiveWindow.Document.Frameset

retorna o objeto Frameset para a página de quadros da janela ativa.

Nota Ao trabalhar com páginas de frames, a propriedade ActiveDocument devolve o objeto Documento associado à moldura no painel ativo e não a página de frames inteira.

Criando uma página de quadros e seu conteúdo a partir do zero

Este exemplo cria uma nova página de quadros com três quadros, adiciona texto e define a cor da tela de fundo para cada quadro. Ele insere dois hiperlinks no Quadro esquerdo: o primeiro hiperlink abre um documento chamado Um.htm no Quadro principal e o segundo abre um documento chamado Dois.htm na janela inteira. Para que esses hiperlinks funcionem, você deve criar arquivos chamados Um.htm e Dois.htm ou mudar as cadeias de caracteres para os nomes dos arquivos existentes.

Nota À medida que cada frame é criado, Word cria um novo documento cujo conteúdo será carregado para a nova moldura. O exemplo salva a página de quadros, que salva automaticamente os documentos associados a cada um dos três quadros.

Sub FramesetExample1() 
 
    ' Create new frames page. 
    Documents.Add DocumentType:=wdNewFrameset 
 
    With ActiveWindow 
        ' Add text and color to first frame. 
        Selection.TypeText Text:="BANNER FRAME" 
        With ActiveDocument.Background.Fill 
            .ForeColor.RGB = RGB(204, 153, 255) 
            .Visible = msoTrue 
        End With 
 
        ' Add new frame below top frame. 
        .ActivePane.Frameset.AddNewFrame _ 
            wdFramesetNewFrameBelow 
        ' Add text and color to bottom frame. 
        .ActivePane.Frameset.FrameName = "main" 
        Selection.TypeText Text:="MAIN FRAME" 
        With ActiveDocument.Background.Fill 
            .ForeColor.RGB = RGB(0, 128, 128) 
            .Visible = msoTrue 
        End With 
 
        ' Add new frame to left of bottom frame. 
        .ActivePane.Frameset.AddNewFrame _ 
            wdFramesetNewFrameLeft 
        ' Set the width to 25% of the window width. 
        With .ActivePane.Frameset 
            .WidthType = wdFramesetSizeTypePercent 
            .Width = 25 
            .FrameName = "left" 
        End With 
        ' Add text and color to left frame. 
        Selection.TypeText Text:="LEFT FRAME" 
        With ActiveDocument.Background.Fill 
            .ForeColor.RGB = RGB(204, 255, 255) 
            .Visible = msoTrue 
        End With 
        Selection.TypeParagraph 
        Selection.TypeParagraph 
        ' Add hyperlinks to left frame. 
        With ActiveDocument.Hyperlinks 
            .Add Anchor:=Selection.Range, _ 
                Address:="one.htm", Target:="main" 
            Selection.TypeParagraph 
            Selection.TypeParagraph 
            .Add Anchor:=Selection.Range, _ 
                Address:="two.htm", Target:="_top" 
        End With 
        
        ' Activate top frame. 
        .Panes(1).Activate 
        ' Set the height to 1 inch. 
        With .ActivePane.Frameset 
            .HeightType = wdFramesetSizeTypeFixed 
            .Height = InchesToPoints(1) 
            .FrameName = "top" 
        End With 
 
        ' Save the frames page and its associated files. 
        .Document.SaveAs FileName:="default.htm", _ 
            FileFormat:=wdFormatHTML 
    End With 
 
End Sub

Criando uma página de quadros que exibe o conteúdo de arquivos existentes

Este exemplo cria uma página de quadros semelhante à anterior, mas define a URL padrão de cada quadro para um documento existente, de modo que o conteúdo desse documento seja exibido no quadro. Para que esse exemplo funcione, você deve criar arquivos chamados Principal.htm, Esquerdo.htm e Faixa.htm ou mudar as cadeias de caracteres do exemplo para os nomes dos arquivos existentes.

Sub FramesetExample2() 
    
    ' Create new frames page. 
    Documents.Add DocumentType:=wdNewFrameset 
 
    With ActiveWindow 
        ' Add new frame below top frame. 
        .ActivePane.Frameset.AddNewFrame _ 
            wdFramesetNewFrameBelow 
        ' Set the name and initial page for the frame. 
        With .ActivePane.Frameset 
            .FrameName = "main" 
            .FrameDefaultURL = "main.htm" 
        End With 
        
        ' Add new frame to left of bottom frame. 
        .ActivePane.Frameset.AddNewFrame _ 
            wdFramesetNewFrameLeft 
        With .ActivePane.Frameset 
            ' Set the width to 25% of the window width. 
            .WidthType = wdFramesetSizeTypePercent 
            .Width = 25 
            ' Set the name and initial page for the frame. 
            .FrameName = "left" 
            .FrameDefaultURL = "left.htm" 
        End With 
    
        ' Activate top frame. 
        .Panes(1).Activate 
        With .ActivePane.Frameset 
            ' Set the height to 1 inch. 
            .HeightType = wdFramesetSizeTypeFixed 
            .Height = InchesToPoints(1) 
            ' Set the name and initial page for the frame. 
            .FrameName = "top" 
            .FrameDefaultURL = "banner.htm" 
        End With 
 
        ' Save the frameset. 
        .Document.SaveAs FileName:="default.htm", _ 
            FileFormat:=wdFormatHTML 
    End With 
 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.