KoMaDo   VISIO SQUARE : 図形・操作  ■ Headline ■ HOME    

図形・操作トップへ ▼カッ飛び最後 

  ページ追加したときの制御について

01: 名前:けいみん投稿日:2007/02/20(火) 17:15
あるページに部門バンドが置かれている状態で、ページ追加をすると、
サブウィンドウが出ます。(部門バンドを新しいページへコピーするかどうか)
このサブウィンドウを表示しないようにすることはできるのでしょうか?

Application.AlertResponseプロパティを変更してみましたがだめでした。
さらに調べてみたところ、部門バンドのシェイプシートのEventDropと
いうところにRUNADDON("CFF")と設定されていました。
アドオンということは、プロセスが別ということで
Application.AlertResponseプロパティも効かないのでしょうか。
回避策を知っている方いましたら、回答よろしくお願いします。

02: 名前:yoda投稿日:2007/02/20(火) 18:14
部門バンドは、Visio本体ではなく、サードパーティーが開発した
プログラムで動いている、いわゆるアドオンです。その中身は
公開されていませんので、ユーザーがカスタマイズすることには、
限界があります。また、予期しないバグが見つかることもあります。
この部門連係バンドも、例外ではありません。
以下のサンプルプログラムは、MS社の英語の掲示板で質問された
ものを、一部修正したものですが、ここでは、AlertResponseは、
機能していると思います。新しいページを作って、部門バンドをコピー
するものですが、確認のダイアログは出てきません。
この場合のバグらしきものは、コピー&ペーストするときに、
部門名が、元のステンシルと同じになってしまうというもので、
このバグらしきものは、フィックスされていません。
苦肉の策として、図面マスターのテキストも編集するという、
行を1行追加しましたが、対処療法でしかありません。
Sub Cross_Functional()
Dim page1 As Long
Dim page2 As Long
Dim sh As Shape, shp2 As Visio.Shape
Dim vsoPage1 As Visio.Page
page1 = Application.ActivePage.ID
Application.AlertResponse = 2
Set vsoPage1 = ActiveDocument.Pages.Add
page2 = Application.ActivePage.ID
Application.ActiveWindow.Page = Application.ActiveDocument.Pages.ItemFromID(page1)
For Each sh In ActivePage.Shapes
If InStr(1, sh.NameU, "Functional band", vbTextCompare) = 1 Then
Application.ActiveWindow.DeselectAll
ActiveWindow.Select sh, visSelect
Application.ActiveWindow.Selection.Copy
sh.Master.Shapes(1).Text = sh.Text
End If
Next
Application.ActiveWindow.Page = Application.ActiveDocument.Pages.ItemFromID(page2)
Application.ActiveWindow.Page.Paste
Application.AlertResponse = 0
End Sub

03: 名前:けいみん投稿日:2007/02/21(水) 09:32
yodaさま。
お世話になります。
AlertResponseについていろいろと試してみましたが、
やはりダイアログが出てしまいます。
ちょっとあきらめモードですが、もう少し調べてみます。
ありがとうございました。

04: 名前:yoda投稿日:2007/02/21(水) 10:07
私は、Visio2007でテストして、AlertResponseが機能している
ことを確かめたのですが、2003で試してみたら、だめでした。
2003ではだめなのかも知れませんね。


図形・操作トップへ ▲カッ飛び先頭