KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

41 :Rowの削除(07)  42 :Geometry1 のセクションについて(17)  43 :JPEGへエクスポート(09)  44 :Visioの処理完了を取得したい。(06)  45 :セルにGUARDがかかっているかどうかの判定方法(08)  46 :ACCESSフォームをVISIO図形から開きたいです(03)  47 :非表示で立ち上げたステンシルの存在確認(09)  48 :指定座標範囲内にあるシェイプの選択について。(05)  49 :VisioからExcelのマクロを使う方法(23)  50 :四角形ツールで表を作成する方法(03)  51 :COMアドイン一覧に表示(07)  52 :シェイプの動的配置をスピードアップするには(05)  53 :Visio2007 Shape Data の Value(03)  54 :IVisEventProc.VisEventProcのsubject引数の中身(06)  55 :DrawLineに、矢印化したいのですが?(03)  56 :object.PrintOut (visPrintAll) で全ページ印刷が出来ない(02)  57 :マスタシェイプに画像を描画(21)  58 :コンボボックスの重複する値(05)  59 :ページの表示角度を変更(12)  60 :VISIO2003 AddOnNameプロパティについて(04)  61 :GUARD()関数で保護されたセルの変更(02)  62 :Cellsを使ったAskセルの参照(08)  63 :用紙上の空きスペース(06)  64 :フリーフォームで閉じたパスを描く方法(04)  65 :挿入された図のPath(03)  66 :ステンシルの表示(11)  67 :自動でステンシルを配置 (15)  68 :シェイプの削除後に処理を実行したい(04)  69 :マスターシェイプの削除(11)  70 :フォーム上のデータ(07)  71 :シェイプシートの値の取得(05)  72 :テンプレートを開くとタイトル(08)  73 :テキストを編集状態にしたい(05)  74 :Visio の線やテキストの文字の座標をテキストに吐き出したい(05)  75 :VISIOで簡易GISソフトを構築する方法を教えて下さい(07)  76 :1(オブジェクト)対多(コネクタ)について(08)  77 :オブジェクトの挿入について(16)  78 :図形の非表示方法 (05)  79 :カスタムプロパティの変更(04)  80 :コンボボックスをツリー状にしたい(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 次のページ  総てのスレッド  スレッド総数 69641 - 50 を表示


41: Rowの削除  全レス

01: 名前:mar投稿日:2007/06/07(木) 10:45
いつもお世話になっております。
行を名前指定で削除する方法はないのでしょうか?
DeleteRow では行番号の指定が必要ですが 行名から行番号の取得がわかりません。

実際には
If shp.CellExists("Connections.Center", 0) Then
// ここで Connections.Center の行を消したい!!
End If

宜しくお願いします。

02: 名前:yoda投稿日:2007/06/07(木) 12:37
こんな感じでしょう。
N = shp.Section(visSectionConnectionPts).Count
For I = 0 To N - 1
If shp.Section(visSectionConnectionPts).Row(I).Name = "Center" Then
shp.DeleteRow visSectionConnectionPts, I
End If
Next

03: 名前:mar投稿日:2007/06/07(木) 13:20
yodaさん ありがとうございます。
やはり、ひとつひとつ見ていくしかないのでしょうかね?

04: 名前:yoda投稿日:2007/06/07(木) 17:49
たぶん、そうでしょう。

05: 名前:visGeek投稿日:2007/06/07(木) 20:05
CellオブジェクトのRowプロパティが行インデクスを
返すので、これをDeleteRowに渡せばループする必要はありません。

06: 名前:yoda投稿日:2007/06/07(木) 20:33
なるほど、それは良い方法ですね。勉強になりました。
I = shp.Cells("Connections.Center.X").Row
shp.DeleteRow visSectionConnectionPts, I

07: 名前:mar投稿日:2007/06/08(金) 18:06
visGeekさん ありがとうございます。
すっきりと解決できました。

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



42: Geometry1 のセクションについて  全レス

01: 名前:Mr.X投稿日:2007/05/14(月) 15:04
お世話になります。

過去ログにも似たような質問がありましたが、
コネクタの折れ数を取得するのに、RowCount を使用する記述を参考に組みましたが、
Visio ファイル単位で、読み込みした値に、違いがあり、戸惑っております。
ロジックとしては、同じ部分を通過しているので、
値がきちんと取得できると思ってましたが、OKな場合と、NGのケースがあります。
何か、情報がありましたら、ご教授願います。

環境:
 WinXP、Visio2003、VS2003です。
ソースの抜粋:
 using visSec = Microsoft.Office.Interop.Visio.VisSectionIndices;
 intCount = visioShape.get_RowCount( visSec.visSectionFirstComponent );
(このintCount へ格納される値が、
実際に描画されている情報と、
ベースとなるマスタシェイプの情報を取得している。
という、2パターン発現しています。)
---

09: 名前:yoda投稿日:2007/05/16(水) 08:51
私のコードも、どこか間違えています。
いつでも、RowCountが5になってしまいます。

10: 名前:visGeek投稿日:2007/05/16(水) 09:24
特に問題ないように見えるので、visShapeが
間違ったシェイプを参照しているのではないでしょうか。
ただ、MessageBoxありなしでRowCountの挙動が
変わるというのは何とも信じがたいです。
再現可能なメソッドを丸ごと公開していただくことはできないでしょうか?

ところでyoda様のコードは
RowCountではなくRowsCellCountになっているようです。

11: 名前:yoda投稿日:2007/05/16(水) 09:44
お粗末なミスでした。
short intCount = shp.get_RowsCellCount(Sec, 0);
は、
short intCount = shp.get_RowsCount(Sec);
の間違いでした。

12: 名前:yoda投稿日:2007/05/16(水) 10:17
このお粗末なミスでご迷惑をおかけしますが、
訂正したコードでは、食い違いはでませんし、
コネクタの折れ曲がりが増えた場合も、
増えるようです。
VBAでの結果とも一致します。

13: 名前:Mr.X投稿日:2007/05/16(水) 13:18
お世話をなります。
ただいま、UP板へ、スクリーンショットをUPさせて頂きました。

14: 名前:yoda投稿日:2007/05/16(水) 14:53
拝見しました、食い違いが出たということは、わかりましたが、
やはり、どこか、コードにエラーがあるのでしょうね。
それしか、考えられないと思います。

15: 名前:yoda投稿日:2007/05/16(水) 15:19
コードが公開できないとなると、自分で探すしかないでしょうね。
がんばってくださいね。

16: 名前:Mr.X投稿日:2007/05/17(木) 09:35
お世話になります。
いろいろとお手数をおかけしました。
描画時の再計算もかかわってそうな気がしますが、
なんとか自力でやろうと思います。
(ただ、諦めムードたっぷりですが・・・)

17: 名前:Mr.Y投稿日:2007/05/26(土) 19:45
『OK』『キャンセル』などの小さいコマンドボタンで
四隅が微妙に丸くて、しかも、マウスが上に来た
だけでボタンの外枠だけ色が変わるという
コマンドボタンはどうやって作るのでしょうか?
何か簡易的に作成する方法があるのでしょうか?
ASPのinput typeで自動で作成されるようなボタンです。
ご存知の方お教えください。

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



43: JPEGへエクスポート  全レス

01: 名前:mar投稿日:2007/05/15(火) 10:31
オートメーションを使ったJPEGファイルへのエクスポートで 品質・解像度・サイズを指定する方法がわかりません。
マクロの記録では記録されず、Document・PageのShapeSheetを見てもそれらしき項目を見つけることが出来ませんでした。
ご存知の方 宜しくお願いします。 

02: 名前:yoda投稿日:2007/05/15(火) 10:35
多分、できないと思います。
指定できるのは、図面の画面で、操作するときだけだと、思います。

03: 名前:mar投稿日:2007/05/15(火) 10:45
yodaさん ありがとうございます。
やはり 無理ですか・・・

04: 名前:visGeek投稿日:2007/05/15(火) 22:53
---
Export メソッドでは、指定したフィルタの既定の設定が使用されます。
既定以外の引数を使用することはありません。
---
とあるので、このメソッドではできないでしょう。
SendKeysが一番簡単でしょうか。。。

05: 名前:mar投稿日:2007/05/16(水) 10:47
visGeek さん いつもありがとうございます。
SendKey を使うのは具体的にはどのような方法でしょうか?
宜しくお願いします。

06: 名前:yoda投稿日:2007/05/16(水) 10:59
SendKeyについての詳細は、ヘルプで調べた方がよいでしょう。
手続きとしては、Visioの図面の画面で操作するとおりのメニューを
出すことになります。たとえば、ファイルメニューを開くには、
AltキーとFキーを同時に押すわkwですが、そのキーシーケンスを、
SendKey で、命令するわけです。したがって、ダイアログが出てきたら、
また、その中のどのオプションを選ぶかも、SendKeysで、命令
するわけです。このとき、Sendkeyが必ず使えることが、保障されて
いるわけではないので、人が手で選ばなければならないところも、
出てくるかも知れませんが。

07: 名前:mar投稿日:2007/05/16(水) 12:45
yodaさんありがとうございます。
ユーザーへ配布するPGにはちょっと厳しそうですね。
どうしてもサイズ関係を触りたいのですが、
デフォルトで運用でうまく行くようDocument側で工夫してみます。

08: 名前:visGeek投稿日:2007/05/16(水) 16:51
いったん(損失の少ない)bmpなどで出力し、Visio以外のAPIで
bmpから望みのjpgを作成するというのはどうでしょうか。

09: 名前:mar投稿日:2007/05/16(水) 18:09
visGeekさん ありがとうございます。
vbでbitmapオブジェクトに取込んでJPEGへ保存する方法もありますね。
一度実験してみます。

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



44: Visioの処理完了を取得したい。  全レス

01: 名前:mar投稿日:2007/05/16(水) 10:56
JPEGへエクスポート の続きなんですが...
VB2005からVisioを立上げ JPEGファイルへエクスポートしているのですが、ファイルを閉じた時点で処理が完了していない場合があります。
VB側でVisioが処理完了したことを知る方法はないのでしょうか?
宜しくお願いします。

02: 名前:yoda投稿日:2007/05/16(水) 11:15
意味がよく分かりませんが、
最初の処理に時間がかかるため、次の処理が始まっては
困る場合があります。
そのようなばあいは、 DoEvents コマンドを間に入れることが
あります。

03: 名前:yoda投稿日:2007/05/16(水) 11:20
それでもだめな場合は、WindowsAPIのSleep関数を使うこともあります。
SleepはVS2005ではメソッドとして使えるようになっています。

04: 名前:mar投稿日:2007/05/16(水) 11:36
yodaさん いつもありがとうございます。
現状 Doevent,Sleep 共に使用しています。
多い場合15ファイル200ページを連続でエクスポートしているのですが、時々 ファイル単位で最後から数ページがエクスポートされていない事が発生してしまいます。
Sleepをもっと長く取ればよいのでしょうが、処理時間も気になります。
エクスポートが終了していることを知ることが出来れば 最短時間で処理できると考えたのですが...

05: 名前:visGeek投稿日:2007/05/16(水) 12:13
試していませんが、VisioIsIdleイベントはどうでしょうか。

06: 名前:mar投稿日:2007/05/16(水) 12:40
visGeekさん ありがとうございます。
VisioIsIdolイベント 早速試してみます。

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



45: セルにGUARDがかかっているかどうかの判定方法  全レス

01: 名前:sap投稿日:2007/05/09(水) 10:56
セルにGUARDがかかっているかどうかプログラム上で判定する方法はあるでしょうか?
FormulaUの値を文字列比較すれば可能かとは思いますが、他に方法がありましたら教えてください。

02: 名前:visGeek投稿日:2007/05/09(水) 12:59
Formulaを変更してみてエラーが発生するかどうか
とういうのはいかがでしょうか。

03: 名前:sap投稿日:2007/05/09(水) 13:10
エラーを発生させずに関数やプロパティなどで判定したいのですが、そういうのはないでしょうか?

04: 名前:yoda投稿日:2007/05/09(水) 16:21
ないでしょうね。

05: 名前:yoda投稿日:2007/05/09(水) 16:28
こんなのはどうでしょう?
Dim shp As Visio.Shape
Dim f As String
Set shp = ActivePage.Shapes(1)
f = shp.Cells("Scratch.X1").Formula
If f Like "GUARD*" Then
Debug.Print f & " GUARD "
End If

06: 名前:sap投稿日:2007/05/09(水) 18:42
やはり、Formulaの値を文字列比較するしかなさそうですね。
visGeekさん、yodaさんアドバイスありがとうございました。

07: 名前:visGeek投稿日:2007/05/09(水) 23:04
On Errorでのトラップを採用したくない理由はなんでしょうか?

08: 名前:yoda投稿日:2007/05/10(木) 08:15
本当は、その方がずっとシンプルなのですがねー。

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



46: ACCESSフォームをVISIO図形から開きたいです  全レス

01: 名前:FISH投稿日:2007/04/28(土) 15:34
VISIO図形のカスタムプロパティでACCESSテーブルレコードを参照できるように様に
なったのですが、
情報がリレーションシップで色々なテーブルから引用されている為IDしか表示されません
出来れば図形をクッリクするとACCESSフォームが開けるようにしたいのですが
やり方が分かりません詳しい方居ましたら教えてください

02: 名前:yoda投稿日:2007/04/29(日) 09:12
getobject や createobject を使えば、よいのではないでしょうか?

03: 名前:FISH投稿日:2007/05/01(火) 12:24
アドバイスありがとうございました
まだ上手くいきませんが連休中にがんばってなんとかしてみます

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



47: 非表示で立ち上げたステンシルの存在確認  全レス

01: 名前:mar投稿日:2007/04/13(金) 16:48
お世話になります。
Application.Documents.OpenEx "C:\XXX.vss", visOpenRO + visOpenHidden
で非表示読込みしたステンシルがあるかどうか確認出来ないでしょうか?
宜しくお願いします。

02: 名前:visGeek投稿日:2007/04/13(金) 18:24
Documents.Item("C:\XXX.vss")で
エラーになるかどうか、はどうでしょうか。

03: 名前:mar投稿日:2007/04/14(土) 22:50
visGeekさん resありがとうございます。
スマートな方法が無いか探していましたが やはりその方法しかないんでしょうか。

04: 名前:yoda投稿日:2007/04/15(日) 08:43
いろいろ、試してみましたが、以下のようにすると、
visOpenで開かれたウインドウ(ドッキングそていない)が、
非表示になっていることから、わかりそうです。
For Each win In Application.Windows
Debug.Print win.Caption, win.Visible
Next

05: 名前:yoda投稿日:2007/04/15(日) 08:48
visOpenで開かれたウインドウ(ドッキングそていない)が、
は、
visOpenHiddenで開かれたウインドウ(ドッキングしていない)が、
と訂正願います。
個人的な都合で、軍手をはめて作業していますので、打ち間違い
が多く、ご迷惑をおかけしております。

06: 名前:yoda投稿日:2007/04/16(月) 09:00
visOpenHiddenの場合は、よいのですが、
visOpenHidden + visOpenDocked の場合は、
いったいどこに隠れているのか、さっぱりわかりません。
どこにいるのでしょうか?

07: 名前:mar投稿日:2007/04/16(月) 17:01
yodaさん いつもありがとうございます。
表示されていなくてもWindowで探すことが出来るんですね。

08: 名前:yoda投稿日:2007/04/17(火) 09:36
visOpenHidden + visOpenDocked の場合は、
いったいどこに隠れているのか、さっぱりわかりませんが、
Documentsの内、Window.documentで、欠けているものを、
探す方法で、隠れているDocumentを、特定することができました。

For Each doc In Application.Documents
count = 0
For Each win In ActiveWindow.Windows
If win.Document.Name = doc.Name Then
count = count + 1
End If
Next
If count = 0 Then
Debug.Print doc.Name & " is now hidden!"
End If
Next

09: 名前:mar投稿日:2007/04/22(日) 15:46
やりたいことにぴったりです。
早速使わせていただきます。

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



48: 指定座標範囲内にあるシェイプの選択について。  全レス

01: 名前:太郎投稿日:2007/04/13(金) 19:09
こんにちわ。
いつもお世話になっおります。

VBAで指定範囲内にあるシェイプを選択はできるのでしょうか?

たとえば、
X軸:0mm
Y軸:300mm
幅:200mm
高さ:40mm
の範囲内にあるシェイプを選択したいのですが・・・。
どうすれば、選択できるのでしょうか?

02: 名前:yoda投稿日:2007/04/13(金) 21:29
Shape.SpatialNeighbors プロパティ、試してみてはいかがでしょう。
Visioのヘルプに、VBAのサンプルもあります。
ただ、サンプルが直接使えるとは、思わないで、
ひと工夫考えてみてください。

03: 名前:yoda投稿日:2007/04/13(金) 21:39
Page.SpatialSearch プロパティ、の方がよいかもしれませんが。

04: 名前:太郎投稿日:2007/04/15(日) 23:13
yoda様

ありがとうございます。

早速、試してみます。

05: 名前:太郎投稿日:2007/04/19(木) 20:19
yoda様

お世話になっております。

Page.SpatialSearch プロパティーを
ようやく理解し、使う事ができました。

こんなに便利なプロパティーがあったとは。。
感動しました。

ありがとうござます。

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



49: VisioからExcelのマクロを使う方法  全レス

01: 名前:pul投稿日:2003/12/26(金) 13:45
初めまして.pulといいます.
つい一月ほど前に初めてVISIOの存在を知った,超初心者です.

Visio側からExcelのマクロ(あるいはアドインにするかもしれませんが)を
呼ぶ方法と作成方法をご存知のかたがいらしたら,教えていただけないでしょうか.

具体的に申し上げますと,
Visio図面上にコネクタでつながったような複数オブジェクトが
存在しています.各オブジェクトに対してExcelブック中の1シートが対応し,
オブジェクトの持つ情報をシートに反映させたいのです.
Visioが行なう図面上の機能と,Excel側でシートに行なう機能を分離して,
それぞれに持たせたいです.

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

15: 名前:yoda投稿日:2006/03/05(日) 08:01
CurDir は、良い方法ですねー。

16: 名前:うめ投稿日:2006/03/06(月) 14:31
出勤してきました。
初めて書き込みしてみたので
返信が入っていてカンドーしました。
yoda様、苺様、ありがとうございます。
早速使いこんでみました。
CurDir便利です、とても。
ほんとうにありがとうございました。

17: 名前:せいめい投稿日:2007/04/19(木) 10:00
yoda様:
DoCmdメソッドで印刷ダイアログが表示できますが、
ほかの位置をクリックすると、このダイアログが消えました。
どうすればこのダイヤログが維持しますか。
ほんとのDialogフォーム形式はどう実現しますか。

以下の語句はその機能を実現できません。
MyApp = AxDrawingControl1.Window.Application
MyApp.DoCmd(Microsoft.Office.Interop.Visio.VisUICmds.visCmdFilePrint)

18: 名前:yoda投稿日:2007/04/19(木) 10:34
「他の位置」というのは、どこですか?
他のウインドウの下に隠れたのではないでしょうか?

「ほんとのDialogフォーム形式」の意味がわかりません。
どういう意味でしょうか?

「以下の語句はその機能を実現できません。」の「その機能」とは
何の機能でしょうか、なにをしたいのでしょうか?

19: 名前:せいめい投稿日:2007/04/19(木) 10:56
yoda様:

印刷ダイアログフォームが閉じる時だけ、他の操作を行うことができます。
「その機能」と言うのは、ダイアログが表示できますし、他の位置をクリックすると、このダイヤログは消えません。

20: 名前:yoda投稿日:2007/04/19(木) 11:54
申し訳ありませんが、意味がわかりません。

21: 名前:yoda投稿日:2007/04/19(木) 12:23
http://msdn.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.visio.developer&lang=en&cr=US [source] [check]
で、質問することをお勧めします。

22: 名前:せいめい投稿日:2007/04/19(木) 13:15
ご迷惑かけて申し訳ございません。

18: 名前:yoda投稿日:2007/04/19(木) 10:34
「他の位置」というのは、どこですか?
→「他の位置」は「印刷画面」以外のところです。

他のウインドウの下に隠れたのではないでしょうか?
→そうですね。確か他のウインドウの下に隠れました。
ただし、お客様の要求に合っていないので、ShowDialogの形が欲しいです。

23: 名前:yoda投稿日:2007/04/19(木) 13:51
printのプログラムはかなり複雑ですので、
Visio SDKのサンプルプログラムをご参考
にすることを、お勧めします。
VisioSDKに、code librarian があり、
print を keyword として検索すると、
出てきます。

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



50: 四角形ツールで表を作成する方法  全レス

01: 名前:X-BOY投稿日:2006/03/03(金) 18:58
すみません教えていただけないでしょうか?
Visioの四角形ツールを使用して、理科の周期表みたいな表を作成したいですが、
手作業では面倒で悩んでいます。
元素記号を1つの四角形ツールに書いて、それを並べるという
作業なのですが、元素記号の一覧をあらかじめ書いておいて、それを
読み取って、1つずつ四角形ツールに書き込んでいくという
ことをしたいです。

お知恵をお貸しいただけないでしょうか・・・

02: 名前:yoda投稿日:2006/03/03(金) 20:22
体裁のいいものを作ろうとすると、手作業にかなうものは、ないでしょうねー。

03: 名前:田中投稿日:2007/04/19(木) 09:47
visGeek様、yoda様 印刷ダイアログが表示でき  Dialogでは、どうなるか知りませんが

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


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