方法: Visio 図面の図形をプログラムによってコピーして貼り付ける
プログラムによって図面のあるページ上の図形をコピーし、同じ図面の新しいページに貼り付けることができます。貼り付ける場所は、既定の場所 (アクティブ ウィンドウの中央) または元のページ上の場所と同じ座標位置のどちらかを選択できます。
図形のコピーと貼り付け
オブジェクト モデルの詳細については、Microsoft.Office.Interop.Visio.Shape.DrawRectangle、Microsoft.Office.Interop.Visio.Shape.DrawOval、Microsoft.Office.Interop.Visio.Shape.Copy、Microsoft.Office.Interop.Visio.Shape.Paste の各メソッドおよび Microsoft.Office.Interop.Visio.VisCutCopyPasteCodes.visCopyPasteNormal フラグの VBA リファレンス ドキュメントを参照してください。
図形を別のページの中央にコピーするには
あるページの図形をコピーして別のページの中央に貼り付ける方法を次の例に示します。
Me.Application.Documents.Add("") Dim copyPage As Visio.Page Dim pastePage As Visio.Page Dim rectangle As Visio.Shape = Nothing Dim oval As Visio.Shape = Nothing Dim visioPages As Visio.Pages = Me.Application.ActiveDocument.Pages visioPages.Add() Try copyPage = visioPages(1) rectangle = copyPage.DrawRectangle(1.1, 2.2, 4.5, 6.7) oval = copyPage.DrawOval(1, 8.75, 3.5, 6.25) Catch ex As Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try Try pastePage = visioPages(2) rectangle.Copy(Visio.VisCutCopyPasteCodes.visCopyPasteNormal) pastePage.Paste(Visio.VisCutCopyPasteCodes.visCopyPasteNormal) oval.Copy(Visio.VisCutCopyPasteCodes.visCopyPasteNormal) pastePage.Paste(Visio.VisCutCopyPasteCodes.visCopyPasteNormal) Catch ex As Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try
this.Application.Documents.Add(""); Visio.Page copyPage; Visio.Page pastePage; Visio.Shape rectangle = null; Visio.Shape oval = null; Visio.Pages visioPages = this.Application.ActiveDocument.Pages; visioPages.Add(); try { copyPage = visioPages[1]; rectangle = copyPage.DrawRectangle(1.1, 2.2, 4.5, 6.7); oval = copyPage.DrawOval(1, 8.75, 3.5, 6.25); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } try { pastePage = visioPages[2]; rectangle.Copy(Visio.VisCutCopyPasteCodes.visCopyPasteNormal); pastePage.Paste(Visio.VisCutCopyPasteCodes.visCopyPasteNormal); oval.Copy(Visio.VisCutCopyPasteCodes.visCopyPasteNormal); pastePage.Paste(Visio.VisCutCopyPasteCodes.visCopyPasteNormal); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); }
図形をコピーして同じ位置に貼り付ける
オブジェクト モデルの詳細については、Microsoft.Office.Interop.Visio.Shape.DrawRectangle、Microsoft.Office.Interop.Visio.Shape.DrawOval、Microsoft.Office.Interop.Visio.Shape.Copy、Microsoft.Office.Interop.Visio.Shape.Paste の各メソッドおよび Microsoft.Office.Interop.Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate フラグの VBA リファレンス ドキュメントを参照してください。
貼り付けられる情報の書式を制御したり、(オプションで) ソース ファイル (たとえば Microsoft Office Word 文書) へのリンクを作成したりするには、PasteSpecial メソッドを使用します。
図形と図形の位置を別のページにコピーするには
あるページの図形をコピーして別のページの同じ座標位置に貼り付ける方法を次の例に示します。
Me.Application.Documents.Add("") Dim copyPage As Visio.Page Dim pastePage As Visio.Page Dim rectangle As Visio.Shape = Nothing Dim oval As Visio.Shape = Nothing Dim visioPages As Visio.Pages = Me.Application.ActiveDocument.Pages visioPages.Add() Try copyPage = visioPages(1) rectangle = copyPage.DrawRectangle(1.1, 2.2, 4.5, 6.7) oval = copyPage.DrawOval(1, 8.75, 3.5, 6.25) Catch ex As Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try Try pastePage = visioPages(2) rectangle.Copy(Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate) pastePage.Paste(Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate) oval.Copy(Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate) pastePage.Paste(Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate) Catch ex As Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try
this.Application.Documents.Add(""); Visio.Page copyPage; Visio.Page pastePage; Visio.Shape rectangle = null; Visio.Shape oval = null; Visio.Pages visioPages = this.Application.ActiveDocument.Pages; visioPages.Add(); try { copyPage = visioPages[1]; rectangle = copyPage.DrawRectangle(1.1, 2.2, 4.5, 6.7); oval = copyPage.DrawOval(1, 8.75, 3.5, 6.25); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } try { pastePage = visioPages[2]; rectangle.Copy(Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate); pastePage.Paste(Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate); oval.Copy(Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate); pastePage.Paste(Visio.VisCutCopyPasteCodes.visCopyPasteNoTranslate); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); }
参照
処理手順
方法: プログラムによって Visio 図面に図形を追加する