KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

 KoMaDo / Headline / category :  【VISIO全般】  【News/宣伝】  【図形・操作】  【ファイル変換】  【ShapeSheet】  【VB/VBA】  【雑談その他】 ;

411 :SVGコンバータforVisioをVBAから動かすことができるでしょうか?(03)  412 :ステンシルへの追加(04)  413 :VBAで複数ファイル取得(04)  414 :VBでVISIOのイベントを取りたい(01)  415 :初心者(01)  416 :ツールバーにオリジナルボタンを追加する(01)  417 :ページの挿入位置(13)  418 :全画面表示中にマクロを実行させたい(06)  419 :アクティブドキュメントについて(02)  420 :アドオンからスレッドを起こした場合の動作(01)  421 :シェイブのカスタムプロバティーの書き出し(06)  422 :グループ化を禁止する方法(05)  423 :VB Shapeで選択した範囲のコントロールの個数を取得するには(02)  424 :定義されていません。(Error 35)(03)  425 :UMLシーケンス図読み込み方法について(質問)(03)  426 :シェイプのテキストのフォント名とサイズ(06)  427 :VisioVBA の動作に必要なDLL(01)  428 :ツールバーのボタン (03)  429 :visioのヘッダーフッターについて(03)  430 :プリンタの設定について(02)  431 :グループ化したシェイプのオブジェクト情報を変更する(03)  432 :LockPinX Y の数式を変化させたい(04)  433 :シェープの選択(03)  434 :データベースリンク図形のリフレッシュ(01)  435 :Visioでのマクロの登録(07)  436 :データベースのプロパティのVBAでの取り出し方(01)  437 :UMLクラス図のプロパティ設定(01)  438 :Excelのデータを取り込むには?(03)  439 :マスタシェイプへの変更が反映されない(03)  440 :UNDOの実行(05)  441 :プリンタの選択(02)  442 :複数シェイプを図面に追加した場合(05)  443 :Visio2002ツールバーのアイコンについて(03)  444 :シェイプの色をショートカットで変更したい(06)  445 :Undoメソッドで例外が発生します。(04)  446 :図面にステンシルファイルをドッキングさせたい(05)  447 :カーソルの座標への移動(05)  448 :VBAでステンシルを編集モードにする(03)  449 :BeforeShapDeleteイベントの作成方法について(03)  450 :ページ挿入される前のイベントを取得したい(03) 
ログ検索  リロード  前のページ  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 次のページ  総てのスレッド  スレッド総数 696411 - 420 を表示


411: SVGコンバータforVisioをVBAから動かすことができるでしょうか?  全レス

01: 名前:とも投稿日:2003/03/14(金) 16:33
SVGコンバータforVisioをつかうと、WEB上で軽くVISIOの図を
見ることができることを今日初めて知りました。
そこで、教えていただきたいのですが、
VISIOファイル中のVBAから、SVGコンバータforVisio
を動かし、SVG形式で保存させることは可能でしょうか?
よろしくお願いします。

02: 名前:oki投稿日:2003/03/14(金) 23:44
現バージョンでは、SVGコンバータforVisio自体がステンシル内のVBAで作成されていますで、
ステンシルを開くVBAを作れば設定画面までは呼び出すことはできると思いますが、
保存までは残念ながらできません。

03: 名前:とも投稿日:2003/03/17(月) 09:25
非常に遅い時間帯にもかかわらず、
回答ありがとうございました。
次ヴァージョンに取り入れられることを期待しています。

■トップに戻る リロード  単独スレ表示



412: ステンシルへの追加  全レス

01: 名前:ねこさん投稿日:2003/03/13(木) 20:24
こんばんわ。皆様、お助けください。

図面上のシェイプを複数選択し、これをグループ化してステンシルに登録するプログラムを書いてみたのですが
登録されるマスターは空のマスターシェイプとなってしまいます。
何か、勘違いでもしてますでしょうか?

どなたかご教示ください。


Sub test()
Dim selObj As Visio.Selection
Dim gselObj As Visio.Shape
Dim docObj As Visio.Document
Dim mselObj As Visio.Master

Set selObj = Visio.ActiveWindow.Selection
If selObj.Count < 2 Then End

Set gselObj = selObj.Group
Set mselObj = gselObj.Master

Set docObj = Documents.OpenEx("あるステンシル.vss", visOpenDocked)
Set mselObj = docObj.Masters.Add
End Sub

宜しくお願いします。

