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

8.5-レイヤーで作業する

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

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
このエントリーをはてなブックマークに追加