Freigeben über


Erstellen von Framesseiten

In Word können Sie Frames im Webseitendesign verwenden, um Ihre Informationen organisiert und leicht zugänglich zu machen. Eine Framesseite, auch Frameset genannt, ist eine Webseite, die in zwei oder mehr Abschnitte unterteilt ist, von denen jeder auf eine andere Webseite zeigt. Ein Frame auf einer Framesseite kann auch auf eine andere Framesseite zeigen. Informationen zum Erstellen von Frames und Framesseiten in der Word-Benutzeroberfläche finden Sie in der Word-Hilfe.

Frames und Framesseiten werden mittels verschiedener HTML-Tags erstellt. Das Visual Basic-Objektmodell zum Arbeiten mit Frames und Framesseiten können Sie am besten verstehen, wenn Sie sich die HTML-Tags der Frames und Framesseiten ansehen.

Framesseiten in HTML

In HTML werden Framesseiten und die darin enthaltenen Frames mit einem hierarchischen Satz von <FRAMESET> - und <FRAME-Tags> erstellt. Ein Frameset kann sowohl Frames als auch andere Framesets enthalten. Im folgenden Beispiel wird ein Frameset in HTML erstellt, das einen Frame im oberen Teil der Seite und ein direkt darunter liegendes Frameset enthält. Dieses Frameset enthält wiederum einen Frame auf der linken Seite und ein Frameset auf der rechten Seite. Das Frameset enthält zwei übereinander angeordnete Frames.

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

[HINWEIS] Um das vorherige HTML-Beispiel besser zu verstehen, fügen Sie das Beispiel in ein leeres Textdokument ein, benennen Sie das Dokument in "framespage.htm" um, und öffnen Sie das Dokument in Word oder in einem Webbrowser.

Das Frameset-Objekt

Das Frameset-Objekt umfasst die Funktionalität beider Tags. Jedes Frameset-Objekt ist entweder vom Typ wdFramesetTypeFrameset oder wdFramesetTypeFrame, die die HTML-Tags <FRAMESET> bzw <. FRAME> darstellen. Eigenschaften, die mit "Frameset" beginnen, gelten für Frameset-Objekte des Typs wdFramesetTypeFrameset (FramesetBorderColor und FramesetBorderWidth . Eigenschaften, die mit "Frame" beginnen, gelten für Frameset-Objekte des Typs wdFramesetTypeFrame (FrameDefaultURL, FrameDisplayBorders, FrameLinkToFile, FrameName, FrameResizable und FrameScrollBarType).

Durchlaufen der Frameset-Objekthierarchie

Da Framesseiten als hierarchische Gruppen von HTML-Tags definiert sind, ist auch das Objektmodell für den Zugriff auf Frameset-Objekte hierarchisch aufgebaut. Verwenden Sie die Eigenschaften ChildFramesetItem und ParentFrameset , um die Hierarchie von Frameset-Objekten zu durchlaufen. Beispiel:

MyFrameset.ChildFramesetItem(n)

gibt ein Frameset-Objekt zurück, das dem n-ten FRAMESET$gt; der ersten Ebene <entspricht, oder $lt; FRAME$gt; tag zwischen den <Tags FRAMESET$gt; und </FRAMESET$gt; entsprechend MyFrameset.

Wenn MyFrameset ein Frameset-Objekt ist, das dem äußersten $gt entspricht; FRAMESET$gt; Tags im vorherigen HTML-Beispiel MyFrameset.ChildFramesetItem(1) gibt ein Frameset-Objekt vom Typ wdFramesetTypeFrame zurück, das dem Frame mit dem Namen "top" entspricht. MyFrameset.ChildFramesetItem(2) Ebenso gibt ein Frameset-Objekt vom Typ wdFramesetTypeFrameset zurück, das selbst zwei Frameset-Objekte enthält: Das erste Objekt entspricht dem Frame "left", das zweite vom Typ wdFramesetTypeFrameset.

Frameset-Objekte vom Typ wdFramesetTypeFrame besitzen keine untergeordneten Frames, während Objekte vom Typ wdFramesetTypeFrameset mindestens einen untergeordneten Frame besitzen.

Im folgenden Visual Basic-Beispiel werden die Namen der vier Frames angezeigt, die im vorangegangenen HTML-Beispiel definiert wurden.

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

Einzelne Frames und die gesamte Framesseite

Um das Frameset-Objekt zurückzugeben, das einem bestimmten Frame auf einer Framesseite zugeordnet ist, verwenden Sie die Frameset-Eigenschaft eines Pane-Objekts . Beispiel:

ActiveWindow.Panes(1).Frameset

beispielsweise das Frameset-Objekt zurück, das dem ersten Frame der Framesseite entspricht.

Die Framesseite selbst ist ein Dokument, das von den Dokumenten mit den Inhalten der verschiedenen Frames getrennt ist. Auf das frameset-Objekt , das einer Framesseite zugeordnet ist, wird über das entsprechende Document-Objekt zugegriffen, auf das wiederum über das Window-Objekt zugegriffen wird, in dem die Framesseite angezeigt wird. Beispiel:

ActiveWindow.Document.Frameset

beispielsweise das Frameset-Objekt für die Framesseite im aktiven Fenster zurück.

Hinweis Bei der Arbeit mit Rahmenseiten gibt die ActiveDocument-Eigenschaft das Document-Objekt zurück, das dem Frame im aktiven Bereich zugeordnet ist, nicht die gesamte Framesseite.

Neuerstellen einer Framesseite und ihres Inhalts

In diesem Beispiel wird eine neue Framesseite mit drei Frames erstellt, jedem Frame Text hinzugefügt und die Hintergrundfarbe für jeden Frame festgelegt. Es fügt zwei Hyperlinks in den linken Frame ein: Der erste Link öffnet ein Dokument namens One.htm im Hauptrahmen, und der zweite öffnet ein Dokument namens Two.htm im gesamten Fenster. Damit diese Links funktionieren, müssen Sie Dateien namens One.htm erstellen und Two.htm oder die Zeichenfolgen in die Namen vorhandener Dateien ändern.

Hinweis Wenn jeder Frame erstellt wird, erstellt Word ein neues Dokument, dessen Inhalt in den neuen Frame geladen wird. In dem Beispiel wird die Framesseite gespeichert, wodurch automatisch auch die zu den drei Frames gehörenden Dokumente gespeichert werden.

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

Erstellen einer Framesseite, in der Inhalte aus bereits vorhandenen Dateien angezeigt werden

In diesem Beispiel wird eine Framesseite ähnlich der obigen erstellt, aber die Standard-URL für jeden Frame wird auf ein vorhandenes Dokument festgelegt, sodass der Inhalt dieses Dokuments im Frame angezeigt wird. Damit dieses Beispiel funktioniert, müssen Sie Dateien namens Main.htm, Left.htm erstellen und Banner.htm oder die Zeichenfolgen im Beispiel in die Namen vorhandener Dateien ändern.

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.