第 16 章 VISIO のDOCUMENT オブジェクト、PAGE オブジェクト、および SHAPE オブジェクトの使い方
Page オブジェクトは図面ページを表し、背景ページ、前景ページのどちらに対しても使用できます。図面ファイルへの参照を設定すると、作業対象の図面ページの Page オブジェクトを取得することが必要になります。
ユーザーに図面を作成または表示させてからプログラムを実行するようにソリューションを設計している場合は、アクティブなページに対象の図面があると仮定して問題ありません。この場合、Visio® インスタンス内のアクティブなページを取得するか、アクティブな図面を取得してその Pages コレクションからページを取得することができます。
このセクションの内容...
図面ページに対して操作を行うには、Page オブジェクトへの参照を取得する必要があります。
Page オブジェクトおよび Visio オブジェクト モデルで上位にある関連するオブジェクト
ファイルからページを取得するには、Document オブジェクトまたは ThisDocument オブジェクトの Pages コレクションを取得し、そのコレクションから Page オブジェクトを取得します。インデックスを使って Pages コレクション内のページを取得できます。また、ページ名が分かっている場合は名前で取得することもできます。
たとえば、"エンジニアリング" という名前のページを検索するとします。Set pagObj = ThisDocument.Pages.Item("エンジニアリング")
アプリケーションのアクティブなページを取得するには、グローバル オブジェクトまたは Application オブジェクトの ActivePage プロパティを取得します。グローバル オブジェクトの使用例を以下に示します。
Set pagObj = ActivePage
グローバル オブジェクトの詳細については、「第 15 章 Visio での Microsoft VBA プログラミング」の「Visio グローバル オブジェクトの使用」を参照してください。
ページ情報は、Name や Background などのプロパティから取得することができます。Name プロパティと Background プロパティは、[ページ設定] ダイアログ ボックス ([ファイル] メニューから [ページ設定] を選択) の [ページ プロパティ] タブのテキスト ボックスに表示される情報に対応しています。ページの Document プロパティは、そのページを含む Document オブジェクトを返します。
Page オブジェクトにもプロパティがあり、これらのプロパティは図面ページに含まれているオブジェクトを調べるのに使用できます。
さらに、Page オブジェクトの PageSheet プロパティから、図面ページの寸法やその他の外観に関する情報を取得できます。このプロパティは Shape オブジェクトを返します。Shape オブジェクトの Cells プロパティはページの数式を持つ Cell オブジェクトを返します。これらの Cell オブジェクトは、ページのシェイプシート (ShapeSheet®) ウィンドウに表示されるセルに対応しています。
ページの幅を返すステートメントの例を以下に示します。
Set shpObj = pagObj.PageSheet
Set celObj = shpObj.Cells("PageWidth")
dWidth = celObj.Result("mm")
数式の使い方の詳細については、「第 17 章 数式のオートメーション化」を参照してください。
Visio ファイルは、複数のページを持つことができます。図面の各ページに個別の図形を持たせることができ、あるページを別のページの背景に使用することもできます。
複数ページのファイルをプログラムから作成するには、ページをファイルに追加して、それらのページに背景を割り当てます。図面の縮尺、ページの幅と長さなどのページ設定も変更できます。
新規ファイルには、最初は 1 ページしかありません。ページを追加するには、図面の Pages コレクションの Add メソッドを使用します。例を以下に示します。
Set pagObj = ThisDocument.Pages.Add
コレクションに新規ページを追加したら、Page オブジェクトの Name プロパティを使用してページに名前を付けます。