KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

VB/VBAトップへ ▼カッ飛び最後 

  マスタシェイプの更新で一括更新

01: 名前:masa投稿日:2007/10/18(木) 18:25
Visioで図面ステンシルにあるマスタシェイプを編集すると、「すべてのインスタンスを更新しますか?」
のようなメッセージが表示され、「はい」を選ぶと図面上にある対象のシェイプもすべて更新されますが、
マクロで図面ステンシルのマスタシェイプを編集した場合、
図面上にある対象のシェイプは更新されませんでした。

マクロの記録をとってみたところ、図面上のシェイプが更新されるところについては、
何も記録されていないようでした。
マクロでは手動変更したときのように、図面上のシェイプを一括更新する
ということは出来ないのでしょうか。

02: 名前:yoda投稿日:2007/10/18(木) 21:42
なるほど、そうなりますねー。
たぶん、マスターの図形編集のウインドウで、図形を選択して、
編集したのち、閉じるということを、まねしないといけないのでしょう。
以下のような、マクロで試してみたら、できました。
Sub test()
Dim mst As Visio.Master
Dim shp As Visio.Shape
Dim win As Visio.Window

Set mst = ActiveDocument.Masters(1)
Set win = mst.OpenDrawWindow
win.Activate
Set shp = mst.Shapes(1)
ActiveWindow.SelectAll
ActiveWindow.Selection(1).Cells("FillForegnd").Formula = "THEMEGUARD(THEME(""AccentColor5""))"
Application.AlertResponse = 6
ActiveWindow.Close
Application.AlertResponse = 0
End Sub

03: 名前:visGeek投稿日:2007/10/19(金) 07:13
MasterオブジェクトのOpenメソッドのヘルプをご確認ください。

04: 名前:masa投稿日:2007/10/19(金) 10:24
>yoda様
マクロの記載ありがとうございます。
>visGeek様
助言ありがとうございます。

とても助かりました。ありがとうございました。
Visioは奥が深いですね。

05: 名前:yoda投稿日:2007/10/19(金) 13:04
MasterのOpenメソッドはいいですね。知りませんでした。


VB/VBAトップへ ▲カッ飛び先頭