2

Visio ダイアグラムを自動化するスクリプトがあります。このスクリプトは、Office の公式サイトに基づいています

正直なところ、「形状データ」の値を取得する方法がわかりません。この形状データは、たとえば、PC ステンシルから (シリアル番号、建物、場所など) です。この値をプログラムで追加および修正したいのですが、オブジェクトモデルの参照を確認しましたが、うまくいきませんでした。

誰かが私を助けることができますか?

コードは次のとおりです。Visio ドキュメントを開き、PC ステンシルを図面に追加します。

$application = New-Object -ComObject Visio.Application
$application.visible = $true
$documents = $application.Documents
$document = $documents.Add("Basic Network Diagram.vst")
$pages = $application.ActiveDocument.Pages
$page = $pages.Item(1)


$ComputerStencil = $application.Documents.Add("Computers and Monitors.vss")



$pc = $ComputerStencil.Masters.Item("PC")
$shape1 = $page.Drop($pc, 2.2, 6.8)
$shape1.Text = "Some text...."

お時間をありがとうございました!!

4

2 に答える 2

3

Visio オートメーション ライブラリは、次のことに役立ちます。

これを C# で使用する方法の例を次に示します。PowerShell で使用するのは難しくありません。

var app = new IVisio.Application();
var doc = app.Documents.Add("");
var page = doc.Pages[1];
var shape1 = page.DrawRectangle(1, 1, 3, 4);
VisioAutomation.CustomProperties.CustomPropertyHelper.Set(shape1,"Hello","World");
var props = VisioAutomation.CustomProperties.CustomPropertyHelper.Get(shape1);

Visio PowerShell Moduleを使用すると、コードは次のようになります。

Set-StrictMode -Version 2
$ErrorActionPreference = "Stop"

Import-Module Visio

$app= New-VisioApplication
$doc = New-VisioDocument
$stencil_net = Open-VisioDocument "Basic Network Diagram.vst"
$stencil_comp = Open-VisioDocument "Computers and Monitors.vss"


$pc_master = Get-VisioMaster "PC" $stencil_comp 
$shapes = New-VisioShape -Masters $pc_master -Points 2.2,6.8
Set-VisioText "Some Text..."
Set-VisioCustomProperty -Name "prop1" -Value "val1"
Set-VisioCustomProperty -Name "prop2" -Value "val2"


$shapedata_col = Get-VisioCustomProperty -Shapes $shapes 
foreach ($shapedata in $shapedata_col)
{
    Write-Host "--------------------------------------"
    Write-Host Name $shapedata.Name
    Write-Host Type $shapedata.Type
    Write-Host Value $shapedata.Value
    Write-Host Prompt $shapedata.Prompt
    Write-Host Ask $shapedata.Ask
    Write-Host Calendar $shapedata.Calendar
    Write-Host Format $shapedata.Format
    Write-Host Invisible $shapedata.Invisible
    Write-Host Label $shapedata.Label
    Write-Host LangId $shapedata.LangId
    Write-Host ShapeID $shapedata.ShapeID
    Write-Host SortKey $shapedata.SortKey
}

下部に、形状データを設定および取得する方法が表示されます。

于 2013-02-06T17:01:58.790 に答える
0

図面を html としてエクスポートし、結果の data.xml を解析することもできます。

于 2013-09-05T16:31:50.760 に答える