KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

91 :起動時にパスワード入力ダイアログが表示されてしまう(04)  92 :DDL文の出力の自動化(02)  93 :挿入図形の解像度指定(03)  94 :線の頂点の絶対座標(11)  95 :図面ステンシルの制御(03)  96 :子とのHitTest (03)  97 :曜日の自動取得(04)  98 :.VDT ファイルに保存してテキストで修正したら開けないのは?(02)  99 :VCでのオートメーション開発(07)  100 :標準モジュールについて(02)  101 :"XXX.vdx" - > "XXX.vsd" に変換する方法は?(03)  102 :前に作ったVISIOファイルから内容だけ一発変更はできますか?(02)  103 :Drawing Controlへの文字データのドラッグ&ドロップについて(05)  104 :ファイルが見つかりません データ入出力作成 VB6.0(01)  105 :文字セットの方法(05)  106 :VB.NETでMouseMoveイベントでShape上かどうかを判定したい。(14)  107 :アクティブなアプリケーションにキー コードを転送したい。(03)  108 :ページ並べ替えの制限方法(10)  109 :ステンシルの編集状態判別(03)  110 :シェイプのコピー制限(02)  111 : イベント中にシェイプのCellの値が変更できない(01)  112 :VISIOシェイプのアングルをVBAで制御したい(04)  113 :画像ファイル出力オプションの指定方法について(05)  114 :見積書の自動作成(08)  115 :グループへの追加・削除について(04)  116 :DistanceFromメソッドがおかしい(05)  117 :OpenExで指定するファイル名と実際に開かれるファイル(09)  118 :Visual Studio .Net 2002からVisioにアタッチ(15)  119 :シェイプのテキスト文字数について(06)  120 :SelectionのDrop先(03)  121 :シェイプをレイヤに配置させたい(03)  122 :グループ化でオートメーション エラー(09)  123 :CTR+Zのときのイベントについて(03)  124 :TIPセルへの書き込み(05)  125 :selection_changed イベント(14)  126 :グループ化されたシェイプについて(26)  127 :動的コネクタの頂点のX,Y指定(10)  128 :クローズイベントについて(08)  129 :参照設定のパスについて(23)  130 :[表示(V)]メニュー[図形ウィンドウ(N)]の制御(18) 
ログ検索  リロード  前のページ  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 次のページ  総てのスレッド  スレッド総数 69691 - 100 を表示


91: 起動時にパスワード入力ダイアログが表示されてしまう  全レス

01: 名前:KY投稿日:2006/10/05(木) 03:22
はじめまして。KYと申します。

起動時に参照設定を自動で行うだけの単純なマクロを記述したプロジェクトに、
パスワードを設定すると、このプロジェクト(VISIO)起動時にパスワードの入力ダ
イアログが表示されてしまいます。

ユーザーの人がVBエディタでプロジェクトを開こうとしたときにだけ、ダイアログ
が表示されて欲しいのですが(通常はそうですよね)、何か回避方法をご存知
でしょうか?

参照設定は以下のコードを使用しています
References.AddFromFile

パスワード設定はVBプロジェクトの「プロパティ」から「保護」のタブを開き、
「プロジェクトを表示用にロックする」にチェックを付け、「パスワード」を設定
しています。

02: 名前:yoda投稿日:2006/10/05(木) 09:00
オプション設定で、マクロを使用しないように設定すれば
良いのではないかと思いますが、経験がないので確かな
ことは、わかりません。

03: 名前:yoda投稿日:2006/10/05(木) 09:06
そのほかには、参照設定は、あらかじめ、しておく、
くらいしか、思いつきません。
そのつど参照設定をしなくても、すむような仕組みにする
こと、でしょうね。

04: 名前:KY投稿日:2006/10/05(木) 20:18
yoda様

ご返答ありがとうございます。

このマクロはユーザーに配布するものなので、参照設定をあらかじめしておく
事は出来ないんです。(参照先がユーザーによって変わる為)

しかし、参照設定しようとしているのが自分のプロジェクト内のマクロなのに、
パスワードダイアログを表示しようとするなんて変な作りですね。

References.AddFromFile以外に参照設定を行う方法について調査してみます。

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



92: DDL文の出力の自動化  全レス

01: 名前:ftf投稿日:2006/09/30(土) 00:57
はじめまして。