02: 名前:名無しさん投稿日:2003/03/14(金) 09:00
まず、そのマスターシェイプを図面上にドラッグすると、登録した図形がちゃんと図面上に表示されるかどうか確認してみてください。
図面上にでるのであれば登録はされてるはずです。

03: 名前:なか投稿日:2003/03/14(金) 09:06
Addメソッドについて勘違いしているようなので説明します。
Addメソッドは単に空のマスタシェイプを作成してコレクションに追加するだけのものです。
この場合AddメソッドよりDropメソッドが相応しいと思います。
(こんな感じ Set mselObj = docObj.Masters.Drop(gselObj, 0, 0))
あと、OpenExのフラグにvisOpenRWも追加しておかないとステンシルへ追加する際に警告メッセージが表示されてしまいます。

04: 名前:ねこさん投稿日:2003/03/14(金) 11:03
名無しさん様 & なか様
早々のレスポンスありがとうございました。
頂いた情報で、ずばりやりたいことができました。
ホント助かりました! どうもありがとうございます。

# フラグの追加は、足し算なんですね。それを知るまでちょっと悩んでしまいました。

■トップに戻る リロード  単独スレ表示



413: VBAで複数ファイル取得  全レス

01: 名前:hey投稿日:2002/12/03(火) 14:23
こんにちは。
お初にお目にかかります。
VB/VBA初心者のheyです。
題名のとおり、VBAで複数のファイル(ドキュメント)を取得できなくて困っております。
「ドラッグ&ドロップ」とか、「ファイルを開く」とか
いろいろネットや本で調べてみたのですが分かりませんでした。
ファイル名が取得できればOKなんですけど…
どなたか教えてください。
よろしくお願いします。

02: 名前:hey投稿日:2002/12/03(火) 14:36
書き忘れていたのですが、
実際にはファイルは一気に開かないで、
1つづつ開きたいのです。
1つ開いて、処理して次のファイルみたいな感じです。

03: 名前:hey投稿日:2002/12/06(金) 21:44
EXEにして解決しました。

04: 名前:sugimoto投稿日:2003/03/13(木) 19:17
杉本と申します。

具体的にはどんな処理なのでしょうか?

僕も今悩んでまして、もしよろしければ教えてください。

■トップに戻る リロード  単独スレ表示



414: VBでVISIOのイベントを取りたい  全レス

01: 名前:Aka投稿日:2003/03/12(水) 20:51
いつもお世話になっております。
VISIOでのイベントをVBで取得して、その処理をVBで行いたいのです。
例えば、Shapeが移動したとか、ShapeのHeight,Widthが変更されたとかに
対して、VBでAの処理、Bの処理を行うってな具合にです。

一応、サンプルコードを参照して、やってみたのですが・・・
「プロパティまたはメソッドの呼び出しの場合には、引数または戻り値として
プライベートオブジェクトへの参照を含めることは出来ません。」
とエラーが出てしまいます。

例:
○VBのフォームロードイベント
Dim g_Sink As CEventSamp

Private Sub Form_Load()
Dim docObj As Visio.Document
Dim eventObj As Visio.EventList

If vaoCreateGIO = True Then
Set g_Sink = New CEventSamp
Set docObj = g_appVisio.Documents.Add("")
Set eventObj = docObj.EventList
eventObj.AddAdvise visEvtCodeShapeDelete, g_Sink, "", "Shape Deleted..."
eventObj.AddAdvise (visEvtMod + visEvtCell), g_Sink, "", "Cell Changed..."
End IF
End Sub

○VBのクラスモジュールのCEventSamp
Public Sub VisEventProc(eventcode As Integer, sourceObj As Object, eventID As Long, _
        seqNum As Long, subjectObj As Object, moreInfo As Variant)

Dim strDumpMsg As String

Select Case eventcode
Case visEvtCodeShapeDelete
strDumpMsg = "DELETE" & eventcode
Case Else
strDumpMsg = eventcode
End Select
FormEventDisplay.EventText.Text = strDumpMsg
End Sub

○VBの標準モジュールのvaoCreateGIO
VISIOファイル内のVisreg.Basを使用

お解りになる方がいらしたら、ぜひ教えて下さい。
よろしくお願いします。

■トップに戻る リロード  単独スレ表示



415: 初心者  全レス

