KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

481 :範囲選択された文字を取得するには?(01)  482 :ローカル座標系の点の変換 (07)  483 :VISIO図面の中の図形やテキストの文字や座標を取得するには?(15)  484 :カスタムプロパティの値をAccessのテーブルにセットするには?(03)  485 :VBAで図形のテキストを設定(02)  486 :グループ図形内の子供シェイプの選択 (04)  487 :document名の英文字(01)  488 :VBAからのアクション設定(03)  489 :Visio/VB間のアクティブウィンドウの制御??(01)  490 :RUNADDONが95では効かない!?(01)  491 :Visio2002よりvisio5.0形式で保存(05)  492 :ステータスバー (04)  493 :VBからのページサイズ設定について(03)  494 :VBからコネクタ線を制御する方法ありますか?(01)  495 :シェイプ回転後の幅と高さを取得したい(04)  496 :VBAで図形の回転を行いたい(03)  497 :Exportメソッドの設定の変更方法?(01)  498 :SetResults メソッド の使い方(03)  499 :VBからShapeをダブルクリックした時のイベントの制御(05)  500 :VBAでdxfを読み込む方法は?(01)  501 :自動で文字列ステンシル配置、LocPinXを求めるには?(01)  502 :ユーザにページの名前を変更させない方法は?(05)  503 :Visioのウィンドウをアクティブにするには?(02)  504 :UMLステンシルのプロパティ設定(01)  505 :Win9X と Visio2000(03)  506 :フォーム内での図形描画(02)  507 :メニューへのマクロの関連付けと引数の渡し方(01)  508 :データベースの内容を図面に自動で反映する方法(03)  509 :SETUP時エラー(01)  510 :VBAの参考書(01)  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) 
ログ検索  リロード  前のページ  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 次のページ  総てのスレッド  スレッド総数 696481 - 490 を表示


481: 範囲選択された文字を取得するには?  全レス

01: 名前:なか投稿日:2002/07/31(水) 11:39
なかです。

shapeのテキストで範囲選択された文字を取得する方法を知っている方
御教授お願いします。

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



482: ローカル座標系の点の変換  全レス

01: 名前:Licca投稿日:2000/03/29(水) 12:14
Shapeオブジェクトのローカル座標系の点をPageオブジェクトなどの座標系の点に変換するXYToPageメソッドの使い方について教えてください。
構文
shpObj.XYToPage x, y, xprime, yprime
要素  説明
shpObj 対象となる Shape オブジェクトです。このオブジェクトの座標系からポイントを変換します。
x    shpObj の座標系における x 座標です。
y    shpObj の座標系における y 座標です。
xprime Page または Master オブジェクトの座標系における x に対応する x 座標です。
yprime Page または Master オブジェクトの座標系における y に対応する y 座標です。

とあるのですが、どうやって使ったら良いのか分かりません。
バージョンは2000です。

02: 名前:管理人投稿日:2000/03/30(木) 11:18
2000からのメソッドですね。
使ったこと無いからわかりましぇ〜ん。
じゃ肥やしに成らないので後ほど調べてみます。

現在年度末人海戦術モードの管理人・・・

03: 名前:管理人投稿日:2000/04/04(火) 12:03
亀レスですが・・・
グループ内の図形位置(PinX,PinY)をページ座標系に置き換える場合の例で説明します。

サンプル?は
http://visio-square.hypermart.net/cgi-bin/upload/image/003.lzh [source] [check]
です。

グループ図形A(pshpObj)の中に図形B(shpObj)があると仮定して、
BのEventXFModからCALLTHIS("thisdocument.test")で呼び出します。

Public Function test(shpObj As Visio.Shape)
Dim shpX As Double
Dim shpY As Double
Dim pagX As Double
Dim pagY As Double
Dim pshpObj As Visio.Shape


'親のシェイプを得る
Set pshpObj = shpObj.Parent

'自分のXY
shpX = shpObj.Cells("PinX")
shpY = shpObj.Cells("PinY")

'親座標系からページ座標系への変換
pshpObj.XYToPage shpX, shpY, pagX, pagY