Visual Studio .NET Enterprise Architect付属のVisioを使用しています。
データベースモデル作成時にメニューの[データベース]→[生成]でウィザードでDDLスクリプトを
ファイルに出力することができますが、同様のことをVBAで実行させることは可能でしょうか?

ご存知の方がいらっしゃれば、よろしくお願いします。

02: 名前:yoda投稿日:2006/09/30(土) 08:58
過去ログに、このようなものがあります。
http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/mibbs.cgi?mo=p&fo=zukei&tn=0120&rn=30 [source] [check]

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



93: 挿入図形の解像度指定  全レス

01: 名前:UL投稿日:2006/09/20(水) 17:36
こんにちははじめまして。いつも参考にさせて頂いております。

題名の通り、挿入した図形の解像度をVBAで変更する方法を探しています。
挿入した画像により、Visioファイルそのものが重くならないよう、挿入画像のサイズを落としたいのです。
マクロの記録では、"書式設定→圧縮"の部分が見受けられませんでした。
 (↑この部分をVBAで処理させたい)
エクセルではカット→ペーストで荒くなるようですが
Visioにて"PasteSpecial"を使っての貼付け、
Help記載の値全てを試してみたのですが、ファイルサイズはむしろ大きくなるだけでした。
(カット→ペーストだけでも少しあがる。何故でしょう??とそれすら理解出来ていないのですが…;

検索をしても解像度の変更というのが見つからずに困っています。
VisioどころかVBAも最近始めたばかりなのですが、何か方法がありましたら是非、よろしくお願いします。
 WinXP:Visio2003

02: 名前:yoda投稿日:2006/09/20(水) 19:49
以前にも、同様の質問がありましたが、
解決策は見つかっていないと思います。
他の方法を考えたほうが得策かと思います。

03: 名前:UL投稿日:2006/09/20(水) 20:17
こんばんは、回答ありがとうございます。
解決策なしですか…
残念ですが一旦諦め、VBAをきちんと勉強しなおしてみます。
ありがとうございました。

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



94: 線の頂点の絶対座標  全レス

01: 名前:SH投稿日:2006/09/12(火) 10:05
線の頂点の取得で、相対座標では値の取得が出来ますが、
絶対座標での取得が出来ません。
始点、終点は絶対座標で取得できますが、
頂点が絶対座標では取得できません。
何か良い方法はありませんか。お願いします。

03: 名前:SH投稿日:2006/09/12(火) 10:52
説明不足ですみません。
コネクタの頂点の事です。

04: 名前:yoda投稿日:2006/09/12(火) 11:25
一度シェイプシートのSvratchセルで、
PAR 関数を使って、ページ上の点に変換し、
その値を、読めばよいと思います。

05: 名前:投稿日:2006/09/12(火) 11:43
Svratchセルが見当たりません。
具体的にどのようにしたら良いか教えていただけませんか?

06: 名前:yoda投稿日:2006/09/12(火) 11:53
Scratchセクションなどは、ユーザーが任意に挿入します。
シェイプシートの上で右ボタン、セクションの挿入をクリック
します。
たとえば、Scratch.X1には、
PNTX(PAR(PNT(Geometry1.X3,Geometry1.Y3)))
Scratch.Y1には、
PNTY(PAR(PNT(Geometry1.X3,Geometry1.Y3)))
と言う式を入れた場合は、コネクタの3番目の点
のページ座標X,Yが別々に得られます。

07: 名前:SH投稿日:2006/09/12(火) 12:07
ありがとうございます。
VISIOでは何も操作せず、VBAのみで
絶対座標を取得することは不可能でしょうか?

08: 名前:yoda投稿日:2006/09/12(火) 12:10
もちろん可能ですが、自分で座標変換しなければなりません。

09: 名前:yoda投稿日:2006/09/12(火) 12:45
すみません。XYToPage メソッドがありました。
私は使ったことがありませんので、調べてみてください。

10: 名前:SH投稿日:2006/09/12(火) 13:33
ありがとうございます。
XYToPageメソッドの使い方が良く分からなかったので
自分で座標変換する事にしました。

11: 名前:yoda投稿日:2006/09/12(火) 14:02
自分の勉強のために、シェイプシートの関数の場合と
同じ条件で、作ってみました。
Sub test()
Dim shp As Visio.Shape
Dim x As Double, y As Double, Px As Double, Py As Double
Set shp = ActiveWindow.Selection(1)
x = shp.Cells("Geometry1.X3").ResultIU
y = shp.Cells("Geometry1.Y3").ResultIU
shp.XYToPage x, y, Px, Py
x = x * 25.4
y = y * 25.4
Px = Px * 25.4
Py = Py * 25.4
Debug.Print x, y, Px, Py
End Sub
簡単な座標計算なら自分でした方が早そうです。

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



95: 図面ステンシルの制御  全レス

01: 名前:黒猫投稿日:2006/08/28(月) 14:13
度々すみません。

図面ステンシルをいじられたくないので何らかの制御を加えたいのですが、
考えるに一番楽そうなのが図面ステンシル自体を開かないようにできたらよいのではないかと考えました。
「図面ステンシルが開くのをキャンセルさせる」または「図面ステンシルが開かれた直後に閉じる」
を行なう為のイベントを教えていただけないでしょうか?

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

02: 名前:yoda投稿日:2006/08/28(月) 19:23
WindowOpened イベントでしょか。
Helpで確認してください。

03: 名前:黒猫投稿日:2006/08/28(月) 21:29
yodaさんありがとうございました。
無事に制御することができました。

またお聞きすることがあるかと思いますのでよろしくお願いいたします。

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



96: 子とのHitTest  全レス

01: 名前:黒猫投稿日:2006/08/26(土) 00:07
背景に置かれたグループ化されたシェイプの子の部分と、
前景に置かれたシェイプが重なっているかをチェックしたいのですが、
うまくチェックできません。

ファイルを「■4 / 親記事)  テンポラリー的なファイル」の
「■133 / ResNo.46)  子とのHitTest」にアップさしていただきましたので、
どなたかお教えください。

