Home > Illustlation > グラフィックツール > Corel Draw > CorelDrawの公式マクロ文書の和訳 > CorelDRAW開発者エリアにようこそ > プログラミング・ガイド > 8-オブジェクト・モデルを理解する > 8.4-ページで作業する

8.4-ページで作業する

新規作成日 2020-02-04
最終更新日

CorelDRAWでマクロを利用するためのドキュメント「8.4 - Working with pages」の和訳です。


それぞれのページやPageオブジェクトは、それが表示される文書のDocument.Pagesコレクションのメンバーです。Document.Pagesコレクションのページは、その文書に表示される順序で表示されます。-たとえば、アクティブ文書の5ページ目は、ActiveDocument.Pages.Item(5)です。ページが追加、並べ替え、または削除された場合、影響を受けたPagesコレクションは、その文書の新しいページの順序を反映するために、ただちに更新されます。

Corel DESIGNERとCorelDRAWは、ページを操作するための多くのプロパティ、メソッド、イベントを提供します。最も役に立つものを次の表に示します。

クラス メンバー 説明
Application ActivePageプロパティ アクティブ文書のアクティブページに、直接、アクセスを提供します。

詳細については、「ページをアクティブ化する」を参照してください。

Application PageSizesプロパティ アプリケーションの定義されたページの大きさのコレクションが含まれています。

詳細については、「定義されたページの大きさを使用する」を参照してください。

Document ActivePageプロパティ 文書のアクティブページに、直接、アクセスを提供します。

詳細については、「ページをアクティブ化する」を参照してください。

Document AddPagesメソッドやAddPagesExメソッド 文書の末尾に、空白ページを追加します。

詳細については、「ページを作成する」を参照してください。

Document InsertPagesメソッドやInsertPagesExメソッド 文書内の指定された場所に、ページを挿入します。

詳細については、「ページを作成する」を参照してください。

Document MasterPageプロパティ デフォルト・ページの大きさを指定します

詳細については、「デフォルト・ページの大きさを指定する」を参照してください。

Document PageActivateイベント ページが、アクティブ化されたとき、発生します。

詳細については、「ページをアクティブ化する」を参照してください。

Document PageChangeイベント ページのアクティブ化が、解除されたとき、発生します。

詳細については、「ページをアクティブ化する」を参照してください。

Document PageCreateイベント ページが、作成されたとき、発生します。

詳細については、「ページを作成する」を参照してください。

Document PageDeleteイベント ページが削除されるとき、発生します。

詳細については、「ページを削除する」を参照してください。

Document Pagesプロパティ 文書のページのコレクションが含まれています。

詳細については、「ページをアクティブ化する」を参照してください。

Page Activateメソッド ページをアクティブ化します。

詳細については、「ページをアクティブ化する」を参照してください。

Page Deleteメソッド ページを削除します。

詳細については、「ページを削除する」を参照してください。

Page MoveToメソッド ページを、文書の指定された場所に移動します。

詳細については、「ページを並び替える」を参照してください。

Page SetSizeメソッド ページの大きさを設定します。

詳細については、「ページの大きさと向きを指定する」を参照してください。

PageSize BuiltIn プロパティ ページの大きさが、(ユーザー定義ではなく)組み込みの場合、Trueを返します。

詳細については、「定義されたページの大きさを使用する」を参照してください。

PageSize Delete メソッド ユーザー定義されたページの大きさを削除します。

詳細については、「定義されたページの大きさを使用する」を参照してください。

PageSize Heightプロパティ 定義されたページの大きさの高さを指定します。

詳細については、「定義されたページの大きさを使用する」を参照してください。

PageSize Nameプロパティ 定義されたページの大きさの名前を指定します。

詳細については、「定義されたページの大きさを使用する」を参照してください。

PageSize Widthプロパティ 定義されたページの大きさの幅を指定します。

詳細については、「定義されたページの大きさを使用する」を参照してください。

プロパティ、メソッド、またはイベントの詳細については、APIの文書を参照してください。

このトピックの内容

In this topic

ページに関連したアクティビティの詳細については、次のサブトピックを参照してください。:

ページを作成する

Creating pages

ページを作成するためのメソッドは、Documentクラスに属しています。