'自分のuser定義セルに変換結果を書き込む
shpObj.Cells("User.x").Formula = pagX * 25.4
shpObj.Cells("User.y").Formula = pagY * 25.4

となります。
文才が無いのでコードの羅列になちゃいましたが分かるでしょうか?


(´ー`)y−~~ でわでわ

04: 名前:管理人投稿日:2000/04/04(火) 14:29
サンプルの説明?を忘れてました・・・
サンプルはグループ図形中の丸の位置(PinX,PinY)をページ座標系に変換しています。

#フ〜、自分で「文字間を全角で・・・」と御願いしているのに
#コピー&ペーストで書き込んじまった

05: 名前:Licca投稿日:2000/04/12(水) 08:52
大変遅くなりましたが、解答ありがとうございました。(_ _)
グループ図形が更にグループ図形を含んでいる場合などは処理を二重に行うのでしょうか?

それにしても管理人さんはvisioのことは何でもご存知ですね。(@@

06: 名前:管理人投稿日:2000/04/12(水) 09:17
> グループ図形が更にグループ図形を含んでいる場合などは処理を二重に行うのでしょうか?
XYToPage、TransformXYTo、XYFromPageの各メソッドを図形構造や求める値によって使い分ける必要が
ありますが、基本的にはLiccaさんの考え方でOKだと思います。

> それにしても管理人さんはvisioのことは何でもご存知ですね。
ROMってる人の中には私より凄い人が居ると思いますよ・・・
旧VISIO社の方や、サポートセンターの方とかネ(^_^)


(´ー`)y−~~ でわでわ

07: 名前:ほし投稿日:2002/07/29(月) 16:14
C++のラップ関数をお使いの方で、getParent()−−>XYToPage()
を使用する方法をご存知のかたはその使用方法を教えていただきたいのですが・・・
どちらか、いませんか?

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



483: VISIO図面の中の図形やテキストの文字や座標を取得するには?  全レス

01: 名前:TT投稿日:2002/07/12(金) 23:01
はじめましてVisioもVBも超初心者のTTです。

VISIO5.0standardで作成した図面の、図形(shape?!)の幅や高さや位置また、
テキストの位置やフォントの種類などの情報(シェイプシートの内容等)をVBに取得し
VB上で表示したいのですが、そのようなことはできますでしょうか?
Visioソリューション開発ガイドを読んでみたのですが、出来るかどうかも
どのようにするのかも、いまいちよくわかりません。

VBAでなくてできればVBで取得したいのですが、、

どなたか教えていただけませんか。ご教授おねがいいたします。
わかりにくい質問ですみません。

07: 名前:TT投稿日:2002/07/22(月) 20:39
oki さん、おへんじがおそくなりすみません、

ページの全シェイプも検索でき、情報の取得も出来ました。

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

08: 名前:ほし投稿日:2002/07/25(木) 16:36
全シェイプの取得時に個々の図形の配置はわからないものでしょうか?
VISIOでいうと、最背面・前面等の配置が出来ますが
この情報を取得することは出来ますか?

09: 名前:oki投稿日:2002/07/25(木) 18:15
Visio2002のVBAに関してですが、基本的に「For Each〜Next」で取得される
順番で背面にあるシェイプからひろってくるみたいです。
最初に取得されたシェイプが最背面で、最後に取得されたシェイプが最前面です。
他のバージョンでは試していません。

10: 名前:ほし投稿日:2002/07/25(木) 18:23
そうですか・・・
VBAではそうなんですね。

C++ではそうでないようで。。

VBAはよく分からないので不適当な言葉があるかもしれませんが・・・
上のレスの「For Each〜Next」はShapesのCount数分の
ループと理解していいのでしょうか?

11: 名前:oki投稿日:2002/07/25(木) 18:29
ほしさん

> VBAはよく分からないので不適当な言葉があるかもしれませんが・・・
> 上のレスの「For Each〜Next」はShapesのCount数分の
> ループと理解していいのでしょうか?

その通りです。

12: 名前:ほし投稿日:2002/07/25(木) 18:32
ありがとうございます。

その、Shapesはどのように取得されたのでしょうか?

こちらでは
Document->Pages->Page->Shapes
ですが・・・

okiさんはどうでしょうか?

