KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

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)  131 :シェイプのコピーを制限する方法について(02)  132 :図面をresizeする方法(09)  133 :絵のイメージで表示し、イベントはとりたい(04)  134 :EXCELのタスクをCOLSEするには?(03)  135 :vb6.0での(03)  136 :続)EXCELのデータを取り込むには?(03)  137 :VC++からのオートメーション起動について(02)  138 :drawingcontrol上の図面の印刷(06)  139 :シェイプがマスターより派生されたかどうか調べる方法(09)  140 :改行コードについて(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 次のページ  総てのスレッド  スレッド総数 696101 - 110 を表示


101: "XXX.vdx" - > "XXX.vsd" に変換する方法は?  全レス

01: 名前:KKK投稿日:2006/07/10(月) 11:44
こんにちは
VDX ファイルを XMLに変更、コードを修正した後でVDXファイルに戻る方法はなんですか?

02: 名前:KKK投稿日:2006/07/10(月) 11:59
いろんな変換規則がありますが、どちらに変えてどうして保存すればいけますか?
ー_−;; ソースは見えましたが、、規則がきれいじゃないですね.
T.T 

03: 名前:名無しさん投稿日:2006/07/10(月) 13:25
*.vdx → *.vsd ならば、VISIO に読み込んでVISIO図面(*.vsd)で保存したら良いと思います。

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



102: 前に作ったVISIOファイルから内容だけ一発変更はできますか?  全レス

01: 名前:幸田投稿日:2006/07/03(月) 15:40
申し訳ないですが、、
VISIOの初心者です。
VISIOで違う人が作ったものから中の内容だけを修正するんですが、、
EXCELみたいに検索のマクロはできないですね、、
OBJECTの認識もできてないから修正するターゲットの指定も無理だし、、
SHAPEで設定されている見たいんですが、EXCELの一覧からどうしたら
いっきに変更ができますか?

PS> EXCELの一覧には修正前に(現在のテキスト内容,修正後のテキスト内容が入ってます。)
それを利用して現在のVISIOファイルを修正したいです。
Ctrl+C / Ctrl+V ばかりしながら修正するにはファイルが100個以上なんで、無理ですから
その方法を知りたいです。
宜しくお願いします。

02: 名前:yoda投稿日:2006/07/03(月) 16:00
同じ質問をあちこちにしないようにしましょう。
早くお答えが欲しいという気持ちはよくわかりますが、
一生懸命お答えしようと思っているものにとっては、
大変不愉快なものです。

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



103: Drawing Controlへの文字データのドラッグ&ドロップについて  全レス

01: 名前:いぐいぐ投稿日:2006/06/29(木) 11:43
VS2005(C#)+Drawing Controlで、VS2005のデータグリッドの文字を
Drawing Controlのシェイプの上にドラッグ&ドロップして、文字データを
シェイプに渡そうとしています。
しかし、Drawing Controlはドラッグ&ドロップ関係のイベントをもたないた
め、以下のような手段で実現しています。
1.ステンシルにダミーのマスターシェイプを準備する。
2.データグリッドからドラッグすると、ダミーシェイプに文字をセットする。
3.Drawing ControlのShapeAddedイベントで、追加されたシェイプがダミー
シェイプだったらその下にあるシェイプにダミーシェイプの文字をセットし
て、ダミーシェイプを削除する。
余計なシェイプ削除操作も入り、あまり良い方法ではありません。
もっとスマートに出来る方法はないでしょうか?

02: 名前:yoda投稿日:2006/06/29(木) 13:38
文字データを渡したいシェイプをあらかじめ、選択状態にしておけば、
どうでしょうか?Excelのセルからのドラッグ&ドロップでは、うまく行
できましたが。

03: 名前:いぐいぐ投稿日:2006/06/29(木) 15:48
ドロップによって渡し先のシェイプを指定することが目的ですので、
ドラッグ時点ではまだ対象シェイプが分からないため、選択するのは
ちょっと無理です。
ドラッグ中のDrawing ControlはMouseMove等のイベントもとれないため
難しいかもしれませんね。
参考までに現状のコード抜粋を以下に貼り付けます。


<ドラッグ時のコード抜粋>
Visio.Document ADocument =
axDrawingControl1.Window.Application.Documents["sample.vss"];
Visio.Master AMaster = ADocument.Masters.get_ItemU("dummy");
AMaster.Shapes[1].Text = "ドロップする文字"; ←文字列をセット
ADataObject = new DataObject(AMaster); ←sample.vssのdummyをドラッグ
dataGridView1.DoDragDrop(ADataObject, DragDropEffects.Copy);

<ShapeAddedイベントのコード抜粋>
if(e.shape.NameU=="dummy") {
x = e.shape.get_Cells("PinX").ResultIU;
y = e.shape.get_Cells("PinY").ResultIU;
Visio.Document ADocument =
axDrawingControl1.Window.Application.Documents["sample.vss"];
igtext = ADocument.Masters.get_ItemU("dummy").Shapes[1].Text;
e.shape.Delete();
Visio.Page APage = axDrawingControl1.Window.Document.Pages[1];
Visio.Shapes AShapes = APage.Shapes;
maxco=AShapes.Count;
for (i = 1; i <= maxco; i++)
{
intRetVal=AShapes[i].HitTest(x, y, 0.125);
switch(intRetVal)
{

case 0: //外
break;
case 1: //線上
break;
case 2: //中
AShapes[i].Text = igtext;
break;
}
}
}

04: 名前:yoda投稿日:2006/06/29(木) 19:30
>>ドロップによって渡し先のシェイプを指定することが目的ですので、
>>ドラッグ時点ではまだ対象シェイプが分からないため、選択するのは
>>ちょっと無理です。
そんなことはないとおもいますよ。ダミーの四角形を作っておくだけで
よいと思います。

05: 名前:いぐいぐ投稿日:2006/06/29(木) 19:52
なるほど、たしかにできました。
いろいろと応用もききそうですね。
余計なコードを書いていたかもしれません。
有難うございました。

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



104: ファイルが見つかりません データ入出力作成 VB6.0  全レス

01: 名前:アレキサンダー投稿日:2006/06/29(木) 11:35
VB6.0での質問なのですが。
フォルダー内にファイルがあるのに認識されないのですが。
どうしたらよいのでしょうか?
fno = FreeFile
Open "EX.BAS" For Input As fno Len = 32000 ←エラー箇所
---------------------------------------
fno2 = FreeFile
Open "RD.H" For Output As fno2 Len = 32000 ←エラー箇所
---------------------------------------

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



105: 文字セットの方法  全レス

01: 名前:ときお投稿日:2006/06/27(火) 19:01
また、いきずまってしまいました。
Visioにアドインソフトを追加しており、そのソフトからエクセルにエクスポートする処理となっていますが、
その際、エクスポートのファイル名を聞いています。そのファイル名をページ名にしてたかたちで文字を
セットしたいのですが、ぜんぜんどのようなプログラミンを組んでよいのかわかりません。
何方か教えていただけないでしょか?初心者を助けてください。お願いします。

02: 名前:yoda投稿日:2006/06/27(火) 20:06
意味がわかりません。文章をもう一度、ご自分で、読んでみてください。
わかりますか?

03: 名前:ときお投稿日:2006/06/28(水) 09:02
説明不足ですいません。
実話、マイクロソフトで、「内部統制ツール」を無料配布されているものを追加しております。
そのツールの中の処理で、”エクセルへのエクスポート”と言う機能があります。
その処理は、アクティブであるページの情報だけが、エクセルへエクスポートするようになっており、
複数のページがある場合、毎回その処理を選択して、エクポートするエクセルのファイル名を入力しなければなりません。
そこで今回、処理をマクロ組んで、1度にすべてのページをエクスポートしたいと思ってプログラミングに挑んでいました。
そのときに、ページ名の取得はできましたが、エクセルのエクスポートのファイル名を聞いてくるところに、ページ名をファイル名として
自動的にセットしたいのですが・・・・。それが出来ずにいるところです。これでわかりますでしょか?宜しくお願いいてします。

04: 名前:yoda投稿日:2006/06/28(水) 10:53
「内部統制ツール」の分かる人でないと分からないとは思いますが、
「エクセルのエクスポートのファイル名を聞いてくるところ」が、単に
ダイアログに打ち込む形式なら、手作業で入れるしかないでしょう。
プログラムのインターフェイスが用意されているなら、その説明を
読むしかないのではないでしょうか。それがVisioのページまで、
受け付けるようになっているのか、確かめた方が良いと思います。
もし、そうであれば、そこの、何がどのように分からないのか、
もっと、具体的に教えていただけませんか?

05: 名前:ときお投稿日:2006/06/28(水) 11:01
マイクロソフトでは、「内部統制テンプレートに対するサポートは行いません。よって 一切のお問い合わせにはお答えできませんのでご了承ください。」となっているようです。お手数をおかけしました。本当にありがとうございました。

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



106: VB.NETでMouseMoveイベントでShape上かどうかを判定したい。  全レス

01: 名前:ちろ投稿日:2006/02/01(水) 18:13
VB.NETでDrawing Control を貼り付け、Shapeを複数配置します。
マウス移動(MouseMoveイベント)でShape上かどうかを判定し、
Shapeのサイズや座標を取得したいのですが、
shp.Cells("PinX")等は、VBAでしか使用できないのでしょうか?

06: 名前:yoda投稿日:2006/02/01(水) 21:14
今、.Netが使えないので、分かりませんが、
型が違うと言っているような気がします。(違うかも)
Cellはセルオブジェクトだから? というのなら、
Resultプロパティを使って、
dblPinX = ShpsObj.Item(ObjCnt).Cells("PinX").Result("")
とでも、してみてはいかがでしょう。でも、そんなことあるのかなあー。

07: 名前:ちろ投稿日:2006/02/01(水) 21:27
あっ。できました。
すごい!ありがとうございます。
実はよくネットの天気図で見るような、日本地図にマウスを置くと、
地方がハイライト又はフリッカ表示され、クリックすると地方が拡大され、
詳細の県の天気予報が表示されるようなイメージを作りたいのですが、
Visioでそれが可能でしょうか。
Visioについては、本日調べ始めたばかりで、プロト作成まではいってないのですが。
作りたいのは、上のようなイメージのネットワーク図なのですが、
まずは、実現性について教えて頂きたいです。
宜しくお願いいたします。

08: 名前:yoda投稿日:2006/02/02(木) 08:59
マウスイベントに、フォーカスだけで反応するものは、
ないと思いましたが、よく分かりません。
でも、Webブラウザなら簡単にできそうなことを、
なぜ、苦労してVisioでするのかなー、、、、、

09: 名前:ちろ投稿日:2006/02/02(木) 09:48
Webブラウザって???
システムとしては制御系のシステムで、開発はVb.Netです。
そこで使えるツールなら何でもいいのですが、メンテナンス画面でネットワーク図が
作れることと、表示画面でその作成したネットワーク図を表示し、
07: 名前:ちろ投稿日:2006/02/01(水) 21:27
で記載したイメージのことを実現させたいのです。
Web関係のシステムを使ったことがないのですが、教えていただけませんか?

10: 名前:yoda投稿日:2006/02/03(金) 11:02
ご参考になるかどうか、分かりませんが、
http://www.mster.co.jp/visiosquare/cgi-bin/cbbs/file/DetectMouseLocation.lzh [source] [check]
に、マウスをただ移動させただけでも、マウスがどのシェイプの上にある
のか、を検出する、サンプルマクロの付いた図面をアップしました。
これは、別のスレの、マウスの右ボタンを押した場合のサンプルマクロと、
ほとんど同じです。

11: 名前:削除されました投稿日:削除されました
削除されました

12: 名前:削除されました投稿日:削除されました
削除されました

13: 名前:ときお投稿日:2006/06/27(火) 09:01
答えてネットでここのサイトを知りました。
とっても助かりました。
みなさん、ありがとうございました。

14: 名前:ときお投稿日:2006/06/27(火) 09:15
間違っていれてしまいました。
すいません。

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



107: アクティブなアプリケーションにキー コードを転送したい。  全レス

01: 名前:ときお投稿日:2006/06/26(月) 18:50
はじめまして!
ここ最近、仕事でVisioをよく使うようにないました。超初心者です。
今回マクロで、「アクティブなアプリケーションにキー コードを転送したい。」
のですが、エクセルですと”SendKeys メソッド”を使うとできますが、
Visioでは、このメソッドがないため、困っています。ようは、キー順に
動作させたいのですが・・・・。どうかわかる方教えていただけないでしょうか?
よろしくお願いします。

02: 名前:yoda投稿日:2006/06/26(月) 20:08
Visioでも使えますよ。VBAのステートメントですから。

03: 名前:ときお投稿日:2006/06/27(火) 09:07
yodaさんありがとうございます。

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



108: ページ並べ替えの制限方法  全レス

01: 名前:小鳥投稿日:2006/06/15(木) 21:59
はじめまして。
Visio初心者の小鳥です。
Visio2003を使用しています。

シートの並べ替えを制限したいのですが、
制限する方法はありますか?

具体的には、挿入されたシートの順番を変えられないように
制御したいためです。

よろしくお願いします。

02: 名前:yoda投稿日:2006/06/16(金) 09:04
ちょっと、ややこしそうですねー。
たとえばVBAのDocument_DocumentChanged イベントで、ページの
移動が検出できるので、検出したら強制的にUndoする、というのは
どうでしょう?

03: 名前:visGeek投稿日:2006/06/16(金) 10:17
「ページの並べ替え」メニューを
disableにしてしまうという手もあるかもしれません。

ところで、並べ替えを制限したい理由はなんでしょうか。
もしPage.Indexと何かを関連付けているからだとすると
IndexではなくIDを使用するようにすれば問題ないはずです。

04: 名前:小鳥投稿日:2006/06/16(金) 11:29
yodaさん、visGeekさん
さっそくの返信ありがとうございます。

>yodaさん
Document_DocumentChangedイベントを拾って、
application.undoを実行しようとすると、
例外が発生してしまいます。
なぜでしょうか???

過去ログを参照したところ記事は見つかったのですが
ちょっと難しくて理解できませんでした・・・、すみません。

>visGeekさん
現在、VisioをベースにしてVBAで簡単なアプリを作成しています。
ユーザーにはアプリを起動したときのシート順番(index)で
図面を作成してもらいたいと思っています。

確かに、「ページ並べ替え」のメニューを非活性にすればと思ったのですが、
シートをドラッグして移動できてしまうようなので、何かしら制御が必要かなと思いました。

05: 名前:yoda投稿日:2006/06/16(金) 11:51
undoは、apiを使ってください。何年も前に、ここで教わったものです。
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Sub DoUndo()
hwnd = Visio.Application.WindowHandle32
Call PostMessage(hwnd, &H111, &H3F9, hwnd)
End Sub

Sub DoRedo()
hwnd = Visio.Application.WindowHandle32
Call PostMessage(hwnd, &H111, &H3FA, hwnd)
End Sub

06: 名前:小鳥投稿日:2006/06/16(金) 14:13
yodaさん

APIを使用してundoできました。
Document_DocumentChangedイベントが発生したとき、
何のプロパティが変更されたか分るのでしょうか?

07: 名前:yoda投稿日:2006/06/16(金) 14:16
ヘルプには、図面のプロパティが変更されたときに出る、と書いてあった
と思います。確かめてみてください。

08: 名前:小鳥投稿日:2006/06/16(金) 14:58
yodaさん

上記の記述が分りづらい文面ですみません。
上記の内容を訂正します。

「このイベントが発生したとき、図面プロパティの中のどのプロパティが
変更されたか識別する方法はありますか?」と言う質問をしたかったのです。

09: 名前:yoda投稿日:2006/06/16(金) 16:28
実際に、試して見たほうが早いと思いますが、変更前の図面のプロパティ
をどこか(ユーザー定義セルがいいと思います)に記憶しておいて、イベ
ント発生時に、それと比較したら、わかるような、感じがしますが、いかが
でしょう?でも、ページの変更を阻止するためだけに、そのようなチェック
が必要なのでしょうか?ページの順序が変わったかどうかだけを、比較
してチェックすれば、よいような、感じがしますが、いかがでしょうか?

10: 名前:小鳥投稿日:2006/06/21(水) 15:53
yodaさん

返事遅れました。

yodaさんのアドバイス通り、ページの順序の変更をチェックして
実現できました。

ありごとうございました。

また、何かありましたら参考にしていただきます。

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



109: ステンシルの編集状態判別  全レス

01: 名前:黒猫投稿日:2006/06/11(日) 20:04
はじめまして
いつも色々と参考にさせてもらっております。

早速ですが、質問させてもらいます。
ステンシルの編集状態を判別して、
「ステンシルを編集状態にして開き直す」か
「処理をしない(編集状態のまま)」のどちらかを行ないたいのですが、
編集状態を判別する方法などはあるのでしょうか?

似たようなスレがあったのですが無回答のままで終了していましたので、
新規のスレをたてて質問させていただきました。
どうぞよろしくお願いいたします。

02: 名前:visGeek投稿日:2006/06/11(日) 20:22
DocumentオブジェクトのReadOnlyプロパティで判別可能です。

03: 名前:黒猫投稿日:2006/06/11(日) 21:10
素早い御返答ありがとうございます。
こんなに早く解決するとは思いませんでした。
すごく簡単なことだったんですね・・・
今度からはもっと調べていきたいと思います。

本当にありがとうございました。

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



110: シェイプのコピー制限  全レス

01: 名前:イサキ投稿日:2006/06/07(水) 10:40
いつもお世話になっております。
Visio初心者です。

ドキュメント上でシェイプのコピーを(右クリックのコピー/ctl+c)
一切禁止を禁止したいのですが、シェイプのコピーイベントを取得できるでしょうか?

どなたかご存知でしたらご教授いただけませんか?
よろしくお願い致します。

02: 名前:visGeek投稿日:2006/06/07(水) 13:53
おそらく簡単にはできないでしょう。
サブクラス化してコピーを握りつぶすぐらいでしょうか。

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


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