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 quadros e os quadros que eles contêm são criados usando um conjunto hierárquico de <marcas 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>
[OBSERVAÇÃO] Para entender melhor o exemplo html anterior, cole o exemplo em um documento de texto em branco, renomeie o documento como "framespage.htm" e abra o documento no Word ou em um navegador da Web.
O objeto Frameset
O objeto Frameset abrange a funcionalidade de ambas as marcas. Cada objeto Frameset é do tipo wdFramesetTypeFrameset ou wdFramesetTypeFrame, que representam as marcas <HTML FRAMESET> e <FRAME> , respectivamente. As propriedades que começam com "Frameset" se aplicam a objetos Frameset do tipo wdFramesetTypeFrameset (FramesetBorderColor e FramesetBorderWidth . As propriedades que começam com "Frame" se aplicam a objetos Frameset do tipo wdFramesetTypeFrame (FrameDefaultURL, FrameDisplayBorders, FrameLinkToFile, FrameName, FrameResable 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. Use as propriedades ChildFramesetItem e ParentFrameset para percorrer a hierarquia de objetos Frameset . Por exemplo,
MyFrameset.ChildFramesetItem(n)
retorna um objeto Frameset correspondente ao n th first-level <FRAMESET$gt; ou $lt; FRAME$gt; marca entre o <FRAMESET$gt; e </FRAMESET$gt; marcas correspondentes a MyFrameset
.
Se MyFrameset
for um objeto Frameset correspondente ao $gt mais externo; FRAMESET$gt; marcas no exemplo HTML anterior, MyFrameset.ChildFramesetItem(1)
retorna um objeto Frameset do tipo wdFramesetTypeFrame que corresponde ao quadro chamado "top". Da mesma forma, MyFrameset.ChildFramesetItem(2)
retorna um objeto Frameset do tipo wdFramesetTypeFrameset, que contém dois objetos Frameset : o primeiro objeto corresponde ao quadro chamado "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 retornar o objeto Frameset associado a um quadro específico em uma página de quadros, use a propriedade Frameset de um objeto Pane . 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 quadros é acessado de seu objeto Document correspondente, que por sua vez é acessado do objeto Window no qual a página de quadros é exibida. 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 quadros, a propriedade ActiveDocument retorna o objeto Document associado ao quadro no painel ativo, não a página de quadros 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 quadro é criado, o Word cria um novo documento cujo conteúdo será carregado no novo quadro. 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.