KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

591 :VBからVisio2000起動後、Visio-VBAを実行したい(03)  592 :Windows2000 + Visio2000 SR1(01)  593 :Master から Shape(05)  594 :結合後のID取得方法(06)  595 :ステータスバーについて (04)  596 :特定のシェイプを削除できないようにするには (03)  597 :VisioToolBoxについて (03)  598 :Visio2000で作ったものをDXF形式にする方法について(至急) (06)  599 :VSLマクロの実行 (01)  600 :ちょっと確認させてください。 (03)  601 :グループ解除について (08)  602 :VBAで2つのシェイプをコネクタで接続したい (01)  603 :オブジェクトの座標をVBAで知りたい (05)  604 :右クリックのショートカットメニュー作成方法 (01)  605 :shapeのデータ (01)  606 :MSVCRT.DLLアドレス違反で異常終了 (01)  607 :シェイプで囲まれた中にある別のシェイプを知る方法 (05)  608 :Visio2000をsetupするとVB6ラインタイムもsetupされる? (04)  609 :VSLでのイベント処理 (01)  610 :ユーザーフォームに線を引きたい (05)  611 : マクロで置換を行いたいのですが (03)  612 :カスタムプロパティ の[行]ラベルの変更 (03)  613 :現在選択されているステンシルの列挙 (05)  614 :図面ページの向き (04)  615 :VISIOの起動時のファイルオープン (03)  616 :ページ・ページタブの制御 (03)  617 :VBAで複数ページをHTML形式で保存したいのです (01)  618 :VBA機能で可能なプログラミングの範囲 (03)  619 :図面のタイトルについて (10)  620 :VSLファイルの作成について (13)  621 :VBAでアクティブページを変更する (01)  622 :ショートカットメニュー制御 (05)  623 :モーダル (01)  624 :データベースプロパティを取得したい (01)  625 :GLUE TOメソッド実行時のEOFエラー (03)  626 :ダイアログ画面の配置位置について (01)  627 :マウスポインタの制御 (07)  628 :OLEリンクオブジェクトのファイルパスの取得 (01)  629 :オブジェクトの保護について (01)  630 :先頭ページを「1」以外にしたいのですが。 (09) 
ログ検索  リロード  前のページ  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 次のページ  総てのスレッド  スレッド総数 696591 - 600 を表示


591: VBからVisio2000起動後、Visio-VBAを実行したい  全レス

01: 名前:松竹梅投稿日:2001/03/09(金) 18:30
はじめまして。

VBから、Visio2000を起動し、図面を開いて、その図面についている
マクロを実行したいのですが、方法がわかりません。
あっちこっち調べてみましたが、できるかできないかもよくわからなくて、
藁をも縋る思いで、投稿させていただきました。

たとえば、Excelの場合では、Runメソッドで、Excel−VBAのプロシー
ジャを実行できますが、Visio2000の場合はどうなるか、教えてください。

すみません。よろしくお願いします。

02: 名前:Kgon投稿日:2001/03/13(火) 11:16
松竹梅さん

どうもです.

Visio2000でしか,確認していませんが,
Visioのドキュメントオブジェクトに ExecuteLineメソッドがあります.
このメソッドの引数に VBA で呼び出すマクロを文字列で渡すと
実行できますよ.

例 マクロ名 TEST

dim visDoc as visio.Document
..........
visDoc.ExecuteLine ("Call TEST")

03: 名前:松竹梅投稿日:2001/03/13(火) 11:24
Kgonさんへ

レスありがとうございます。
ちなみに、返り値を取る方法とかあったら、教えていただけないでしょうか?

よろしくお願いします。

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



592: Windows2000 + Visio2000 SR1  全レス

01: 名前:ひのとも投稿日:2001/03/03(土) 12:21
こんにちは。

オートメーションを使って、シェイプを図面上にドロップしてシェイプのカスタムプロパティ
に値をセットするアプリケーションを作っているのですが、Windows2000 の環境でのみ
途中でVisio32.exeが強制終了する場合があります。デバッガでエラーをトラップして見たら、
「Formulaメソッドは失敗しました。(IVCELLオブジェクト)」のエラーのようです。
厄介なのは通常は問題なくできるのですが、数百というシェイプを設定する処理を繰り替えし
行うと発生します。規則性は全くありません。
NT4 の後半からメモリ管理が変わったことによる影響でしょうか?
ちなみに、セルにセットする箇所をコメントアウトすると全く落ちることありません。
FormulaメソッドをSetFormulasメソッドに替えても同じです。

Win98系OSでは全く問題ありません。
同じような経験がある方は何か情報を頂けないでしょうか?
逃げ道がなくて困っています。

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



