KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

431 :グループ化したシェイプのオブジェクト情報を変更する(03)  432 :LockPinX Y の数式を変化させたい(04)  433 :シェープの選択(03)  434 :データベースリンク図形のリフレッシュ(01)  435 :Visioでのマクロの登録(07)  436 :データベースのプロパティのVBAでの取り出し方(01)  437 :UMLクラス図のプロパティ設定(01)  438 :Excelのデータを取り込むには?(03)  439 :マスタシェイプへの変更が反映されない(03)  440 :UNDOの実行(05)  441 :プリンタの選択(02)  442 :複数シェイプを図面に追加した場合(05)  443 :Visio2002ツールバーのアイコンについて(03)  444 :シェイプの色をショートカットで変更したい(06)  445 :Undoメソッドで例外が発生します。(04)  446 :図面にステンシルファイルをドッキングさせたい(05)  447 :カーソルの座標への移動(05)  448 :VBAでステンシルを編集モードにする(03)  449 :BeforeShapDeleteイベントの作成方法について(03)  450 :ページ挿入される前のイベントを取得したい(03)  451 :VBAでbinファイルを読めるようにしたい(01)  452 :VBAソースとシート上のデータを分けたい(04)  453 :グループ化されたシェイプのメンバシェイプ削除禁止について(03)  454 :カスタムツールバーの追加(01)  455 :接続情報の取得(03)  456 :AlertResponseについて(01)  457 :VBデザイナ画面で出てくるツールバーを消したい(04)  458 :ページ数の表示方法(05)  459 :シェイプシート(04)  460 :文字の行番号について(07)  461 :VBstrの使い方教えて (04)  462 :クリップボードの操作(01)  463 :ForeignObjectについて(02)  464 :アクティブウィンドウの制御(01)  465 :マクロについて(01)  466 :コントロールOptionButtonのon/off、グループ化について(01)  467 :グループ化されたシェイプの背景色を変更する方法(05)  468 :グループのピン座標(08)  469 :VisioのWindowtitileについて(02)  470 :図形の合成について(05) 
ログ検索  リロード  前のページ  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 次のページ  総てのスレッド  スレッド総数 696431 - 440 を表示


431: グループ化したシェイプのオブジェクト情報を変更する  全レス

01: 名前:おつ投稿日:2003/02/21(金) 19:13
VisioVBAで以下の事をしたいのですが、どなたかご存知であれば解決方法のご教授願います。

手順は以下の通りです。
1.Visioに複数のシェイプを作画
2.作画したシェイプをグループ化
3.グループ化したシェイプにシステム上でのIDを付番する

1〜3を一連の処理で行う。

2までは次のソースでできました。
Private Sub Set_Grouping( alParentID As String)

Dim lCount As Long
Dim shpsObj As Visio.Shapes
Dim shpObj As Visio.Shape

With gVisio.ActiveWindow
.DeselectAll
Set shpsObj = gVisio.ActivePage.Shapes
For Each shpObj In shpsObj
If shpObj.Name Like alParentID & "*" = True Then
.Select shpObj, visSelect
End If
Next
.Group

End With
End Sub


そして、この後にこのグループ化したオブジェクトに対して

' '親ID
' .Data1 = alParentID

みたいな感じで、関連付けを行いたいのですが、解決方法が分りません。

どなたかご存知であれば解決方法のご教授願います。