Document.AddPagesメソッドとDocument.AddPagesExメソッドは、どちらも、指定した数のページを文書の末尾に追加します。これらのメソッドの違いは、AddPagesExが、指定された大きさを使用する一方で、AddPagesが、デフォルト・ページの大きさを使用するということです。

同様に、Document.InsertPagesメソッドとDocument.InsertPagesExメソッドは、文書で指定された場所に、指定したページ数を挿入します。これらのメソッドの違いは、InsertPagesExが、指定された大きさを使用する一方で、InsertPagesが、デフォルトのページの大きさを使用するということです。

例として、次のVBAコードは、AddPagesメソッドを使用して、文書の末尾に3つのデフォルトの大きさのページを追加します。:

Public Function AddSomeSimplePages() as Page

    Set AddSomeSimplePages = ActiveDocument.AddPages(3)

End Function

次のVBAの例では、AddPagesExメソッドを使用して、文書の末尾に、幅8.5インチ×高さ11インチの3ページを追加します。:

Public Function AddSomeSpecifiedPages() as Page

    Dim doc as Document

    Set doc = ActiveDocument
    
    doc.Unit = cdrInch

    Set AddSomeSpecifiedPages = doc.AddPagesEx(3, 8.5, 11)

End Function

上記の例は、追加された最初のページを返します。;他のすべての追加ページは、このページに従います。したがって、返されたページのIndexプロパティをインクリメントすることで、追加されたページを参照できます。:

Dim firstNewPage As Page, secondNewPage As Page

Set firstNewPage = AddSomeSimplePages

Set secondNewPage = ActiveDocument.Pages(firstNewPage.Index + 1)

必要に応じて、あなたは、ページを作成することで、発生するイベントに応答するイベント・ハンドラを使用することができます。:

  • Document.PageCreate

ページをアクティブ化する

Activating pages

それぞれのページは、それが表示される文書のDocument.Pagesコレクションのメンバーです。Document.Pagesコレクションのページは、その文書に表示される順序で表示されます。たとえば、アクティブ文書の5ページ目は、ActiveDocument.Pages.Item(5)です。ページを追加、並び替え、削除される場合、影響を受けたページ・コレクションは、その文書の新しいページ順序を反映するために、すぐに更新されます。

あなたは、Application.ActivePageプロパティ(またはActiveDocument.ActivePage、または単にActivePage)を使用して、アクティブ文書のアクティブページにアクセスできます。Page型のアクティブ文書内のアクティブ・ページへの参照が返されます。

Dim pg As Page

Set pg = ActivePage

その文書のActivePageプロパティを使用して、その文書が、アクティブかどうかに関係なく、あなたは、文書のアクティブページにアクセスすることができます。:

Public Function getDocsActivePage(doc As Document) As Page

    Set getDocsActivePage = doc.ActivePage

End Function

あなたは、目的のページを見つけて、ページを切り替えることができます。続いて、そのActivateメソッドを呼び出します。次のVBAコードは、文書の3ページをアクティブにします。:

ActiveDocument.Pages(3).Activate

必要に応じて、あなたは、ページを起動することで、発生するイベントに応答するイベント・ハンドラを使用することができます。:

  • Document.PageActivate

あなたは、ページのアクティブ化を解除すると発生するイベントに応答するイベント・ハンドラを使用することもできます。:

  • Document.PageChange

ページを並び替える

Reordering pages

ページをMoveToメソッドを使用して、文書内の別の場所に移動できます。次のVBAコードは、2ページを4ページの位置へ移動します。:

ActiveDocument.Pages(2).MoveTo 4

アクティブではない文書におけるページをアクティブ化することは、その文書をアクティブ化しません。文書をアクティブにするために、あなたは、そのActivateメソッドを使用する必要があります。(「文書をアクティブ化する」を参照)。

ページの大きさを変更する

Sizing pages

あなたは、デフォルト・ページの大きさを指定して、ページの大きさと向きを指定し、定義されたページの大きさを使用することができます。

ページの大きさと向きを指定する

Specifying the size and orientation of pages

あなたは、2つのサイズ値(幅と高さ)がページに適用されるSetSizeメソッドを使用して、ページの大きさを変更できます。

次のVBAコードは、アクティブ文書のアクティブ・ページの大きさをA4に変更します:


ActiveDocument.Unit = cdrMillimeter