13: 名前:oki投稿日:2002/07/25(木) 19:34
私の場合は、
Application->ActivePage->Shapes
ですが、最終的にページのシェイプを取ってきてるので全く同じ事ですね。
余談かもしれませんが、
このスレッドの「05:」「06:」の例では「For Each〜Next」を使っているか使っていないか
だけの違いですが、どちらも同じ順番でシェイプを取ってこれるかは試していません。
それと、シェイプがグループの時は再起しています。

14: 名前:ほし投稿日:2002/07/26(金) 08:31
そうですか。
Shapeのカウントループで背面から図形がくるということは
その配置情報まで取得することは必要ないということですか…

詳しいアドバイスをありがとうございます。
問題は解決していませんが勉強になります。

C++のほうでもいろいろ試してみます。

15: 名前:ほし投稿日:2002/07/29(月) 16:11
やっと、取れました。
C++のラップ関数では2通りのShapesの取り方があったんです。
どうもありがとうございました。

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



484: カスタムプロパティの値をAccessのテーブルにセットするには?  全レス

01: 名前:たまご投稿日:2002/07/09(火) 19:31
初めまして。初心者のたまごと申します。
Access2000にVisio2000の図面をOLEオブジェクトとして貼り付けたものを
作っています。そこでVisio2000の図面で使ったシェイプのカスタムプロパティの値を
コマンドボタンでAccess2000のテーブルにセットしたいと思っています。
どのようにすればよいのでしょうか?
過去ログを参考に For Each を試してみたんですがシェイプ名しかかえってこなくて・・・
どなたか教えて頂けませんでしょうか。宜しくお願いします。

02: 名前:oki投稿日:2002/07/10(水) 18:12
シェイプオブジェクト=shpObj
カスタムプロパティの名前=Row_1
とすると、
shpObj.Cells("Prop.Row_1.Value").Formula
で値はとれます。

03: 名前:たまご投稿日:2002/07/12(金) 11:30
お礼が遅くなりました。
okiさんレス有難うございました。

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



485: VBAで図形のテキストを設定  全レス

01: 名前:よぴ投稿日:2002/07/11(木) 13:28
始めましてVISIO初心者のよぴです
VBAで複数の図形のテキスト(Sheet.1〜Sheet.500)を設定したいのですが
図形のテキストにVBAから設定する方法が分かりません、いろいろヘルプも見てみたのですが
分かりませんでした、どなたか教えていだけないでしょうか。

02: 名前:投稿日:2002/07/11(木) 18:08
テキストはShapeオブジェクトのTextプロパティに設定すると表示されます。
以下、サンプルソースです。
Dim shpObj as Visio.Shape

'〜Shapeオブジェクトを設定します(省略)〜
'テキストを埋め込みます
shpObj.Text = "テスト文字"

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



486: グループ図形内の子供シェイプの選択  全レス

01: 名前:かど 投稿日:2000/06/09(金) 11:45
かどです。

図面上でシェイプが選択されているかどうかを VBA で検知するのに
Window.Selection プロパティを使用していました。

ところが、グループ図形を構成している子のシェイプを選択し、同じように
Selectionプロパティでチェックしようとすると、Selection.Count=0 となり
認識できないのです。

Visio(5.0 & 2000)で、グループ図形を構成している子のシェイプオブジェクトを
取得する方法をご存知の方、お教えください

02: 名前:管理人投稿日:2000/06/12(月) 17:30
shapes(xx).shapeとか
shapes(xx).shapes(yy)で取れませんか?

03: 名前:かど 投稿日:2000/06/13(火) 08:32
かどです。
>shapes(xx).shapes(yy)で取れませんか?

この場合、親となるグループシェイプオブジェクトが必要ですよね?
親が不特定多数のため、指定が出来ません。
また、仮にグループシェイプが認識できたとしても
そのグループシェイプを構成しているシェイプが複数あるとしたら
コメントいただいた(xx)はどうすれば取得できるのでしょうか?

なんか基本的なところで間違ってます???

04: 名前:なか投稿日:2002/07/11(木) 13:38
なかです。

私も今この問題で悩んでます。
かどさん、その後何か進展ありましたか?
良きアドバイスが頂けると幸いです。

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