開発環境は
Visio2000(SR1
Windows2000(Pro
です

02: 名前:なか投稿日:2003/02/24(月) 10:55
いまいち質問の内容が理解できないのですが、
Groupメソッドの戻り値のShapeオブジェクトを受け取り
そのShapeオブジェクトのData1プロパティにalParentID
を設定するだけじゃないんですか?

03: 名前:おつ投稿日:2003/02/24(月) 16:46
>なかさん
Groupメソッドをかけた後のShapeオウジェクトの受け取る方法が
分っていなかったです。
なかさんの指摘から、グループ化した時点でVisioが対象
オブジェクトを掴んでいるのがわかりましたので、
Set shpObj = Visio.ActiveWindow.Selection.Item(1)
として、Shapeを受け取る事ができました。

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

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



432: LockPinX Y の数式を変化させたい  全レス

01: 名前:おつ投稿日:2003/02/18(火) 19:54
VisioVBAで以下の事をしたいのですが、
1.四角を作画
2.LocPinXとLocPinYの数式を変更する。

シェイプシートのLocPinXのセルの値はデフォルトで
”Width*0.5”ですが、これを”Width*(-0.1)”のように変更させたいの
ですが、解決方法が分りません。

どなたかご存知であれば解決方法のご教授願います。

開発環境は
 Visio2000(SR1
Windows2000(Pro
です

02: 名前:yoda投稿日:2003/02/18(火) 20:31
たとえば、そのシェイプがセレクトされているとして、以下のようにすればよいと思います。
Dim objShape As Visio.Shape
Set objShape = ActiveWindow.Selection(1)
objShape.Cells("LocPinX").Formula = "Width*-0.1"

03: 名前:おつ投稿日:2003/02/18(火) 21:07
自己解決しました。
セルのFormula プロパティに数式を文字列で代入することで、
シェイプシートに”Width*(-0.1)”等の設定を施すことができました。

04: 名前:おつ投稿日:2003/02/18(火) 21:11
>yodaさんへ
回答ありがとうございます。
私が書き込みするときに、yodaさんの書き込みが見えなかったのですが、
自己レスつけてから、yodaさんの回答を発見してしまいました。
まことに恥かしいかぎりです。

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



433: シェープの選択  全レス

01: 名前:ばん投稿日:2003/02/06(木) 11:39
VBAでシェープを選択させる時にページの直上にいるものに関しては、[ActiveWindow.Select objShp,visSelect]で選択可能なのですが他のシェープの上に乗っているシェープの選択ができません。
具体的には、[ActiveWindow.Select objShp,visSubSelect]で選択させようとしているのですが「無効な選択アクションです。」とエラーになります。
なにが問題なのでしょうか?

02: 名前:なか投稿日:2003/02/06(木) 12:56
WindowオブジェクトのSelectメソッドの場合グループのメンバー図形をいきなり
選択することは出来ません。
まずグループ図形を選択した後にメンバー図形を選択しなければなりません。
objGroup:グループ図形
objShp:メンバー図形
ActiveWindow.Select objGroup,visSelect
ActiveWindow.Select objShp,visSelect

03: 名前:ばん投稿日:2003/02/06(木) 18:06
下記の方法で成功しました。
ActiveWindow.Select objShp.Parent, visSelect
ActiveWindow.Select objShp, visSubSelect
「なか」さまありがとうございます。

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



434: データベースリンク図形のリフレッシュ  全レス

01: 名前:ばん投稿日:2003/02/05(水) 13:26
VBAで図形にリンクしているデータベースのレコードを変更後「図形のプロパティのリフレッシュ」を実行したいと思っています。
流れとしては、図形にリンクするレコードを識別する為の名前を変更し
objTop.Application.ActiveWindow.Select objThisShp, visSubSelect
を実行して更新対象のシェープを選択後
ActiveDocument.Application.Addons(20).Run "データベース 図形のリフレッシュ"
を実行して図形のプロパティの更新を行っています。

【備考】
objTopは、基準になるシェープオブジェクト
objThisShpは、選択対象のシェープオブジェクト(図形のリフレッシュ対象)

上記の流れを実行すると「図形に保存されている情報が読み込めません〜」というエラーがでます。
しかし、その後選択状態の図形で図形のリフレッシュを行うと問題なく図形のプロパティのリフレッシュが行われます。
VBAでselectしてAddonをRunしたものとマウスで図形を選択後右クリックでプロパティのリフレッシュを行うのでは、何が異なるのでしょうか?

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



435: Visioでのマクロの登録  全レス

01: 名前:NaNa投稿日:2003/01/20(月) 11:42
はじめまして
Visioでマクロをやるもは初めてなのですが、VisioのVBAの本を探してみましたが、どの出版社もそのような本は、出版されてないようです。
Excelに比べてVBAのマクロの登録がとても難しいのですが、どのように登録したらよいのでしょうか?
ExcelのようにセルがないのですがVisioでは、どのように場所を指定したらよいのですか?
みなさんは、どのように勉強し何を参考にされていますか?どなたでも結構です教えていただけますか?

02: 名前:ryo投稿日:2003/01/20(月) 19:05
VISIOのメインメニューからツール/マクロ/Visual basicエディタでエディタ画面が開きます。

マクロの実行は同じくメインメニューのツール/マクロ/(ドキュメント名)/名前
もしくはシェイプのダブルクリックでマクロを実行したければ
シェイプを右クリックして書式メニューの基本動作でダブルクリック時の動作でマクロ名を指定します。
シェイプシートでなんらかのアクション(例えばシェイプのドロップ)からマクロを起動する場合は
シェイプシートのイベントセクションにあるEventDropセルに
=RUNADDON("ThisDocument.test")
と入れてください。

03: 名前:NaNa投稿日:2003/01/22(水) 09:03
ryoさんアドバイスありがとうございました。
Excelのようにマクロの記録を簡単にできるのかと思ってました。
マクロを選択しても選択する種類がたくさんあってより詳しく勉強しないとできないことが判りました。
ryoさんは、どのような方法で勉強されたのですか?

04: 名前:ryo投稿日:2003/01/22(水) 19:16
昔はDVSというのが付いていてVBのサンプルソースやVBAを含んだテンプレート、
ソリューション開発ガイドという本(PDFやHELP版も同封)など学習には苦労しなかったんですが、
最近はそういう学習意欲を掻き立てるようなオマケ?が入っていないようですね。

05: 名前:NaNa投稿日:2003/01/27(月) 09:09
ryoさん早速のレスありがとうございました。
ExcelでVBAを少し勉強したのですが、簡単なサンプルはやってみました。
でも、Visioに役立てられるほど身についておらず、これからもっと勉強しようと
思ってます。
Helpをより効果的に使うとよい、とどこかの本に書いてあったのですが、どのようなものを
インストールすればよいのですか?

06: 名前:ryo投稿日:2003/01/30(木) 09:51
VISIO2002を普通にインストールしたらVISIOのメインメニューから開発者用リファレンスで
オートメーションやシェイプシートのHELPが見れます。

07: 名前:NaNa投稿日:2003/02/03(月) 11:40
ryoさん3回目のレスありがとうございました。
早速やってみました。こんなところにあったなんてすごく感動しました。
開発者用リファレンスを参考にがんぼってみます。

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



436: データベースのプロパティのVBAでの取り出し方  全レス

01: 名前:なべち投稿日:2003/01/29(水) 16:11
皆様よろしくお願いいたします。
VISIO2000(SR1)を使用しています。
データベースのエンティティ関係図を作成しているのですが、エンティティシェイプの中には、カラム名・データ型・PK・必須などの項目を格納してる、「データベースのプロパティ」があります。
この内容をVBAで取り出すにはどうしたらよいのでしょうか??
カラム名だけならば、
  'クラス名を表示
Debug.Print visShape.Shapes.Item(1).Text
'カラム名を表示
Debug.Print visShape.Shapes.Item(2).Text
で、出力できるのですが、データ型や、PK・必須などの情報を取り出したいです。
方法をご存知の方はご教授ください。

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



437: UMLクラス図のプロパティ設定  全レス

01: 名前:usk投稿日:2003/01/28(火) 15:53
はじめまして。
VBAでクラスを作成し、クラス名・属性・操作を設定するプログラムを作成しています。
クラスを作成し、クラス名を設定するところまでは以下の方法でできました。

Set ShpObj = ActivePage.Drop(MasterObj, 0, 0)
ShpObj.Shapes.Item("Name").Text = "クラス名"

しかし、属性・操作にデータを入れる方法が分かりません。
書籍等にも載っていないので、どなたかご存知の方おしえていただけませんか?

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



438: Excelのデータを取り込むには?  全レス

01: 名前:ゆかりん投稿日:2003/01/17(金) 15:36
ExcelのデータをVisioに取り込みたいのですが、始めにVBA入門の本を購入し少し勉強しました。
肝心なExcelのデータをVisioに取り込む例や方法が書いてありませんでした。
良い本か良い方法を、 どなたか教えてください。 

02: 名前:ryo投稿日:2003/01/20(月) 18:54
エクセルのセルを参照する簡単なコードですが・・・
Sub test()
 Dim appExcel As Excel.Application

 Set appExcel = Excel.Application
 appExcel.Workbooks.Open ("エクセルファイル.xls")

 For Row = 1 To 10
  For Col = 1 To 10
   Debug.Print appExcel.ActiveSheet.Cells(Row, Col).Text
  Next
 Next
End Sub

参照設定でエクセルのタイプライブラリをONにしてください。

03: 名前:ゆかりん投稿日:2003/01/23(木) 14:18
ありがとうございました。
早速試してみます。

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



439: マスタシェイプへの変更が反映されない  全レス

01: 名前:CHERRY投稿日:2003/01/15(水) 17:30
ステンシル中のマスタシェイプに、変更を加え、
変更後のマスタシェイプを図面上にドロップした場合、
加えたはずの変更が、図面上に配置されたシェイプに反映されない場合が
あります。

具体的には、マスタシェイプのシェイプシートに『ユーザ定義セル』のセル
を追加した場合に、変更したマスタシェイプを図面上にドロップしても、
図面上のシェイプには追加されたはずの『ユーザ定義セル』に追加した
項目が追加されていない状態です。

どなたか、同様の現象が発生した方がおられましたら
その対処法をご教示いただけませんか。

02: 名前:CHERRY投稿日:2003/01/16(木) 14:13
解決いたしました。

ドローイングエクスプローラ内のマスタシェイプから、マスタシェイプを変更した場合、
テンプレートファイルを保存しないと変更が反映されないことを知りませんでした。
上記の場合、なぜかわかりませんが、テンプレートを一回保存すると
変更が反映されるようになりました。

03: 名前:ryo投稿日:2003/01/17(金) 09:09
>テンプレートファイルを保存しないと変更が反映されないことを知りませんでした。
この部分が良くわからないのですが、マスタシェイプウィンドウを閉じる時に
「・・・すべてのインスタンスを更新しますか?」と聞かれませんか?

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



440: UNDOの実行  全レス

01: 名前:CHERRY投稿日:2002/11/11(月) 20:17
COMアドインからのUNDOを実施したいと考えますが、
以下の場合、UNDOが実行できません。

「ユーザーがシェイプのサイズを変更後、COMアドインから
サイズ変更処理をUNDOする」

この場合、COMアドインで既に取得しているAPPオブジェクトの
UNDOメソッドを使用していますが、
「サイズ変更」が元に戻りません。

VBAからユーザの処理をUndoする場合、AppオブジェクトのUndo
メソッドを呼び出すだけではダメなのでしょうか?

どなたか、ご存知の方がおられましたらご教示願います。

02: 名前:なか投稿日:2002/11/12(火) 10:58
同じ現象かどうわかりませんが、
アドイン等で行うUndoとVisio上で行うUndoの動作が違うと言う現象は
私も起きたことがあります。
その時はそれほど必要な機能でなかったのでUndoするのは諦めました。
その時に考えたのですが、Visioに対して直接メッセージを投げてやれば
上手くUndo出来るんじゃないかなと思ったのですが、試してません。
やる気があるなら一度試して見て下さい。(出来たら結果をお知らせ下さい)

03: 名前:CHERRY投稿日:2003/01/15(水) 17:37
わたしがフックしたイベント内でVisioに直接メッセージを送信しましたが、
元に戻りませんでした。
しかし、メッセージを直接投げることでUndoのかかる場合もありました。

全て試したわけではありませんが、現在
ConnectionsAddedイベントにてUndoを実行していますが、
正しくUndoされません。

実現したい機能としては、
『コネクタが図形に接続された場合、ある規則に従い 正しい接続
であるかをチェックし、正しくない場合はUndoで接続前の状態
に戻す』というものです。
よって、ConnectionsAddedにて接続チェックを行っていますが、
Undoできない状態です。。。

もし、なにかよい方法がありましたらご教示いただけませんか?

04: 名前:なか投稿日:2003/01/16(木) 09:14
http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/auto/index.html#7 [source] [check]
を参照して下さい。

05: 名前:なか投稿日:2003/01/16(木) 09:35
すいません。
上記のアドレスだと問題あります。
以下を参照して下さい。
http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/mibbs.cgi?mo=p&fo=auto&tn=0269 [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 次のページ  総てのスレッド  スレッド総数 696431 - 440 を表示