ActivePage.SetSize 210, 297

ActivePage.Orientation = cdrLandscape

SetSizeメソッドのために、1つ目の数は、常にページの幅です。そして、2つ目の数は、常にページ高さです。2つの数字を逆にすると、ページの向きが切り替わります。

デフォルト・ページの大きさを指定する

Specifying the default page size

文書のデフォルト・ページの大きさは、Document.Pagesコレクションで、0のインデックスを持っている項目の値で決定されます。あなたは、この項目の値を変更することで、デフォルト・ページの大きさを指定することができます。:

Dim doc As Document

Set doc = ActiveDocument

doc.Unit = cdrMillimeter

doc.Pages(0).SetSize 297, 210

別の方法では、あなたは、デフォルト・ページの大きさを指定するDocument.MasterPageプロパティを使用することができます。:

Dim doc As Document

Set doc = ActiveDocument

doc.Unit = cdrMillimeter

doc.MasterPage.SetSize 297, 210

定義されたページの大きさを使用する

Using defined pages sizes

ページ・サイズは、アプリケーションやユーザーが定義できます。すべての定義されたページの大きさは、Application.PageSizesコレクションに格納されています。そして、コレクションのそれぞれのPageSizeオブジェクトの名前は、そのNameプロパティによって定義されています。:

Dim pageSizeName As String

pageSizeName = Application.PageSizes(3).Name

ページの大きさは、名前で指定できます。たとえば、次のVBAコードは、"Business Card"という名のPageSizeオブジェクトを取得します。:

Dim thisSize As PageSize

Set thisSize = Application.PageSizes("Business Card")

あなたは、そのWidthとHeightプロパティを使用して、PageSizeオブジェクトの実寸法を取得することができます。次のVBAコードは、3つ目のPageSizeオブジェクトの幅と高さを(ミリメートルで)取り出します。:

Dim pageWidth As Double, pageHeight As Double

Application.Unit = cdrMillimeter

pageWidth = Application.PageSizes(3).Width

pageHeight = Application.PageSizes(3).Height

それぞれのPageSizeオブジェクトが、Deleteメソッドを提供しますが、このメソッドは、ユーザー定義されたページの大きさでのみ、使用することができます。PageSizeオブジェクトが、そのビルトインBooleanのプロパティをテストすることによって、ユーザー定義かどうかを判断できます。:

Public Sub deletePageSize(thisSize As PageSize)

    If Not thisSize.BuiltIn Then thisSize.Delete

End Sub

あなたは、その幅と高さを取得する前に、文書のために単位を設定することによって、ページの大きさに、特定の測定単位を指定することができます。

ページを変更する

Modifying pages

あなたは、アクティブかどうかに関係なく、ページを変更することができます。

アクティブではない文書におけるページをアクティブ化することは、その文書をアクティブ化しません。文書をアクティブにするために、あなたは、そのActivateメソッドを使用する必要があります。(「文書をアクティブ化する」を参照)。

あなたが修正したいページを明示的に参照することによって、あなたは、ページをアクティブ化することなく、それらの変更を行うことができます。次のVBAコードは、ページをアクティブ化することなく、アクティブ文書の3ページにある、すべてのshapeを削除します。:

Public Sub DeleteShapesFromPage3()

    Dim doc As Document

    Set doc = ActiveDocument

    doc.Pages(3).Shapes.All.Delete

End Sub

ページを削除する

Deleting pages

あなたは、次のVBAの例のように、Deleteメソッドを使用して、ページを削除することができます。:

ActivePage.Delete

Page.Deleteメソッドは、そのページから、すべてのshapeを削除し、その文書のPagesコレクションからページを削除します。続いて、変更を反映するために、そのコレクションを更新します。

あなたが、1つ以上のページを削除したい場合、あなたは、不必要なページごとに、Deleteメソッドを使用する必要があります。しかしながら、あなたは、文書内のすべてのページを削除することはできません。あなたは、以下のVBAコードを使用することにより、文書内に残った最後のページを削除しようとするのを避けることができます。:

If ActiveDocument.Pages.Count > 1 Then ActivePage.Delete

必要に応じて、あなたは、ページを削除することによって、発生するイベントに応答するイベント・ハンドラを使用することができます。:

  • Document.PageDelete
このエントリーをはてなブックマークに追加