KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

511 :ステンシルの名称をVBAでとれるでしょうか?(02)  512 :スナップと接着の解除方法(01)  513 :オブジェクトとして埋め込んだエクセルシートをVBAで開きたい(04)  514 :自分で自分を閉じる(05)  515 :背景頁をアクティブにする(03)  516 :FindWindow() での Visioハンドルの取得(06)  517 :VISIO2000と2002ってどこまで違うの?(ツールバー編)(01)  518 :GlueToについて(05)  519 :次ページをActiveにする方法は?(04)  520 :名刺(03)  521 :MSのVBAのサポートについて(04)  522 :部分的に選択領域内に入る図形も選択(01)  523 :ApplicationオブジェクトのVisibleプロパティ(02)  524 :VC++ ダイアログがEnterキーで消える(02)  525 :OnKeystrokeMessageForAddon イベント(01)  526 :「Visio2000 SR1」 と 「Visio Standard 5.0」の選択立ち上げ(05)  527 :UMLでのコード自動生成について(VISIO2002)(03)  528 :Visio2002のTextBoxで、IMEが不能になります。(04)  529 :特定のキーを押したときに任意のマクロを起動するには?(02)  530 :テンプレート、ステンシル、ヘルプファイルのインストーラ(02)  531 :VB6からVISIO2000へのハイパーリンクの貼り付けについて(01)  532 :シェイプを選択状態にしたい(03)  533 :接続ポイントのDセル(01)  534 :接続情報(01)  535 :数式の設定(02)  536 :作業状態が保存できません(01)  537 :順番にプログラムを読み込みたい(06)  538 :[挿入]-[フィールド] を VBAで(06)  539 :プログラム起動中は画面を固定したいのです!(01)  540 :Formulaプロパティについて(04)  541 :VB5よりVisioを起動して内容修正したい。(05)  542 :VBから使用ステンシル一覧を取得する方法(04)  543 :textBoxへの書き込み時間(02)  544 :他のプロジェクトのプロシージャを呼び出す方法(03)  545 :ネスとしたイベント関数の抜け方(01)  546 :VBProjects,VBProjectのメソッドやプロパティ(01)  547 :ActiveDocumentを設定する方法(01)  548 :線の頂点の数を変更(増やす)する(02)  549 :データベースのプロパティ(01)  550 :UMLShapeのデータを取得したい(01) 
ログ検索  リロード  前のページ  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 次のページ  総てのスレッド  スレッド総数 696511 - 520 を表示


511: ステンシルの名称をVBAでとれるでしょうか?  全レス

01: 名前:りゅう投稿日:2002/04/01(月) 21:50
はじめまして、早速質問させて頂きます。
ステンシルからシェイプを図面に配置した直後にどのステンシルに所属するのか、
VBAで断定したいのですが、可能でしょうか?教えてください。

02: 名前:名無し投稿日:2002/04/05(金) 16:50
出来ると思います。
開いているステンシルを取得してマスタシェイプを一つ一つチェックして名前が一致するか確認すれば良いのではないでしょうか?

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



512: スナップと接着の解除方法  全レス

01: 名前:名無しさん投稿日:2002/04/04(木) 10:33
プログラム上(VB、C++)からスナップと接着を解除する方法をご存知の方がいらっしゃれば、教えてください

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



513: オブジェクトとして埋め込んだエクセルシートをVBAで開きたい  全レス

01: 名前:Ayako投稿日:2002/01/18(金) 19:25
Visio2000Proを使っています。
オブジェクトとしてエクセルシートを埋め込みました。この埋め込み済み
OLEオブジェクトをVBAから開きたいのです。ExcelのVBAには「Verbメソッ
ド」があってWordやVisioを開けます。Visioにはこの「Verbメソッド」に該当
するメソッドはないのでしょうか?

