CorelDRAWでマクロを利用するためのドキュメント「8.5 - Working with layers」の和訳です。
レイヤーは、あなたが、ページ上で、オブジェクトを系統化できる見えない平面です。あなたは、関連したオブジェクトをレイヤーにグループ化できます。そして、あなたは、これらのレイヤーの垂直方向の順序(または「スタック順」)を変更して、ページの外観を変更できます。ローカル・レイヤーが、一つのページに適用される一方で、マスター・レイヤーは、文書内のすべてのページに適用されます。
それぞれのレイヤーやLayerオブジェクトは、それが表示されるページのPage.Layersコレクションのメンバーです。Page.Layersコレクションのレイヤーが、そのページに表示される順序で表示されます。-最初のレイヤーは、「スタック」の最上位にあります。そして、最後のレイヤーは、一番下にあります。レイヤーが、追加、並べ替え、または削除された場合、影響を受けたPage.Layersコレクションは、そのページの新しいレイヤー順序を反映するために、ただちに更新されます。
Corel DESIGNERとCorelDRAWは、レイヤーを操作するための多くのプロパティ、メソッド、イベントを提供します。最も役に立つものを次の表に示します。
クラス | メンバー | メンバー |
---|---|---|
Document | ActiveLayerプロパティ | 文書のアクティブ・レイヤーに、直接、アクセスを提供します。
詳細については、「レイヤーをアクティブ化する」を参照してください。 |
Document | LayerActivateイベント | レイヤーが、アクティブ化されたとき、発生します。
詳細については、「レイヤーをアクティブ化する」を参照してください。 |
Document | LayerChangeイベント | レイヤーのアクティブ化が、解除されたとき、発生します。
詳細については、「レイヤーをアクティブ化する」を参照してください。 |
Document | LayerCreateイベント | レイヤーが、作成されたとき、発生します。
詳細については、「レイヤーを作成する」を参照してください。 |
Document | LayerDeleteイベント | レイヤーが削除されるとき、発生します。
詳細については、「レイヤーを削除する」を参照してください。 |
Layer | Activateメソッド | レイヤーをアクティブ化します。
詳細については、「レイヤーをアクティブ化する」を参照してください。 |
Layer | Deleteメソッド | レイヤーを削除します。
詳細については、「レイヤーを削除する」を参照してください。 |
Layer | Editableプロパティ | レイヤーが、編集可能かどうかを制御します。
詳細については、「レイヤーのロックと非表示」を参照してください。 |
Layer | ImportメソッドやImportExメソッド | レイヤーにファイルをインポートします。
詳細については、「レイヤーにファイルをインポートする」を参照してください。 |
Layer | MoveAboveメソッドやMoveBelowメソッド | レイヤーを移動します。
詳細については、「レイヤーを並び替える」を参照してください。 |
Layer | Nameプロパティ | レイヤーの名前を指定します。
詳細については、「レイヤーの名前を変更する」を参照してください。 |
Layer | Visibleプロパティ | レイヤーの内容を表示するかどうかを制御します。
詳細については、「レイヤーのロックと非表示」を参照してください。 |
Page | ActiveLayerプロパティ | ページのアクティブ・レイヤーに、直接、アクセスを提供します。
詳細については、「レイヤーをアクティブ化する」を参照してください。 |
Page | CreateLayerメソッド | マスターではないレイヤーのリストの最上位に、新しいレイヤーを挿入します。
詳細については、「レイヤーを作成する」を参照してください。 |
Page | Layers プロパティ | ページのレイヤーのコレクションが含まれています。
詳細については、「レイヤーをアクティブ化する」を参照してください。 |
プロパティ、メソッド、またはイベントの詳細については、APIの文書を参照してください。
このトピックの内容
In this topic
レイヤーに関連した動作の詳細については、次のサブトピックを参照してください。:
- レイヤーを作成する
- レイヤーをアクティブ化する
- レイヤーのロックと非表示
- レイヤーを並び替える
- レイヤーの名前を変更する
- レイヤーにファイルをインポートする
- レイヤーを削除する
レイヤーを作成する
Creating layers
あなたは、Page.CreateLayerメソッドを使用して、レイヤーを作成することができます。レイヤーを作成すると、マスターではないレイヤーのリストの一番上に、新しいレイヤーが挿入されます。
次のVBAコードは、"My New Layer"と呼ばれる新しいレイヤーを作成します。:
ActivePage.CreateLayer "My New Layer"
必要に応じて、あなたは、レイヤーを起動することで、発生するイベントに応答するイベント・ハンドラを使用することができます。:
- Document.LayerCreate
レイヤーをアクティブ化する
Activating layers
それぞれのレイヤーは、それが表示されるページのPage.Layersコレクションのメンバーです。Page.Layersコレクションのレイヤーが、そのページに表示される順序で表示されます。-最初のレイヤーは、「スタック」の最上位にあります。そして、最後のレイヤーは、一番下にあります。レイヤーが、追加、並べ替え、または削除された場合、影響を受けたPage.Layersコレクションは、そのページの新しいレイヤー順序を反映するために、ただちに更新されます。
Page.ActiveLayerプロパティが、ページのアクティブ・レイヤーに、直接アクセスを提供する一方、Document.ActiveLayerプロパティは、文書のアクティブ・レイヤーに、直接アクセスを提供します。
あなたは、Layer.Activateメソッドを使用することで、レイヤーをアクティブ化できます。:
ActivePage.Layers("Layer 1").Activate
ロックされたレイヤーをアクティブにしても、ロックは、解除されません。同様に、非表示のレイヤーをアクティブにしても、表示されません。レイヤーのロック解除と表示の詳細については、「レイヤーのロックと非表示」を参照してください。
必要に応じて、あなたは、レイヤーを起動することで、発生するイベントに応答するイベント・ハンドラを使用することができます。:
- Document.LayerActivate
あなたは、レイヤーのアクティブ化を解除すると発生するイベントに応答するイベント・ハンドラを使用することもできます。:
- Document.LayerChange
Layerオブジェクトには、編集可能、および、表示可能なプロパティがあります。それは、レイヤーが、編集可能かどうか、そして、その内容が見えるかどうか(それぞれ)制御します。両方のプロパティは、Booleanです。両方のプロパティをTrueに設定することで、あなたは、編集のためにレイヤーのロックを解除して表示します。しかしながら、いずれかのプロパティをFalseに設定すると、あなたは、レイヤーを編集できないようにロックします。
次のサンプルVBAコードは、ロックしますが、アクティブ・ページのレイヤーを表示します。:
ActivePage.Layers("Layer 1").Visible = True
ActivePage.Layers("Layer 1").Editable = False
これらのプロパティに対する変更の結果は、すぐにオブジェクト・マネージャーに表示されます。
上記の例は、アクティブなページだけに影響します。Document.Pagesコレクションから、ページを指定することで、あるいは、Document.ActivePageプロパティを参照することで、あなたは、与えられたページのレイヤー設定にアクセスすることができます。文書内のすべてのページを変更するために、Document.MasterPageプロパティを使用します。:
ActiveDocument.MasterPage.Layers("Layer 1").Visible = True
ページ作業の詳細については、「ページで作業する」を参照してください。
レイヤーの名前を変更する
Renaming layers
あなたは、Nameプロパティを編集して、レイヤーの名前を変更できます。次のVBAコードは、"Layer 1"の名前を"Layer with a New Name"に変更します。:
ActivePage.Layers("Layer 1").Name = "Layer with a New Name"
レイヤーにファイルをインポートする
Importing files into layers
すべてのサポートされた形式のファイルは、インポートすることができます。
ファイルは、それぞれのインポートされたオブジェクトは、指定されたページの指定されたレイヤに割り当てられるため、Layerレベルでインポートされます。しかしながら、ファイルは、Documentレベルにエクスポートされます。なぜなら、エクスポートされたオブジェクトの範囲は、複数のレイヤと複数のページにわたることができます。(「文書からファイルをエクスポート」を参照)。
Layerクラスは、2つのファイルのインポート・メソッドを持っています。:ImportとImportEx。
サポートされたファイル形式の幅広い選択は、アプリケーションに利用できる膨大な数のフィルタによります。それぞれのフィルタを使用すると、別のグラフィック・アプリケーションのファイルを操作できます。これらのフィルターの使用の詳細については、「インポート・フィルタとエクスポート・フィルタで作業する」を参照してください。
Layer.Importメソッドを理解する
Understanding the Layer.Import method
Layer.Importメソッドは、ファイルをインポートするための基本的な機能を提供します。
次のVBAコードは、ファイルC:\logotype.gifをページ中央のアクティブ・レイヤーにインポートします。:
ActiveLayer.Import "C:\logotype.gif"
ファイルをインポートすると、そのファイルの内容が選択され、文書内の他の選択されたオブジェクトの選択が解除されます。あなたは、この理由から、文書の選択を取得することによって、インポートしたオブジェクトを再配置や大きさ変更できます。:
ActiveDocument.Unit = cdrInch
ActiveSelection.SetSize 3, 2
いくつかのファイル形式は、いくつかのフィルターのいずれかを使用してインポートできます。そのため、それぞれの利用できるフィルタの利点を理解することが、重要です。たとえば、カプセル化されたPostScript (EPS)ファイルを、インポートするとき、あなたは、EPSフィルターとPDFフィルターを選択できます。EPSフィルターは、あなたが、以下のことができます。:
- EPSファイルを印刷できますが、変更できない配置可能なオブジェクトとしてインポートします。
- ファイルのPostScript部分を解釈します。あなたは、そのため、低解像度ヘッダーではなく、ファイル内から元のアートワークをインポートできます。
どのフィルターを使用するかを指定するために、次のVBAの例のように、あなたは、オプションのパラメーター・フィルタを含めることができます。:
ActiveLayer.Import "C:\map.eps", cdrPSInterpreted
Layer.ImportExメソッドを理解する
Understanding the Layer.ImportEx method
Layer.ImportExメソッドは、StructImportOptionsオブジェクトのオプションの使用を通して、インポート・フィルターの遥かに優れた制御を提供します。次のVBAコードは、リンクされたファイルとして、指定されたファイルをインポートします。:
Dim iFilt As ImportFilter
Dim importProps As New StructImportOptions
importProps.LinkBitmapExternally = True
Set iFilt = ActiveLayer.ImportEx("C:\world-map.epsf", cdrAutoSense, importProps)
iFilt.Finish
レイヤーを削除する
Deleting layers
既に説明したように、それぞれのレイヤーは、それが表示されるページのPage.Layersコレクションのメンバーです。
あなたは、そのDeleteメソッドを呼び出すことで、レイヤーを削除することができます。レイヤーの削除は、文書内のすべてのページのレイヤー上のすべての図形を取得し、文書からそのレイヤーを削除します。
次のVBAコードは、"Layer 1"と呼ばれるレイヤーを削除します。:
ActivePage.Layers("Layer 1").Delete
必要に応じて、あなたは、レイヤーを削除することによって、発生するイベントに応答するイベント・ハンドラを使用することができます。:
- Document.LayerDelete