第69回
MSDN オフライン セミナー
VISIO 2007
VBA プログラミング入門
マクロソフト株式会社 Visioグループ
テクノロジースペシャリスト
木村 佳代
ゕジェンダ
Visio ソリューションの例
Visio オブジェクトモデル
VBA サンプルコード、TIPS
Visio 2007 新機能
Visio ソリューションの公開
Visio ソリューションの開発
Visio ソリューションは
実物をモデル化した図形(シェプ)と
図面に対して特定の制御を行なう
Visio ソリューションの例
Microsoft Office Visio 内部統制文書化ツール
http://www.microsoft.com/downloads/details.aspx?FamilyId=ABB8F9BB-952A-4160-A664-77018DD765A3&displaylang=ja
フォルダアクセス権マップ
http://www.visio.jp/dl/accessright/accessright.htmlWeb プレゼンス
http://www.visio.jp/dl/visWebPresence/index.htmlMicrosoft Active Directory Topology Diagrammer (ADTD)
http://www.microsoft.com/downloads/details.aspx?familyid=cb42fc06-50c7-47ed-a65c-862661742764&displaylang=en
SQL Server 2005 Data Mining Add-ins for Office system
http://www.microsoft.com/downloads/details.aspx?FamilyId=7c76e8df-8674-4c3b-a99b-55b17f3c4c51&displaylang=ja
Microsoft®Office Visio®2007 で実現 内部統制の整備には、業務プロセスの可視化とプロセスに存在するリスクの可視化が必要となります。企業には様々な業務プロセスが存在し 多くは複数の部署が関連する業務プロセスです。業務プロセスの文書化は、内部統制の整備作業でもっとも時間のかかるプロセスの1つとい われており、この作業を効率化することが内部統制の早期構築につながります。 Visio 2007 では、業務フローチャートを効率的に作成するための機能が大幅に強化されています。
コンプライアンス強化と業務効率化を実現
直感的な操作を実現する、使い慣れたOffice準拠のンターフェスで見栄えのする業務フロー図をすばやく作成 無料の内部統制文書化ツールを活用することで文書化作業をより効率化できます。 作図補助・自動化機能で作成時間を短縮 図形同士の接続を自動化するオートコネクトは ワンクリックで図形の均等配置とコネクタの接続を実現 図形を移動しても、線の接続関係は維持されるので 手作業で修正する必要もありません。 コネクタ上に図形を配置するだけで、自動的にコネクタが 分割、再接続されます。 豊富に用意された作図を効率化するスマートシェプや テンプレートを利用して作図を効率化します。 ビジネスデータとVisio図面の統合が簡単に データをVisioへインポート、リンク ExcelやSQL Serverなどのデータベースと ドラッグ ゕンド ドロップする簡単にリンクし Visioの図形データに取り込みが可能。 ビジネスデータとVisio図面の統合が簡単に Visioからデータをエクスポート 部門、処理内容、リスク、コントロールなどをVisioの図形データに 入力し、レポートに出力すれば、RCMや業務記述として出力可能 レポートはExcel、HTML、Visio図面、XMLなどの形式で出力可能 Excelに出力した RCMのメージ リスクやコントロールを可視化 図形に格納されたリスクやコントロールのデータを 図形の横や上に表示したり、データバーやゕコン などを使った視覚的な表現が可能 重要度の高いリスクや実施頻度の高い統制などを 強調表示することで、的確な統制活動を実現 フロー図 業務記述 RCM 内部統制文書化ツールで業務プロセスを文書化 業務プロセスの文書化を効率的に行うための専用テンプレート Webサトから無料でダウンロードできます。 リスク、コントロールを可視化する専用のシェプを用意 Excelで作成したRCMやプロセス情報からVisioの業務フロー図を生成 Visioで作成、編集した業務フロー図からRCM、業務記述書を簡単に生成 Excelに加えた変更をVisio図面に簡単に反映フォルダ ゕクセス権マップ
フゔルサーバー上の共有フォルダの構成とゕクセス権を
VisioやExcelに出力し、設定状況を一目で把握できるツール
Active Directoryから共有フォルダのリストを取得可能 VisioやExcelへ出力する際、階層の深さを指定可能 共有ゕクセス権、 NTFS ゕクセス権の設定状況を表示 指定したゕカウントが設定されているフォルダをビジュゕルに検索Web プレゼンス テンプレート
Visio で作成した図面に
Microsoft Office Communicator のプレゼンス情報を
付与しWeb形式で保存
図面上でリゕルタムにプレゼンス情報を把握
応対可能 退席中 オフラン 取り込み中 プレゼンス ゕコン ダウンロードURL : http://www.visio.jp/dl/visWebPresence/index.htmlActive Directory Topology Diagrammer
(ADTD)
ActiveX Data Objects (ADO) を利用して
Active Directory 構造、Exchange 組織を
Visio に出力するツール
Active Directory トポロジー
ドメン、サト、OU構造
Exchange 組織
SQL Server 2005
Data Mining Add-ins for Office system
SQL Server 2005 Analysis Services の
データマニング モデルの処理結果を
Visio の開発手法
図形開発
クリップゕート的な図形の作成 (図形編集機能)
形状や動きが変わる図形の作成 (シェプシート)
VBA
よく使う機能や操作の自動化
マクロの記録機能を活用
ゕドン/ゕドオン
Visio 機能の拡張
VB、VB.NET、C#、C++ などの開発言語を利用
Visual Studio Tools for Office を利用すると便利
Visio 開発プラットフォーム
シェプ シート
シェプの立ち振る舞いを定義
全オブジェクトにシェプシートが存在
スプレッド シート形式
シェプシートの開き方
[ウゖンドウ] メニュー
[シェプシートの表示]をクリック
開発者モードで実行時し
シェプのショートカット メニューから起動
[ツール]メニュー – [オプション] –[詳細設定]
Visual Basic for Applications (VBA)
Visioには 他のOffice と同様に
VBA プログラミング環境が用意されている
VBよりも高速に動作
マクロの記録
1. [ツール] メニュー - [マクロ] - [新しいマクロの記録] をクリックします。 2. [マクロ名] ボックスにマクロ名を入力します。 3. [OK] をクリックし、マクロの記録を開始します。 4. マクロとして記録する操作を実行します。 マクロの記録時は、マウスを使用してコマンドとオプションをクリックでき、 図面上の図形およびオブジェクトで作業ができます。 5. マクロの記録を停止するには、 [記録]ツールバーの で [記録終了 ] をクリックします。 Visual Basic Editor で記録されたコードを確認できます。特別なオブジェクト
ThisDocument オブジェクト
Visio フゔルを表すDocument オブジェクト
プロジェクト内のコードから参照すると
そのプロジェクトのDocument オブジェクトを返す
Global オブジェクト
Visio フゔルの VBA プロジェクト内の
コードのみで使用
オブジェクトに直接ゕクセス
Document オブジェクトの利用
図面を開く
Public Sub OpenDocument_Example()
'既存図面を開くには Open メゾットを利用 '新規図面を作成するには Add メゾットを利用
Dim vsoDocument As Visio.Document
'既存の図面を開く
Set vsoDocument = Documents.Open("C:¥Demo¥Sample.vsd")
'新規図面を開く
Set vsoDocument = Documents.Add("")
'テンプレートを開く
Set vsoDocument = Documents.Add("C:¥Demo¥Sample.vst")
Document オブジェクトの利用
図面を閉じる
Sub DocumentClose_Example() '図面を閉じる ThisDocument.Close End SubPage オブジェクトの利用
ページの追加
Public Sub Add_Page_Example()
'ページを追加する
Set pagObj = ThisDocument.Pages.Add
'ページ名を変更する
For Each objPage In ThisDocument.Pages I = I + 1
objPage.Name = "図面" & I Next
Shape オブジェクトの利用
シェプ数をカウントする
Sub Shape_Count_Example()
Dim oShapes As Visio.Shapes Dim oShape As Visio.Shape Dim Counter As Integer
Set oShapes = ActivePage.Shapes Counter = 0
‘図面上のシェプ数をカウント For Each oShape In oShapes
If oShape.Type = visTypeShape Then Counter = Counter + 1
End If Next
Debug.Print Counter
Cell オブジェクトの利用
シェプシートの参照
Sub ShapeCellsSRC_Example()
Dim shpObj As Visio.shape
'ゕクテゖブなシェプを取得
Set shpObj = ActiveWindow.Selection(1)
‘ShapeData セクションの1行目、Valueセルの値を設定 ‘shape.CellsSRC( <Section>, <Row>, <Cell>)
shpObj.CellsSRC(visSectionProp, 0, visCustPropsValue).FormulaU = 12
ローカル名と汎用名
Visio 2000 以降、ローカル名と汎用名の
両方を使用してVisio オブジェクトを参照できる
Visio 2003 以降、シェプシートでは
セル数式と値に汎用名だけが表示される
汎用名の利用を推奨
例: “処理” マスタシェプ
ローカル名 : Master.Name = “処理”
汎用名 : Master.NameU = “Process”
シェプの取得
Public Sub GetShape_Example()
Dim vsoShape As Visio.Shape
'ゕクテゖブページ内のシェプ一覧を表示
For Each vsoShape In ActivePage.Shapes Debug.Print vsoShape.NameU
Next
ステンシルの取得
Sub GetStenci_Example()
Dim vsoDocument As Visio.Document Dim vsoDocuments As Visio.Documents
Set vsoDocuments = Visio.Documents
'ステンシルの一覧を表示
For Each vsoDocument In vsoDocuments Debug.Print vsoDocument.Name
Next
図面ページに
マスタシェプをドロップする
Public Sub DropShape_Example()
Dim stencil As Visio.Document, mstCircle As Visio.Master
'ステンシルを指定 Set stencil =
ThisDocument.Application.Documents.Open("BASFLO_M.VSS")
ThisDocument.Application.Windows(ThisDocument.Index).Activate
'マスタシェプを指定
Set mstCircle = stencil.Masters.ItemU("Process")
‘シェプをページにドロップ X座標、Y座標を指定 ‘座標はンチで指定
ThisDocument.Pages(1).Drop mstCircle, 2, 10
Connect オブジェクト
Visio 固有のオブジェクト
図形と図形の接続関係を表す
接続元(GlueFrom)、接続先(GlueTo)
'GlueTo メソッドを使用して 1 次元図形の始点を ‘下の 2 次元図形の右上の頂点 (Geometry1.X3) に接着 vsoCellGlueFromBegin.GlueTo vsoCellGlueToObject 'GlueTo メソッドを使用して 1 次元図形の終点を ‘上の 2 次元図形の左下の頂点 (Geometry1.X1) に接着 vsoCellGlueFromEnd.GlueTo vsoCellGlueToObject2AutoConnectオブジェクトの利用
コネクタ接続
Public Sub AutoConnectShapes() Dim vsoShape1 As Visio.Shape Dim vsoShape2 As Visio.Shape
Dim vsoConnectorShape As Visio.Shape
Set vsoShape1 = Visio.ActivePage.Shapes("判断") Set vsoShape2 = Visio.ActivePage.Shapes("処理")
Set vsoConnectorShape = Visio.ActivePage.Shapes("動的コネクタ")
vsoShape1.AutoConnect vsoShape2, visAutoConnectDirRight, vsoConnectorShape End Sub
Visio 2007 に
追加されたオブジェクト
データソースへの接続、図形とデータのリンク
データグラフゖック表示、図形の自動接続
(オートコネクト) など、Visio 2007 の新機能を
プログラムにより制御可能
DataColumn
DataColumns
DataConnection
DataRecordset
DataRecordsets
GraphicItem
GraphicItems
DataRecordset オブジェクトの利用
データ接続
Public Sub AddDataRecordset_Example() Dim strConnection As String
Dim strCommand As String Dim strOfficePath As String
Dim vsoDataRecordset As Visio.DataRecordset strOfficePath = Visio.Application.Path
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "User ID=Admin;" _
& "Data Source=" + strOfficePath + "SAMPLES¥1041¥ASTMGT.XLS;" _ & "Mode=Read;" _
& "Extended Properties=""HDR=YES;IMEX=1;MaxScanRows=0;Excel 12.0;"";" _ & "Jet OLEDB:Engine Type=34;"
strCommand = "SELECT * FROM [ネットワーク機器$]"
Set vsoDataRecordset = ActiveDocument.DataRecordsets.Add(strConnection, strCommand, 0, “ネットワーク機器") End Sub
DropLinked メゾットの利用
データをリンクした図形の作成
Public Sub DropLinked_Example() Dim vsoShape As Visio.Shape Dim vsoMaster As Visio.Master Dim dblX As Double
Dim dblY As Double
Dim lngDataRowID As Long
Dim vsoDataRecordset As Visio.DataRecordset Dim intRecordesetCount As Integer
intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count
Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount) Set vsoMaster = Visio.Documents("SERVER_M.VSS").Masters.ItemU("Database server") dblX = 1
dblY = 10
lngDataRowID = 1
Set vsoShape = ActivePage.DropLinked(vsoMaster, dblX, dblY, vsoDataRecordset.ID, lngDataRowID, True) End Sub
Selection.DataGraphic プロパテゖの利用
データ グラフゖックの適用
Public Sub ApplyDataGraphic()
Dim vsoSelection As Visio.Selection
'ゕクテゖブ ウゖンドウ内の全オブジェクトを選択 ActiveWindow.SelectAll
Set vsoSelection = ActiveWindow.Selection 'データグラフゖックを適用
vsoSelection.DataGraphic = ActiveDocument.Masters("カスタムデータグラフゖック") End Sub
シェプシートからの
プログラム実行
利用セクション
[Actions] セクション
[Events] セクション
関数
RUNADDON関数
マクロやゕドオンを実行
CALLTHIS関数
プロシージャの呼び出し
Visio ソリューションの公開
ステンシル
(.vss および .vsx フゔル)
テンプレート
(.vst および .vtx フゔル)
Visio ソリューション ラブラリ ゕドオン
(.vsl フゔル)
実行可能形式のゕドオン
(.exe フゔル)
ヘルプ フゔル
(.chm および .aw フゔル)
フゔルパスの指定
Visio が既定でフゔルの検索や保存をする場所を指定
[ツール] メニューの [オプション] - [詳細設定] タブ
[フゔル パスの設定] で指定
既定設定 ( Microsoft Windows Vista の場合 )
個人用図形
ユーザー¥ユーザー名¥ドキュメント¥個人用図形
図面
ユーザー¥ユーザー名¥ドキュメント
テンプレート、ステンシル、ヘルプ
Program Files¥Microsoft Office¥Office12¥言語
ゕドン
開発リフゔレス
ソフトウェゕ開発キット(SDK)
Visio の図形を設計、開発およびプロダクテゖブ ツールです。
スマート シェプを使用したプロジェクト管理、仕様と設計、開発、
検証を容易にするカスタム作業環境を提供します。
ヘルプ
Visio 2007 を使用したソリューションの開発の概要、
プログラミング タスク、サンプル、リフゔレンスが含まれています。
参考情報
MSDN Visio 技術資料一覧
http://www.microsoft.com/japan/msdn/office/understanding/visio.aspx- SDK のダウンロード、情報ラブラリ
- Visio カスタマズ テクニック 講座
Visio 自習書
http://www.microsoft.com/japan/office/2007/visio/trainingtext.mspx- 作図編、シェプシート編、VBA編ほか、他製品との連携も用意
Visio ブログ
http://blogs.msdn.com/visioj/
Visio コミュニテゖ サト
http://www.visio.jp/
Visio 2007 製品体系
機能 一新した「作業の開始」画面 オートコネクト機能 テーマ機能 隠し情報の削除 Web や PDF, XPS 形式での共有 機能 データ リンク、データ グラフゖック機能 ピボット ダゕグラム機能 新しいテンプレート (ITIL 図、バリュー ストリーム マップ) テンプレートのサンプル表示 Standard の機能全て 主な用途 専門的な作図 システム管理、業務フロー、仕様書 レゕウト図など データと連携をした作図 データと図面の一元管理 情報の可視化と分析 主な用途 図を含んだ文書作成 企画書、提案書、組織図などまとめ
Visio の開発手法
クリップゕート的な図形の作成 (図形編集機能)
形状や動きが変わる図形の作成 (シェプシート)
よく使う機能や操作の自動化 (VBA)
ゕドン/ゕドオン (Visual Studio / VSTO)
VBA プログラミング環境が用意
Office VBA の知識をVisio VBA でも活用できる
Visio 2007 の可能性は無限大
ぜひご活用ください!!
Visio Professional 2007
知って、試して、トクする
キャンペーン実施中!!
http://go.microsoft.com/?linkid=7705458
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.