02: 名前:りょう投稿日:2002/01/21(月) 09:46
Verbメソッドってどのような働きをするのでしょう?
ちなみに私がシートを開いたり作る場合はGetObject(もしくはCreateObject)を使います。

03: 名前:Ayako投稿日:2002/01/22(火) 00:51
レスありがとうございます
具体的には、埋め込んだシートに対して右クリックメニュー→Worksheet
オブジェクト→開くor編集というメニューがあると思うのですが、この2つの
機能をVBA上で使い分けたいのです。
(ExcellのVerbメソッドでは引数によって開くと編集が使い分けられます。)
GetObjectもやってみたのですが、いまいちこちらの思うように動いてくれな
くて。VisioのVBAは初めてなもので、オブジェクトの取得にもまだ苦労している
ような状況です。もう少し研究してみます。

04: 名前:osin投稿日:2002/04/01(月) 22:50
わたしの場合は、エクセルのデータを使いたい
だけなので開くことはしていませんが、以下のものが
参考になれば読んで見てみて下さい。

'**************************************************
Public Sub XLデータ→シェイプsub(DMode As Integer)
Dim I As Integer
Dim theObjects As Visio.OLEObjects
Dim Obj As Visio.OLEObject
Dim sn As String
Dim dt As String
Beep

Set PagesObj = ActiveDocument.Pages
Set PagObj = PagesObj("背景XL")
'-----XLobjをGet
Set Obj = PagObj.OLEObjects(1)  'このページにはエクセル表一つなので1に固定
Set MyXL = Obj.Object ' MsgBox Myxl.Name
'-----XLデータをGet **
Select Case DMode
Case 1
Set XLSheet = MyXL.Worksheets("共通機器")
Set Xdt = XLSheet.Range("AA11:AE211")
Case Else
Set XLSheet = MyXL.Worksheets("動力")
Set Xdt = XLSheet.Range("AA11:AE211")
End Select

'-----対応するシェイプにカスタムプロパティをset
Select Case DMode
Case 1
Set ToPagObj = PagesObj("背景data共通機器")
MODESTR = "共通機器:"
Case Else
Set ToPagObj = PagesObj("背景data動力")
MODESTR = "動力:"
End Select
For jj = 1 To ToPagObj.Shapes.Count
FORM背景data設定.TextBox1 = MODESTR & Str(jj) ’実行中を表示するためフォームを使用。debug.printでも可。
FORM背景data設定.Repaint
sn = "Sheet." & Trim(Str(jj))
Set ToShp = ToPagObj.Shapes(sn)
For rr = 1 To ToShp.RowCount(visSectionProp)
dt = Xdt(jj, rr).Value
'pnn = "Prop.Row_" & Trim(Str(rr))
ToShp.CellsSRC(visSectionProp, visRowProp + rr - 1, visCustPropsValue).FormulaForce _
= Chr(34) & dt & Chr(34)
Next rr
Next jj
'-----
ret_09:
Beep
'MsgBox "完了"
End Sub

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



514: 自分で自分を閉じる  全レス

01: 名前:名無し投稿日:2002/03/25(月) 18:18
Documentを処理して自分で自分を閉じるのって出来ませんよね?
Thisdocument.Close
って出来ますか?

02: 名前:masaru投稿日:2002/03/25(月) 20:58
こんばんは、

Visio2000では、できましたよ!

03: 名前:名無し投稿日:2002/03/26(火) 09:41
Applicationエラーになってしまうのは他に原因があるのでしょうか?
他に処理をしない図面でやったら大丈夫でした・・・

04: 名前:名無しさん投稿日:2002/03/26(火) 16:55
Sub test()
  Dim shpObj As Visio.Shape
 
  Set shpObj = Visio.ActivePage.DrawLine(1, 1, 3, 3)
  ThisDocument.Close
End Sub

Visio2002で空白の図面に上記コードを貼り付けましたが動きましたよ。
保存する/しないのダイアログは出ますが・・・そのへん何かいじってませんか?

