- 01: 名前:タニ投稿日:2005/11/09(水) 14:48
- はじめまして。早速質問させてください。
Visioマクロを使って、2週間程度ですが、いろいろ調べてみたのですが、使い方がいまいち理解できず困っています。
現在は、Wordマクロから、Visioのシェイプを動かしています。
<<実施したい事>>
・Visioの図形全てを選択
・線の色を黒
・図形内の文字列を黒
にしようと考えています。
その後、最後に図形内の文字列に取消線がついていないかどうか調べるために、以下のようなソースを作成しました。
しかし、1つずつ図形を処理しているので、速度が遅いです。
<<教えていただきたい事>>
@activewindow.selectallで選択した図形を、一括で
・線の色を黒
・文字の色を黒
にできますでしょうか?
activewinow.selection.〜←ここに何か記述すればできるのかな?と考えていますが、できますか?
Aその他、以下のソースの処理速度を上げる方法は何かありますか?
With VisioObjPage
' Visioオブジェクト内のシェイプを1つずつ処理する
For Each VisioObjShape In .Shapes
With VisioObjShape
' Visioシェイプの文字行数を取得
For iCount = 0 To .RowCount(visSectionCharacter) - 1
' 文字列を黒に修正
.CellsSRC(visSectionCharacter, visRowCharacter + iCount, visCharacterColor) = 0
' 文字列の取消線有無を取得
If (.CellsSRC(visSectionCharacter, visRowCharacter + iCount, visCharacterStrikethru) = 1) Then
' 文字列に取消線がある場合は,ResultFlgOnにする
ResulftFlgOn = True
End If
Next iCount
' Visioシェイプ内の線オブジェクトを調査する
.CellsSRC(visSectionObject, visRowLine, visLineColor) = 0
End With
Next
End With
以上説明不足かもしれませんが、何かしら情報をお願いいたします。
- 02: 名前:yoda投稿日:2005/11/09(水) 15:29
- @ は、ActiveWindow.Selection.LineStyle = "Red" で、できると思います。
実行前に、書式⇒スタイルの定義⇒名前⇒Red⇒線⇒色⇒赤 としておきます。
- 03: 名前:yoda投稿日:2005/11/09(水) 15:43
- A は、特にないと思います。
ResulftFlgOn = True の次に、
Exit For を入れるくらいしか、思いつきません。
- 04: 名前:タニ投稿日:2005/11/09(水) 15:50
- yoda様回答ありがとうございます。
02ですが、少しタニのイメージと違っています。
ごめんなさい。
実行前に、書式⇒スタイルの定義⇒名前⇒Red⇒線⇒色⇒赤も含めて自動で行いたいです。
方法が無いのですかね。
activewinow.selection.CellsSRC(visSectionCharacter, visRowCharacter + iCount, visCharacterColor) = 0
のような使い方のできるメソッド?があるかと思っていました。
03については、そうですね。@が解決できれば、exit forをいれようと考えていました。
ありがとうございます。
もうしばらく回答をお待ちしています。
- 05: 名前:yoda投稿日:2005/11/09(水) 15:53
- @ と全く同じ質問が、英文のサイトでも、出ていました。
単なる偶然でしょうか?
「Discussions in visio.developer.vba」
http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.visio.developer.vba&lang=en&cr=US [source] [check]
- 06: 名前:yoda投稿日:2005/11/09(水) 15:55
- >実行前に、書式⇒スタイルの定義⇒名前⇒Red⇒線⇒色⇒赤も含めて自動で行いたいです。
Visio2003の場合なら、マクロの記録で、簡単に作れます。
わずか数行です。
- 07: 名前:タニ投稿日:2005/11/09(水) 15:58
- 英語は分かりません。読めません。
偶然です。マルチポスト?はしてません。
そちらは解決してるのでしょうか?
02と同じような記述がありますが、タニのイメージとは少し違います。
- 08: 名前:タニ投稿日:2005/11/09(水) 16:59
- Visio2000ですが、
書式⇒スタイルの定義⇒名前⇒Red⇒線⇒色⇒赤
はどのようにすればできますでしょうか?
2000でも可能ですか?
ご教授ください。
- 09: 名前:yoda投稿日:2005/11/09(水) 17:18
- 2000では、マクロの記録ができません。
2003で。記録をとると以下のようになります。
Dim vsoStyle1 As Visio.Style
Application.ActiveDocument.Styles.Add "Red", "Normal", True, True, True
Set vsoStyle1 = Application.ActiveDocument.Styles.ItemFromID(6)
vsoStyle1.CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = 2
- 10: 名前:タニ投稿日:2005/11/10(木) 09:39
- yodaさん、ご回答ありがとうございます。
大変参考になりました。
ありがとうございました。
こちらはクローズさせていただきます。
■トップに戻る リロード 単独スレ表示
|