Création de pages de cadres

Dans Word, vous pouvez utiliser des cadres dans votre conception de page Web pour organiser et faciliter l’accès à vos informations. Une page de cadres, également appelée jeu de cadres, est une page Web divisée en deux sections ou plus, chacune pointant vers une autre page Web. Un cadre d'une page de cadres peut également pointer vers une autre page de cadres. Pour plus d’informations sur la création de cadres et de pages de cadres dans l’interface utilisateur de Word, voir Aide de Word.

Les cadres et les pages de cadres sont créés avec une série de balises HTML. L'examen des balises HTML des cadres et les pages de cadres permet de mieux comprendre le modèle d'objet Visual Basic qui les utilise.

Pages de cadres dans HTML

En HTML, les pages de cadres et les cadres qu’elles contiennent sont générés à l’aide d’un ensemble hiérarchique de <balises FRAMESET> et <FRAME> . Un jeu de cadres peut contenir à la fois des images et d’autres jeux de framesets. Par exemple, le code HTML suivant crée un jeu de cadres avec un frame en haut et un jeu de cadres immédiatement en dessous. Ce jeu de cadres contient un cadre à gauche et un jeu de cadres à droite. Ce jeu de cadres contient deux images, l’une au-dessus de l’autre.

<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>

[REMARQUE] Pour mieux comprendre l’exemple HTML précédent, collez l’exemple dans un document de texte vide, renommez le document « framespage.htm » et ouvrez le document dans Word ou dans un navigateur Web.

Objet Frameset

L'objet Frameset contient la fonctionnalité des deux balises. Chaque objet Frameset est de type wdFramesetTypeFrameset ou wdFramesetTypeFrame, qui représentent les balises <HTML FRAMESET> et <FRAME> respectivement. Les propriétés commençant par « Frameset » s’appliquent aux objets Frameset de type wdFramesetTypeFrameset (FramesetBorderColor et FramesetBorderWidth . Les propriétés commençant par « Frame » s’appliquent aux objets Frameset de type wdFramesetTypeFrame (FrameDefaultURL, FrameDisplayBorders, FrameLinkToFile, FrameName, FrameResizable et FrameScrollBarType).

Examen de la hiérarchie de l'objet Frameset

Étant donné que les pages de cadres sont définies comme un ensemble hiérarchique de balises HTML, le modèle d'objet permettant d'accéder aux objets Frameset est également hiérarchique. Utilisez les propriétés ChildFramesetItem et ParentFrameset pour passer en revue la hiérarchie des objets Frameset. Par exemple,

MyFrameset.ChildFramesetItem(n)

retourne un objet Frameset correspondant au nième niveau <FRAMESET$gt; ou $lt ; FRAME$gt; entre les <balises FRAMESET$gt; et </FRAMESET$gt; correspondant à MyFrameset.

Si MyFrameset est un objet Frameset correspondant au $gt le plus externe ; FRAMESET$gt; dans l’exemple HTML précédent, MyFrameset.ChildFramesetItem(1) retourne un objet Frameset de type wdFramesetTypeFrame qui correspond au frame nommé « top ». De même, MyFrameset.ChildFramesetItem(2) renvoie un objet Frameset de type wdFramesetTypeFrameset, lui-même contenant deux objets Frameset : le premier objet correspond au frame nommé « left », le second est de type wdFramesetTypeFrameset.

Les objets Frameset de type wdFramesetTypeFrame n'ont pas de cadres enfants, contrairement aux objets de type wdFramesetTypeFrameset qui en possèdent au moins un.

L'exemple Visual Basic suivant affiche le nom des quatre cadres définis dans l'exemple HTML précédent.

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

Cadres individuels et page de cadres complète

Pour renvoyer l'objet Frameset associé à un cadre spécifique d'une page de cadres, utilisez la propriété Frameset d'un objet Pane. Par exemple,

ActiveWindow.Panes(1).Frameset

renvoie l'objet Frameset correspondant au premier cadre de la page de cadres.

La page de cadres est un document distinct des documents qui constituent le contenu des cadres individuels. Vous pouvez accéder à l'objet Frameset associé à une page de cadres à partir de son objet Document correspondant, qui est lui-même accessible à partir de l'objet Window dans lequel la page de cadres s'affiche. Par exemple,

ActiveWindow.Document.Frameset

renvoie l'objet Frameset pour les pages de cadres de la fenêtre active.

Note Lorsque vous utilisez des pages de cadres, la propriété ActiveDocument renvoie l’objet Document associé au cadre dans le volet actif, et non la page de cadres entière.

Création d'une page de cadres et de son contenu de toutes pièces

Cet exemple montre comment créer une page de cadres contenant trois cadres, ajouter du texte à chaque cadre et définir la couleur d'arrière-plan de chaque cadre. Il montre comment insérer deux liens hypertexte dans le cadre de gauche : le premier ouvre un document appelé One.htm dans le cadre principal et le second un document appelé Two.htm dans la fenêtre entière. Pour que ces deux liens hypertexte fonctionnent, vous devez créer des fichiers appelés One.htm et Two.htm ou remplacer les chaînes par les noms des fichiers existants.

Note À mesure que chaque image est créée, Word crée un document dont le contenu sera chargé dans le nouveau cadre. L'exemple montre comment enregistrer la page de cadres qui enregistre automatiquement les documents associés à chacun des trois cadres.

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

Création d'une page de cadres affichant le contenu de fichiers existants

Cet exemple montre comment créer une page de cadres similaire à celle présentée ci-dessus et définir l'URL par défaut de chaque cadre dans un document existant afin que le contenu de ce dernier s'affiche dans le cadre. Pour que cet exemple fonctionne, vous devez créer des fichiers appelés Main.htm, Left.htm et Banner.htm ou remplacer les chaînes de l'exemple par les noms des fichiers existants.

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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.