よろしくおねがいします。

02: 名前:yoda投稿日:2006/08/26(土) 09:07
グループの子シェイプの座標は、グループ内での座標となりますので、
検査対象の丸Bの座標を、グループ内での座標に変換する必要があ
ります。
そのことを簡単にテストするには、背景ページの図形の角Aの部分の
の中心を、ページ左下角に移動しておいてから、テストすれば、よく
分かります。

03: 名前:黒猫投稿日:2006/08/27(日) 12:35
返信が遅れまして申し訳ございません。
素早いご対応ありがとうございました。
無事に正しくチェックがされるようになりました。

はじめは親Aとチェックすれば、Aの表示されている図形枠分だけで
チェックされると思っていたのですが、まさか全体とチェックされるとは・・・
Visioは手ごわいですね^^;

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



97: 曜日の自動取得  全レス

01: 名前:Jun投稿日:2006/08/04(金) 10:48
シート名に2006/01/01、
そのシート名を表示するフィールドを指定したステンシル1に
対してステンシル2にその日付の曜日を自動で取得して表示
ということは可能でしょうか?

よろしくお願いします。

02: 名前:M1号投稿日:2006/08/04(金) 16:28
VBA を使って実装ですか?可能ですよ。
シェイプシートだけでも名前と曜日は取得できます。

03: 名前:5610投稿日:2006/08/04(金) 16:42
自分で調べた結果、VBAを使わないとできなさそうだったので
こちらに質問してみました。

シェイプシートでやったほうが簡単でしょうか?
よろしければやり方を教えてもらえないでしょうか?

04: 名前:M1号投稿日:2006/08/04(金) 17:20
あるシェイプから、他のシェイプの情報(例えばカスタムプロパティ)を参照する事はシェイプシートでも可能です。
しかし、汎用的に動作させるためにはVBA などが必要になるでしょう。
そういう意味で「シェイプシートだけでも名前と曜日は取得できます。」と書きました。

シェイプの名前は、シェイプシートであればname 関数、VBA からはname プロパティで得る事ができます。
曜日については、シェイプシートであればweekday 関数が使えます。

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



98: .VDT ファイルに保存してテキストで修正したら開けないのは?  全レス

01: 名前:Made投稿日:2006/07/19(水) 13:13
こんにちは
VISIOのVSD ファイルをXML化してVDTファイルに保存しました
そのファイルのコンテンツをEXCELでテキスト化して開いて修正した後、保存したら
VISIOで認識ができないです。
何で出来ないですか。
教えてください
宜しくお願いします

