Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.