01: 名前:ゆうと投稿日:2003/03/12(水) 16:15
VBAのめちゃめちゃ初心者です。
昔にBASICやアセンブラは少しなぶりましたが(^_^;)
とても混乱しています。
挑戦したもののVISIOを立ち上げて右クリックするとVISIOじたいが
落ちてしまうといった現象がおきてしまっています。
たすけてください(@_@;)

■トップに戻る リロード  単独スレ表示



416: ツールバーにオリジナルボタンを追加する  全レス

01: 名前:しん投稿日:2003/03/12(水) 05:17
Visioテクニカルガイドを参考にツールバーにオリジナルボタン
を追加するVBAを試しています。しかしボタンのオリジナルアイコン
が表示されません。アイコンエディターで32×32のアイコンを作った
のですがどこにアイコンファイルを置くのか又はVBEで読み込ませる
のか分かりません・・・

お分かりの方がいらっしゃいましたらご指導お願いいたします。
下記VBAです。

Public Sub AddToolbar()
Dim visToolbarSetsObj As Visio.ToolbarSets
Dim visToolbarSetObj As Visio.ToolbarSet
Dim visToolbarsObj As Visio.Toolbars
Dim visToolbarObj As Visio.Toolbar
Dim visToolbarItemsObj As Visio.ToolbarItems
Dim visToolbarItemObj As Visio.ToolbarItem
Dim strPath As String
Dim visUlobj As Visio.UIObject
Dim iNextPath As Integer
Dim bAddonExists As Boolean
Dim iAddonCount As Integer
Dim iNextPos As Integer

On Error GoTo ErrProc

'OLE先で開いている場合は終了
'If ThisDocument.lnPlace Then End

'ビルドインツールバーを得る
Set visUlobj = Visio.Application.BuiltInToolbars(Visio.visToolBarMSOffice)
Set visToolbarSetsObj = visUlobj.ToolbarSets

'図面ウィンドウのツールバーを得る
Set visToolbarSetObj = visToolbarSetsObj.ItemAtID(Visio.visUIObjSetDrawing)
Set visToolbarsObj = visToolbarSetObj.Toolbars


'ツールバーに「オリジナルボタン」を追加
Set visToolbarObj = visToolbarsObj.AddAt(visToolbarsObj.Count + 1)
visToolbarObj.Caption = "オリジナルボタン"
Set visToolbarItemsObj = visToolbarObj.ToolbarItems

iNextPos = 0
Set visToolbarItemObj = visToolbarItemsObj.AddAt(iNextPos)
visToolbarItemObj.ActionText = "オリジナルボタン"
visToolbarItemObj.AddOnName = "Thisdocument.test"
visToolbarItemObj.CntrlType = Visio.visCtrlTypeBUTTON
visToolbarItemObj.IconFileName "1.ico"
visToolbarItemObj.Priority = 1


'ツールバー再設定
ThisDocument.SetCustomToolbars visUlobj

ErrProc:
Exit Sub
End Sub

■トップに戻る リロード  単独スレ表示



417: ページの挿入位置  全レス

01: 名前:ぴぃ投稿日:2003/03/03(月) 22:47
VBAでページを追加すると、一番最後に追加されてしまいます。
これを、任意の位置に追加することは出来ないのでしょうか??
よろしくおねがいします

05: 名前:ぴぃ投稿日:2003/03/04(火) 15:43
う、そんな簡単な方法だったのですか。。。
大変参考になりました。
ありがとうございました。

06: 名前:ぴぃ投稿日:2003/03/05(水) 18:08
またしても教えてください。
次のようにコードを書くと、コンパイラに

viApp.ActiveDocument.Pages(1).Index = 3


「値の取得のみ可能なプロパティに値を設定することはできません。」
と怒られてしまいます。

なんか、私、勘違いしてるんでしょうか?

07: 名前:なか投稿日:2003/03/06(木) 08:44
すいません一つ条件を書き忘れました。
PageオブジェクトのIndexプロパティの初出バージョンが2002と
なっているのでVisio2002でないとできないと思われます。

08: 名前:oki投稿日:2003/03/06(木) 21:37
ページの移動に関しては、
viApp.ActiveWindow.Page = "ページ名"
で出来ます。

09: 名前:ぴぃ投稿日:2003/03/07(金) 12:55
>なかさん
そうです、おもいっきりVisio2000です。。。

>okiさん
それだと、アクティブなページが切り替わるだけではないでしょうか?

10: 名前:なか投稿日:2003/03/07(金) 14:03
Visio2000ですか。
Visio2000を持っていないのでこれ以上は解りません。