02: 名前:yoda投稿日:2006/07/19(水) 15:28
VisioにVDTという形式のファイルはないので、VDXでしょうか。
修正したとありますが、修正の内容によっては、Visioのファイル
として、認識できなくなることもあるでしょうね。何をどのように
修正したかにもよると思いますが。

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



99: VCでのオートメーション開発  全レス

01: 名前:MCDB投稿日:2006/07/10(月) 21:05
現在、VCでのVisio2002用オートメーションの開発を計画しています。

理想とする形としては、新規作成の際、Visio起動時に表示される
テンプレート選択画面で作成したオートメーション用のテンプレートを
指定し、ユーザに作成開始させます。
このとき、ドキュメントを開いた直後からVisioの各種イベントのハンドリングを
処理することです。

オートメーション作成のあるドキュメントを確認したところ、
@シェイプシートのアクションセクションにアドオンに命令を発行する方法、
AアドインDLLとして作成し、起動直後からVisioイベントを取得する方法
が記述されていましたが、@の場合は特定のドキュメントオープン直後から
Visioイベントの取得を行うことが出来ないし、Aの場合は全てのドキュメントの
イベントを拾ってしまう上、ドキュメント単位で(オートメーションの)インスタンスが生成されないため、
ドキュメント変更などを自前で管理しなければならない等の問題があります。

Visioに付属のUML作成のテンプレートなどは、
(オートメーション初期化用の)VBAのマクロも無く、
ドキュメントオープン時からVisioイベントをハンドリングしているようですし、
複数のUMLドキュメントを開ける上、UML以外のドキュメントを開くと
無効(動かない状態)になっているように見えます。

Visio付属のUMLドキュメント作成のように、
・ドキュメント起動直後からVisioイベントをハンドリングできる
・特定のドキュメント以外(特定のテンプレートから作られたもの以外)では無効となる
・特定のドキュメントが複数開かれた場合でも、ドキュメント毎の処理を気にする必要がない
 (オートメーションのインスタンスがドキュメントごとに生成される?)
とするには、どのように設計(設定)すべきでしょうか?

抽象的な質問で申し訳ありません。

02: 名前:M1号投稿日:2006/07/10(月) 21:24
>(オートメーション初期化用の)VBAのマクロも無く、
>ドキュメントオープン時からVisioイベントをハンドリングしているようですし、
イベントを図面内に保存しているだけです。
試しにイベント一覧を拾ってみてください。

03: 名前:MCDB投稿日:2006/07/10(月) 23:14
>イベントを図面内に保存しているだけです。
なるほど、そんな方法があるのですね。
お手数ですが、どのような方法で(どのメソッドで?)図面に保存できるのでしょうか?
Documentオブジェクトには該当のメソッドがなさそうでしたが、、、、
申し訳ないですが、なにかヒントでもご教示いただけませんか?

04: 名前:M1号投稿日:2006/07/11(火) 08:19
EventオブジェクトにEventを追加して普通に図面を保存するだけでよかったと思います。
visio2000までは上記の方法でウィザードテンプレートが作れましたよ。

05: 名前:visGeek投稿日:2006/07/11(火) 09:42
SDK付属のPersistent Eventsツールで作成することもできます。

06: 名前:yoda投稿日:2006/07/15(土) 08:57
雑談ですが。イベントリストはインターネットエクスプローラで見ても、
EventListというタグがあるのでわかります。

07: 名前:yoda投稿日:2006/07/15(土) 09:14
間違いました訂正です。
雑談ですが。イベントリストは、XMLとして保存し、ファイルの拡張子を
xmlに変えて、インターネットエクスプローラで見ても、EventListという
タグがあるのでわかります。

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



100: 標準モジュールについて  全レス

01: 名前:shin投稿日:2006/07/13(木) 23:01
標準モジュール上に記述されているコードをコピー・ペースト以外で
変更することは可能でしょうか?

例えば、マクロで一括変換などの方法などで。

02: 名前:yoda投稿日:2006/07/14(金) 05:46
できます。Visioのヘルプには載っていませんが、Excelなどで、
VBprojectから、芋ずる式に調べればわかると思います。
ただし、一部のマクロビールスもこのような方法で作られている
とのことですので、犯人にならないよう気をつけて。
VBAソフトで、VBAのテストフレームワークのVBAUNITの中で、
一部自分を書き換えている部分があります。

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


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