593: Master から Shape  全レス

01: 名前:ミー投稿日:2001/01/30(火) 19:21
ミーです。
図面のマスタシェイプからそのマスタシェイプを親に持つ(図面上の)シェイプ群を
取得する方法をどなたか知りませんか?

02: 名前:りょう投稿日:2001/01/31(水) 09:55
直接マスタシェイプから子を得る手段はありません。
通常は全ページの全シェイプをマスタシェイプと照らし合わせる処理になるんですが、これだとオーバーヘッドが気になります。
で、私の場合は荒業を使って問題を回避しています。

まずマスタシェイプにダミーのuserセルを作っておきます。
で、子が知りたくなったらCellChangedイベントを作って予め作っておいたダミーのuserセルに適当な値を放り込みます。
そうするとマスタシェイプを親に持つ子シェイプのuserセルが順次変更されるので、
VisEventProcで拾います。拾い終わったらイベントを削除します。

図面のボリュームにもよりますが、全ループするよりはオーバーヘッドが少ないです(今のところ・・・)

03: 名前:ミー投稿日:2001/01/31(水) 19:08
ミーです。りょうさん今晩は。

直接マスタシェイプから子を得る手段はありません。

やっぱりありませんか・・・。別な掲示板でも同様な事を言われました。

まずマスタシェイプにダミーのuserセルを作っておきます。
で、子が知りたくなったらCellChangedイベントを作って予め作っておいたダミーのuserセルに適
当な値を放り込みます。
そうするとマスタシェイプを親に持つ子シェイプのuserセルが順次変更されるので、
VisEventProcで拾います。拾い終わったらイベントを削除します。

EventProcに非常に弱いのでもう少し詳しく
お教え願えませんか?
宜しくお願いします。

04: 名前:りょう投稿日:2001/02/01(木) 10:29
サンプルを載せますね。
ThisDocumentに
Dim g_Sink As Class1 'シンク
Sub vEventStart()
 Dim eventsObj As Visio.EventList
 Set g_Sink = New Class1 'シンクオブジェクトの作成
 Set eventsObj = ThisDocument.EventList 'この図面のイベントリストを取得
 eventsObj.AddAdvise visEvtMod + visEvtCell, g_Sink, "", "" 'セル変更のイベントを追加
End Sub

クラスモジュール(クラス名はClass1)を挿入し
Public Sub VisEventProc(eventCode As Integer, sourceObj As Object, eventID As Long, seqNum As Long, subjectObj As Object, moreInfo As Variant)
 Debug.Print
 Debug.Print sourceObj.Name
 Debug.Print moreInfo
 Debug.Print subjectObj.Name
End Sub

vEventStartを実行してからマスタシェイプを変更するとイベントが上がってきて
イミディエイトウィンドウに何ページの何のシェイプが変更されたか表示されます。
こんなので分りますか?

05: 名前:ミー投稿日:2001/02/02(金) 14:26
ミーです。りょうさん、早速のサンプルありがとうございました。
参考にさせていただきます。

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



594: 結合後のID取得方法  全レス

01: 名前:WAYU投稿日:2001/01/26(金) 11:48
はじめまして。
Visio2000 VBAを初めて使用しています。

UNIONで結合した図計のIDの取得を取得したいのですが、
どうしたら良いのでしょうか?

’前段階はこんなロジックです。
'結合元Sapeの選択
For jj = 0 To 10
  If sIDtblWork(jj) <> "" Then
Set visShape = visPage.Shapes.Item(sIDtblWork(jj))
 Visio.ActiveWindow.Select visShape, visSelect
End If
Next jj
'Shapeの結合
Visio.ActiveWindow.Selection.Union <--この図形のID(Unique ID)を
                   取得したいのです。

よろしくお願い致します。

02: 名前:りょう投稿日:2001/01/26(金) 12:17
ヘルプでは
「Selection オブジェクトに対して Union メソッドを実行した場合、
操作完了後は、どの図形も選択されていない状態となります。 」
となっていますが、私の環境では選択状態になっています。
したがって、以下のようなコードでIDの取得が出来ました。

Dim selObj As Selection

Visio.ActiveWindow.SelectAll
Visio.ActiveWindow.Selection.Union

Set selObj = Visio.ActiveWindow.Selection
MsgBox selObj(1).ID

03: 名前:WAYU投稿日:2001/01/26(金) 13:19
どうも有難うございました。
確かに取得できました。

初心者とは言え、Selectionプロパティに気がつかないとは、情けない話です。
しかし、今後、ヘルプの通りにどの図形も選択されていない状態になってしまったら
どうすれば良いのでしょうかね?(ヘルプの間違いであればよいのですが)