全く別の方法として
もう一つ方法はあるのですが(できる確証はない)
VCやVBを使ってWindowsプログラムを作った経験がないと
恐らく作るのは難しいかと
もし興味があるなら、この方法について説明することもできます

11: 名前:ぴぃ投稿日:2003/03/07(金) 15:31
>なかさん
ぜひその方法を教えてください。
できなかったら、あきらめます。
VBでWindowsプログラムは作った経験があります。

12: 名前:oki投稿日:2003/03/09(日) 23:33
>>okiさん
>それだと、アクティブなページが切り替わるだけではないでしょうか?

すいません...はずした発言をしてしまいました。

色々調べてみたのですが、なかさんのおっしゃる通り、Visio2002ではIndexプロパティで
すんなり移動できるのですが、Visio2000では読み取り専用プロパティなので簡単には
いかないようです。
ページの移動については、Visio2002で対応したというふうに思えます(確信はないですが)。。
何か方法はあるのでしょうか?

13: 名前:なか投稿日:2003/03/10(月) 08:48
あまり奇麗な方法ではないのですが、
簡単に説明しますと、ページの並べ替えダイアログを
自動的に起動し、VBAからダイアログに対しメッセージを
投げてやりページの移動を行うと言う方法です。
ダイアログのハンドルはFindWindowで取得できますし、
ダイアログの各コントロールのIDはスパイを使えば調べられますので、
おそらくできると思います。

■トップに戻る リロード  全レスを表示



418: 全画面表示中にマクロを実行させたい  全レス

01: 名前:suzuk投稿日:2003/02/26(水) 10:17
全画面表示中にシェイプのダブルクリックで
マクロは実行できないのでしょうか?
当方はVisio2000です。

02: 名前:rumi投稿日:2003/03/05(水) 14:40
シェイプのEventDblClickセルに式を書いてあげれば実行できます。

03: 名前:suzuk投稿日:2003/03/06(木) 17:10
rumi様 ありがとうございます。

現象の例を申し上げますと
EventDblClickセルへ=RUNADDON("ダブルクリック")と記述し
マクロへ
Sub ダブルクリック()
MsgBox "a"
End Sub
と記述しております。
全画面表示以外ではシェイプをダブルクリックすると
メッセージボックスが表示されますが、
全画面表示中ではメッセージボックスが出てきません。

なにか方法があれば教えて頂きたいのですが
不可能でしたら、「不可能です」と一言だけでも良いので
皆様のレス宜しくお願い致します。

04: 名前:なか投稿日:2003/03/06(木) 17:28
開発者リファレンスからの抜粋
「全画面表示は、表示専用モードです。したがって、ページの編集や変更はできません。」
とありますから、方法はないように思います。

05: 名前:suzuk投稿日:2003/03/06(木) 18:39
なか様 ありがとうございます。

別の方法検討する事に致します。

06: 名前:rumi投稿日:2003/03/07(金) 17:18
「全画面表示中」でしたね。
半端な回答をしてしまい、申し訳ありませんでした。

■トップに戻る リロード  単独スレ表示



419: アクティブドキュメントについて  全レス

01: 名前:Klez投稿日:2003/03/05(水) 15:07

一つのウィンドウでA,B,Cと複数のドキュメント(ファイル)を
開いていたとします。

この時、任意のドキュメントをアクティブにしたいのですが、
できなくて困っています。
どうしてもわからないのでどなたかご教授ください。
おねがいします。

02: 名前:yoda投稿日:2003/03/05(水) 20:00
Open メソッドを使ったらできましたが。

Dim MyDoc As Visio.Document
Set MyDoc = Visio.Documents("B")
Visio.Documents.Open MyDoc.Name

■トップに戻る リロード  単独スレ表示



420: アドオンからスレッドを起こした場合の動作  全レス

01: 名前:CHERRY投稿日:2003/03/05(水) 15:41
現在、アドオンからスレッドを起動し、そのスレッドから
ソケット通信を行っていますが、
Visio上で何かしらのダイアログを表示すると、
通信が停止してしまいます。
不確定ですが、スレッド自体が終了してしまっているようですが、
Visioでスレッドを作成する際の注意点など、ご存知の方が
おられましたら、ご教示願えませんか?

■トップに戻る リロード  単独スレ表示


ログ検索  リロード  前のページ  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 次のページ  総てのスレッド  スレッド総数 696411 - 420 を表示