05: 名前:名無し投稿日:2002/03/27(水) 14:58
こんにちは、一応解決しました。
他のファイルの図面をコピーして貼りつけるという作業をしていたのですが、
@コピー → コピー元図面を閉じる → 貼りつける
という順番だとエラーになって強制終了してしまい、
Aコピー → 貼りつける → コピー元の図面を閉じる
とやると大丈夫みたいです。

レイヤーの設定を変えると@でも問題なく出来ていてどうして良いか分からなかったのですが、解決しました。
ありがとうございました。

@だとエラーになるのは何故なのでしょうか?

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



515: 背景頁をアクティブにする  全レス

01: 名前:ひろ投稿日:2002/03/22(金) 21:59
すごく初歩的で申し訳ないのですが、前頁がアクティブ頁になっている時に、
背景頁をアクティブにするにはどうしたらいいのでしょうか。。。

02: 名前:投稿日:2002/03/23(土) 18:14
WindowオブジェクトのPageプロパティにアクティブにしたい頁名をセットすれば切り替えられます。
[サンプル]
Public Sub TurnPage()
ActiveWindow.Page = "Background-1" '頁名をセット
End Sub

「頁名をプログラムに入れたくない」という場合は
『次ページをActiveにする方法は?』のりょうさんのレスを参考にして...
(注意:背景頁が1頁の場合です)(背景が複数ページある場合は改良が必要です)
Public Sub TurnPage()
Dim Pag as Visio.Page

For each Pag In ActiveDocument.Pages
If Pag.Background Then
'背景なら頁切り替え
ActiveWindow.Page = Pag.Name
End if
Next Pag
Set Pag = Nothing
End Sub
で実現できます。

03: 名前:ひろ投稿日:2002/03/26(火) 00:02
中さん、有難うございました。
無事にできました!
もっと、勉強します!

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



516: FindWindow() での Visioハンドルの取得  全レス

01: 名前:誰そ彼投稿日:2002/01/28(月) 10:46
誰そ彼と申します。

WindowsAPIのFindWindow()でVisioのウィンドウハンドルを
取得する方法を模索しております。
FindWindow()は2つの引数が有り、
FindWindow(ClassName as String, WindowName as String) という
I/F になっています。
この第2引数のWindowNameを使用して検索することは出来たのですが、
ClassNameでの検索方法が分かりません。何という文字列を
入れるといいのでしょうか?

Visio2000とVisio2002を使用しています。