04: 名前:かど投稿日:2001/01/26(金) 14:04
かどです。

Unionメソッド直後であれば、(その後シェイプを追加していない状態)
msgbox ActivePage.Shapes(ActivePage.Shapes.Count).ID
でいけるかも。

>しかし、今後、ヘルプの通りにどの図形も選択されていない状態になってしまったら
>どうすれば良いのでしょうかね?(ヘルプの間違いであればよいのですが)

5.0でも2000でも選択状態をキープしていますので私も
間違いだと思います。
ヘルプの間違いだと私も思います・・・。

05: 名前:りょう投稿日:2001/01/26(金) 17:01
もし非選択状態になるようなら、
unionメソッド実行直後にDocument_ShapeAddedイベントが発生するので

Private Sub Document_ShapeAdded(ByVal Shape As IVShape)
MsgBox "結合されたシェイプは" & Shape.ID & "です"
End Sub

でイケそうです。もっともunionによるイベントなのかどうかを判断する必要がありますが、
むしろコッチのほうが>>02より正攻法なような気もしてきました(^_^;)

>ヘルプの間違いだと私も思います・・・。
・・・ですね。

06: 名前:WAYU投稿日:2001/01/29(月) 15:35
ちょっと苦労しましたが、union実行後のイベントも拾うことが
できました。
皆様のレスに感謝です。
ヘルプの件につきましても、ありがとうございました。

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



595: ステータスバーについて  全レス

01: 名前:スド 投稿日:2001/01/17(水) 15:22
はじめまして。Visio2000のVBAで泣いています。
メニューバー、ツールバー、ステータスバー
のカスタマイズをしたいのですが、ステータスバーのいじり方が
さっぱりわかりません。そもそも、ステータスバーは 「UIオブジェクト」で
カスタマイズ出来る物なのでしょうか?
どなたか、些細な事でも結構です。教えて頂けないでしょうか??
そろそろ鼻水もでそうです。よろしくお願いします。

02: 名前:スド 投稿日:2001/01/18(木) 10:44
昨日から何とか試行錯誤して、ID_DrawingのWidthを変更することを理解しました。
目的としては、初期表示のステータスアイテムを全て削除し、
新たにラベルを貼り付けたいのですがよくわかりません。
Visio.Application.CustomToolbars.StatusBars.Count
で、ステータスバーの要素数?を数えると"6"が返りますが
ここで返ってくるオブジェクトは何者なのでしょうか?

手元に資料が乏しく苦労しております。
どうか,よろしくお願いいたします

03: 名前:りょう投稿日:2001/01/25(木) 16:04
過去ログにステータスバーに関する話題があります。
http://visio-square.virtualave.net/cgi-bin/visbbs/mibbs.cgi?mode=point&fol=auto&tn=0075&rn=30 [source] [check]
参考にしてみてください。

04: 名前:スド投稿日:2001/01/26(金) 09:32
りょうさん 有難うございます!過去ログを見たつもりだったのですが
見落としていたようです。すばらしく参考になりました。
ステータスバーのカスタマイズ当初はVisio2000のProfessional版で
開発していたのですが、ログにあるようなアプリケーションエラーがあり、
立ち往生していました。ちなみに、解らなかったのでオブジェクトのWidthを
全て-1で隠してごまかしてました。
ほんとうに有難うございます。

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



596: 特定のシェイプを削除できないようにするには  全レス

01: 名前:名無しさん投稿日:2001/01/16(火) 08:50
ある特定のカスタムプロパティの値をもったシェイプを削除しようとした(した)場合に、
アラームを出して、削除できないようにしたいんです。
以前この掲示版に UNDO のサンプルが載っていたので、試してみましたが
うまく行きません。
シンクオブジェクトを作成して、イベントをとり UNDO するやり方です。
シンクオブジェクトのクラスモジュールの中で
Visio.Application.Undo 'undoで削除されたシェイプを復活してから・・・
---->これで削除したシェイプが復活しません
--> しかもここで終わってしまって次のステートメントが実行されません
やり方がまずいんでしょうか?Visio2000 テクニカル を使っています。
どなたか、わかったら教えて下さい。

02: 名前:管理人投稿日:2001/01/17(水) 08:50
Visio2000から搭載されたUndoマネージャの影響でしょうか・・・
興味があるのでヒマをみつけて調査してみます。

