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