487: document名の英文字  全レス

01: 名前:petri投稿日:2002/07/10(水) 09:58
はじめて、質問します。
Visio2000を使用しております。
documentから名前を取る処理を行っておりますが、
英大文字が入ると、英小文字に変換されてしまいます。

例えば、DN1.vstがあったとします。VBAを使用し、
Msgbox Thisdocument.nameとすると、dn1.vstと表示されてしまいます。
ですので、
tempstr=Thisdocument.nameとして、
利用しようとしても、
tempstrについては、小文字に変換されたファイル名が入ってしまいます。

どなたか、小文字にならないようにする方法
ご存知ないでしょうか。ちなみに、OSは、NT、MEです。

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



488: VBAからのアクション設定  全レス

01: 名前:Fall投稿日:2002/07/02(火) 20:30
はじめまして。Visio2002をWin2000で使っています。
VBAでシェイプにアクションセクションを追加しようとしているのですが
シェイプシートにうまく数式が入りません。コードは以下のようにしています。
申し訳ありませんがどなたか対処法教えていただけないでしょうか?
よろしくお願いします。

res = shp.AddSection(visSectionAction)
Set cellObj = shp.CellsSRC(visSectionAction, visRowAction, visActionAction)
cellObj.FormulaForce = "=CALLTHIS(" + VBA.Strings.Chr(34) + "ThisDocument.Rmenu" + VBA.Strings.Chr(34) + ")"

02: 名前:oki投稿日:2002/07/04(木) 20:28
初めてセクションを追加する場合は、行(Row)を追加しなければなりません。
その行(Row)をCellsSRCに渡してやります。

res = shp.AddSection(visSectionAction)
Row = shp.AddRow(visSectionAction, visRowLast, 0)
Set cellObj = shp.CellsSRC(visSectionAction, Row, visActionAction)
cellObj.FormulaForce = "=CALLTHIS(" + VBA.Strings.Chr(34) + "ThisDocument.Rmenu" + VBA.Strings.Chr(34) + ")"

03: 名前:Fall投稿日:2002/07/05(金) 19:30
oki様
最終行に追加しなければならなかったのですね。
行を挿入する方法も試してはいたのですが
それには気づきませんでした。大変助かりました。
どうもありがとうございました。

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



489: Visio/VB間のアクティブウィンドウの制御??  全レス

01: 名前:nmb7788投稿日:2002/07/05(金) 14:41

はじめまして!Visio2002をWindows2000で使っています。

さっそくですが、どなたか教えてくださひ〜☆

VisioからVBの画面を起動させ、さらにVBのコマンドボタンをクリックすると
Visioの[書式]-[塗りつぶし]画面を表示させて図形の色を変更する‥
ということは可能でしょうか?
それぞれの画面は表示させたままで、アクティブになるウィン
ドウを制御したいのですが‥(汗)

イメージ的に
[Visioのウィンドウ] → [VBのウィンドウ] → [Visioの書式設定画面]
というふうに制御を移していきたいのですがうまくいきません!
というか、できるかどうかもナゾです☆どなたか教えてください。

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



490: RUNADDONが95では効かない!?  全レス

01: 名前:さとくんパパ投稿日:2002/07/04(木) 14:50
こんにちは、さとくんパパと申します。よろしくお願いいたします。

マスタシェイプをいろいろ作り、シートのアクションセクションにRUNADDONや
SETF(GETREF(xxxx), xxxx)を使用して、シェイプの形状を変えたりということ
をやっています。

私はVIVIO2000のユーザで、WIN2000及びWIN-XPの環境で開発し、かつ
利用しておりますが、このシェイプを社内の他の人間が使用したところ、以下
のような不具合が発生しました。

【不具合】
アクションにてRUNADDONを使用してVBAプログラムをコールする処理が
WIN95環境では実行できない。

つまりRUNADDONはWIN95/VISIO2000の組合せでは正しく動作しない
ということです。

この件につきまして、どなたか解決の糸口をご存知の方いらっしゃいまし
たらどのようなヒントでも結構ですので教えてください。
よろしくお願いいたします。

以上

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


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