03: 名前:りょう投稿日:2001/01/25(木) 16:05
スミマセン、まだ半日しか調べてなくて・・・解決できていません(^^ゞ

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



597: VisioToolBoxについて  全レス

01: 名前:名無しさん投稿日:2001/01/12(金) 23:34
このHPにあった "VisioToolBox" ダウンロードして使ってみました
大変便利ですね。
でも、これどう作ったら ステンシル を ドロップしただけで
マクロが起動するんですか?
私も作ってみたいんですけど、どなたか方法を教えてください。

02: 名前:管理人投稿日:2001/01/15(月) 16:15
一例ですがマスタシェイプのイベント(EventDrop)に、
=DOCMD(1023)+CALLTHIS("ThisDocument.ClearShape","VisioToolbox")
と記入すると、

1.ステンシルから図面上にシェイプをドロップした瞬間(EventDrop)に
2.DOCMD(1023)でドロップされたシェイプ(自分自身)を削除、
3.CALLTHISで該当ルーチン呼び出し

の順番で動作します。

03: 名前:名無しさん投稿日:2001/01/15(月) 23:03
ありがとうございました。
さすが管理人さん!! な〜〜るほど、と ただただ感心するばかり。
まだまだ、Viso初心者の私ですが、一生懸命頑張ります。
これからも、よろしくお願い致します。

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



598: Visio2000で作ったものをDXF形式にする方法について(至急)  全レス

01: 名前:yasuko 投稿日:2001/01/10(水) 09:50
大至急分かりましたら教えて頂けると幸いです。
Visio2000で作ったものをDXF形式で保存したいのですが、方法を教えて下さい。
後々AutoCAD等で見れるようにするためです。どうぞ宜しくお願いします。

02: 名前:あきふさ 投稿日:2001/01/10(水) 13:01
Visio2000で「ファイル名を付けて保存」の際に
「ファイルの種類」のメニューより「AutoCAD変換ファイル(*.dxf)」
を選択すればいいと思いますが?

03: 名前:ライカーナ 投稿日:2001/01/10(火) 15:49
Visio2000でも、Visio200テクニカル・エディションじゃないとだめらしいです。
Visio2000スタンダード・エディションとかVisio2000プロフェッショナル・エディション
では、「ファイルの種類」メニューに「AutoCAD変換ファイル(*.dxf)」はでてきません。

質問する時はVisioの何エディションかも書いた方が良いと思いますが・・・・。

04: 名前:ライカーナ 投稿日:2001/01/10(水) 15:56
訂正します。
「ファイルの種類」メニューに「AutoCAD変換ファイル(*.dxf)」は出てきますが、
それを選択してもエラーになるだけのようです。

良く確認しないで書き込んですみませんでした。
(動作はVisio2000プロフェッショナル・エディションで確認しました。)

05: 名前:yasuko 投稿日:2001/01/10(水) 16:18
今ここに入っているVisio2000がテクニカル・エディションかどうか、確認の仕方が
分からないのですが、ただ、ファイルの種類には、AutoCAD変換ファイル(*.dxf)が出て来ない
タイプです。バージョンアップしないと、無理ということですね。
回答をありがとうございました。

06: 名前:あきふさ 投稿日:2001/01/10(水) 16:52
確認したら私もエラーになり変換できませんでした。
ちなみに私はVisio2000 Std SR1 です

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



599: VSLマクロの実行  全レス

01: 名前:Licca 投稿日:2000/12/28(木) 14:18
VBAからVSLのマクロを実行するにはどうしたら良いのでしょうか?
Callでは駄目ですよね?
Addon.Runのヘルプの説明に
"アドオンが .VSL ファイルによって実装される場合、引数は .VSL の VisioLibMain プロシージャに送られる実行メッセージを伴う引数構造のフィールドで渡されます。"
とあるのですが、いまいち分かりません。

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



600: ちょっと確認させてください。  全レス

01: 名前:ライカーナ 投稿日:2000/12/28(木) 08:47
はじめまして。ライカーナという者です。
過去ログを見ていて、ふと思ったので確認させて下さい。
さとうさんが書かれた「VC++によるカスタムプロパティへの値の設定方法」
なんですが、エラーの原因って、
  hr = cell.putFormula(VBstr("""abcd"""));
           ↓
  hr = cell.putFormula(VBstr("\"abcd\""));
にしなければならないって事なんでしょうか?
以上、過ぎた事を穿り返すようで申し訳有りませんが、お教えください。

02: 名前:みや 投稿日:2000/12/28(木) 08:50
たぶん、ってゆーか、私は下の書き方でコーディングしてます。
C言語の文法では下の書き方ですね。

03: 名前:ライカーナ 投稿日:2000/12/28(木) 13:25
やっぱりそうなんですか?
ログには特に解決策は書かれていなかったので、気になって仕方が無かった
んですよ。(^^;)

みやさん RESどうもでした。

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


ログ検索  リロード  前のページ  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 次のページ  総てのスレッド  スレッド総数 696591 - 600 を表示