02: 名前:りょう投稿日:2002/01/28(月) 16:54
FindWindow自体使ったことがないので分からないです(^_^;

03: 名前:do投稿日:2002/01/30(水) 10:56
"VISIOA"ではないでしょうか。Visio2002の場合ですが。

04: 名前:誰そ彼投稿日:2002/01/30(水) 14:29
誰そ彼です。
りょうさん、doさん、フォロー有難うございます。

doさん曰く
> "VISIOA"ではないでしょうか。Visio2002の場合ですが。

Visio2000でもOKでした。(もちろんVisio2002も)
大変助かりました。
GetWindowを駆使してやろうかと思っていたところでした。

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

しかし VisioAって何でしょう?
Visio.Applicationの略?

05: 名前:健一郎投稿日:2002/03/18(月) 20:08
健一郎といいます。
はじめまして。
ウインドウハンドルに関してさらにお聞きしたいのですが
NetMeeting@MicroSoftのクラスネームがわかるかたいらっしゃいましたら教えてください。
>誰そ彼さん
GetWindowを使用してクラスネームを確認できるのでしょうか。
その方法教えていただけないでしょうか。 よろしくお願いします。

06: 名前:誰そ彼投稿日:2002/03/20(水) 14:19
誰そ彼と申します。

NetMeetingのクラス名はわかりません。

GetWindowだけではクラスネームはわかりませんが、
GetClassNameと複合で使用すればわかるのではないかと
思った次第です。

ちょっと手が空かなくて確認していませんが、
GetTopWindowとGetWindowとGetClassNameでNetMeetingの
クラス名を見つける事が出来るのでは?
詳細はAPIの本などをご確認下さい。

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



517: VISIO2000と2002ってどこまで違うの?(ツールバー編)  全レス

01: 名前:いうちゃん投稿日:2002/03/14(木) 22:15
知っている方が居れば、教えてください。

ツールバーボタンをカスタマイズするために、コネクタ/接続ポイント/スタ
ンプツールを表すToolbarSetオブジェクトを参照したいのですが、VISIO
2000では問題ないのに、VISIO2002ではToolbarSetsコレクションに存在
しないので、ItemまたはItemAtIDメソッドで参照できません(勿論VISIO上
には該当のツールバーは存在します)。

こんな感じです(VISIO2002ではtoolbarSetObjがNothing)。

Dim uiObj As Visio.UIObject
Dim toolbarSetObj As Visio.ToolbarSet

Set uiObj = ThisDocument.Application.BuiltInToolbars(0)
Set toolbarSetObj = _
uiObj.ToolbarSets.ItemAtID(visUIObjSetPal_ConnectorTool)

オブジェクトを取得する方法について教示下さい。

また、本件は、Microsoft流に勝手に仕様変更されてしまっている
のでしょうか? だとしたら、我々がその詳細を知ることはできるの
でしょうか?

(注)環境:WindowsNT4.0SP6a + VISIO2002

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



518: GlueToについて  全レス

01: 名前:沙那投稿日:2002/03/06(水) 16:21
みなさん、始めまして!
GlueToについてお伺いします。
わたしもとあるプログラム言語からフローチャートを作るようにVISIOで
プログラムを組もうとしたのですが、のっけからつまづいてしまいました。
四角のシェイプと四角のシェイプをコネクタでつなぎたいという
だけなのですが、うまくいきません。
過去ログを見てGlueToを使えばいいということでしたので、
使ってみたのですが、きっと使い方とかがまずいのだと思いますが、
それぞれのシェイプが現れることは現れるのですが、接続されません。
処理は正常に終わるのですが・・・
どのように対処すればよいかご教授願います。
***以下ソース***
Dim MSH As Visio.Master
Dim CSH As Visio.Shape
Dim SH1 As Visio.Shape
Dim SH2 As Visio.Shape
Set MSH = ActiveDocument.Masters("動的コネクタ")
Set CSH = ActivePage.Drop(MSH, 0, 0)
Set SH1 = ActivePage.DrawRectangle(1, 1, 3, 2)
Set SH2 = ActivePage.DrawRectangle(1, 3, 3, 4)
CSH.Cells("BeginX").GlueTo SH1.Cells("Connections.X1")
CSH.Cells("EndX").GlueTo SH2.Cells("Connections.X2")

02: 名前:投稿日:2002/03/06(水) 18:19
接続されない原因は、
SH1/SH2両方のシェイプに接続ポイントが無いためです。
プログラムを見ますと、
GlueToメソッドの引数に接続ポイントセルを指定していますが、
SH1/SH2共にシェイプを作成した後に、接続ポイントを追加していません。
解決方法としては、
@接続ポイントを追加した四角シェイプをステンシルに登録しておき、
 動的コネクタシェイプみたいにドロップする。
 (DrawRectangleメソッドではなくDropメソッドを使用)
Aプログラムで接続ポイントを追加する。
 (ShapeオブジェクトにあるAddSectionメソッドとAddRowメソッドを使用する)
といった2つの方法があります。
Aの方法は難しいですが、ステンシルに登録しないで済みます。

03: 名前:りょう投稿日:2002/03/06(水) 18:24
Dim shp1Obj As Visio.Shape
Dim shp2Obj As Visio.Shape
Dim shp3Obj As Visio.Shape
Dim dconObj As Visio.Master
Dim stnObj As Visio.Document

'図面に四角を2つ描いてるだけ
Set shp1Obj = Visio.ActivePage.DrawRectangle(1, 1, 2, 2)
Set shp2Obj = Visio.ActivePage.DrawRectangle(3, 3, 4, 4)

'基本フローチャートステンシルを開いて動的コネクタを図面の適当な位置にドロップ
Set stnObj = Visio.Documents.OpenEx("基本フローチャート.vss", visOpenDocked)
Set dconObj = stnObj.Masters("動的コネクタ")
Set shp3Obj = Visio.ActivePage.Drop(dconObj, 1, 1)

'ドロップした動的コネクタの始点・終点を接続したいシェイプの指定位置に接続
shp3Obj.Cells("BeginX").GlueTo shp1Obj.Cells("AlignTop")
shp3Obj.Cells("EndX").GlueTo shp2Obj.Cells("AlignBottom")

手抜きですが雰囲気は掴めると思います。

04: 名前:りょう投稿日:2002/03/06(水) 18:26
ハハッ、中さんと被りましたね(^_^;

05: 名前:沙那投稿日:2002/03/07(木) 09:09
ありがとうございます。
解決できました。

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



519: 次ページをActiveにする方法は?  全レス

01: 名前:Bell投稿日:2002/03/05(火) 22:26
初めて書きます。同じようなスレッドがあったらすみません。

直接指定する方法はどこかのスレッドで見つけました。
ActiveWindow.PageFromName = "ページ - 1"
これじゃなくて、現在表示中のページの次を表示させたいのです。
ExcelのActiveSheet.Next.Selectに相当するコマンド教えてください。
またコマンドの調べ方も教えていただければ幸いです。
ExcelならCtrl+PageDownの操作をマクロ記録するだけで
なんにも考えなくてもプログラム書けちゃうんですが・・・。
VisioもCtrl+PageDownは効くんですが、マクロ記録がないんですよね?

02: 名前:りょう投稿日:2002/03/06(水) 17:53
>これじゃなくて、現在表示中のページの次を表示させたいのです。
こんな感じです↓
Visio.ActiveWindow.Page = Visio.ActiveDocument.Pages(Visio.ActivePage.Index + 1).Name
ページの終端で実行させるとエラーになりますが雰囲気は掴めたのでは・・・

03: 名前:投稿日:2002/03/06(水) 18:29
DOCMD関数(またはApplication.DoCmdメソッド)も使用出来ます。
引数には"1148"(マクロでは"visCmdTurnToNextPage")を指定します。
但し、[表ページから背景ページ]、[背景ページから背景ページ]、
または、[背景ページから表ページ]へは切り換え出来ません。

04: 名前:Bell投稿日:2002/03/06(水) 21:57
ありがとうございました。
Visio.ActiveWindow.Page = Visio.ActiveDocument.Pages(Visio.ActivePage.Index + 1).Nameも
Application.DoCmd (visCmdTurnToNextPage)も動きました。
visCmdTurnToNextPageは
http://www.mster.co.jp/visiosquare/course/02/index03.html [source] [check]にも
書いてあったんですね。
まだまだ私には呪文にしか見えませんが・・・。そのうちわかるようになるんだろうか?

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



520: 名刺  全レス

01: 名前:始めてのVisio投稿日:2002/02/19(火) 16:29
こんにちは。
VBでVisionの中のWordを操作したいのですが、Visioの画面をダブルクリックして、どうやってWordが立ち上がっているのかさえ分からないのですが、どなたかヒントを頂けないでしょうか。
宜しくお願いします。

02: 名前:通りすがりの名無しさん投稿日:2002/02/20(水) 00:02
それ以前にタイトルと内容の関連がいまいちわからないんですが・・・

03: 名前:名無しさん投稿日:2002/02/25(月) 19:31
↓こういうことでしょうか?
http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/mibbs.cgi?mo=p&fo=auto&tn=0185 [source] [check]

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


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