KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

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)  471 :座標、原点を取得するには(07)  472 :文字の位置について(03)  473 :CADのzukei (01)  474 :シェイプ中央に接続されたコネクタの取得(01)  475 :グループ化されたオブジェクトから接続先を取得する方法(02)  476 :子シェイプから親のグループシェイプオブジェクトを取得する方法(04)  477 :ショートカットメニューhe追加するには?(01)  478 :ポリラインの座標値(11)  479 :geometry数分のデータを取得したいのですが・・(03)  480 :VBAで表に行を追加するには?(03)  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) 
ログ検索  リロード  前のページ  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 次のページ  総てのスレッド  スレッド総数 696461 - 470 を表示


461: VBstrの使い方教えて  全レス

01: 名前:さとう 投稿日:2000/05/30(火) 15:59
さとうです。

VC++でVisioの作図を行っています。
getNameメソッドを利用してID情報の名前を取得できたの
ですが、データ型がVBstrなので、取得した後どのように
プログラムを書けばいいのか分かりません。
できれば、VBstr型をstring型やchar*型に変換して、
テキストファイルなどに出力したいのですが、
どのようにすれば良いでしょうか?

環境:Visio5.0 VC++6.0

よろしくお願いします。

02: 名前:ほし投稿日:2002/09/20(金) 09:39
getNameの取得までをおしえていただけないでしょうか?
こちらはRoeの名前が取得できないので悩んでいます。

5月の書き込みなので解決されているとは思いますが・・・・

Vbstr bstr;
char tp[];
USES_CONVERSION; // 文字列変換作業域の定義 OLE2T

sprintf(tp,"%s ",OLE2T(bstr));

でいけると思います。

03: 名前:なか投稿日:2002/09/20(金) 13:25
コンパイルのオプションにMFC_HELPERSを追加すれば
VStringが使用できるようになります。
VStringはCStringの派生クラスなので文字列を扱うには便利ですよ

04: 名前:ほし投稿日:2002/09/24(火) 13:56
初心者なので全く知らなかったです。
参考にさせていただきます。

こちらとはちょっと環境が違うせいか、
MFC_HELPERSを追加するとエラーになる状況が発生しました。
C++用に用意されているヘッダ等をインクルードしているので
そのせいかとも思うですが・・・・

いろいろ、勉強になります。

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



462: クリップボードの操作  全レス

01: 名前:maws投稿日:2002/09/19(木) 23:48
VBAからクリップボードを操作することはできないでしょうか?
テンプレートを使用してユーザーが図面を作成する際に、コピー&ペーストの処理が
できないように制限をかけたいのですが.....
ご存知の方がいらっしゃいましたらお願いします

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



463: ForeignObjectについて  全レス

01: 名前:ほし投稿日:2002/09/12(木) 17:42
shapeのTYPEがvisTypeForeignObjectの時、その内容を
shape.ForeignData()で取得しています。
(データはVISIOの挿入ー>図ー>ファイルから・・で簡単なBMPを挿入しています。)

情報は取得でき、なにやらRGB?BGR?のようなデータが
得られます。

この得られたデータの先頭部分にある情報は何を意味するのでしょうか?
JPEGとかならサイズとか解像度とかの情報がヘッダ部にあると思いますが
ご存知の方いらっしゃいましたらお願いします。

02: 名前:ほし投稿日:2002/09/19(木) 17:41
なんとなく分かってきました。
一応・・・
ForeignDataのオブジェクトタイプがビットマップの時はすこしヘッダ部が欠けた
ビットマップで。(詳しくないのでいいかげんな表現ですが・・)
その他はそのままのファイルの内容が取得できていました。

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



464: アクティブウィンドウの制御  全レス

01: 名前:Beginer投稿日:2002/09/19(木) 09:56
現在、VB6で作成した画面から実行ボタン押下により、
Visio非表示でVsdファイルを作成するプログラムを組んでいます。
下記の2点の問題が発生してしまいました。

1.実行ボタン押下後、実行中ダイアログを表示してからVisioを
  起動しているのですが、Visio起動時にダイアログがアクティブでは
  なくなってしまう。

2.Visioを終了したときに、裏にあるウィンドウ(エクスプローラ等)が
  最前面に表示され、アプリケーションが隠れてしまう。

1については、無理矢理ダイアログをアクティブにしようとしたのですが、
タイトルバーが灰色のままでした・・・

解決策のわかる方、宜しくお願いします。

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



465: マクロについて  全レス

01: 名前:古堅正弘投稿日:2002/09/17(火) 17:31
マクロはVBが新しくなることによって使えないものも出ますか?

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



466: コントロールOptionButtonのon/off、グループ化について  全レス

01: 名前:mi投稿日:2002/09/11(水) 20:29
Visio2002にコントロールMicrosoft Forms2.0 OptionButtonを挿入しました。
一回クリックすると、Trueのまま、もう一度クリックしてもFalseに戻りません。
何か設定が必要なのでしょうか?

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



467: グループ化されたシェイプの背景色を変更する方法  全レス

01: 名前:CHERRY投稿日:2002/09/11(水) 08:51
複数のシェイプをグループ化し、グループ化されたシェイプの
背景色を変更したいのですが、下記方法では背景色を変更することが
できませんでした。

@グループ化されているシェイプオブジェクト取得。
A取得したシェイプオブジェクトのShapesコレクションを取得
BShapesコレクションの全シェイプの背景色を変更
→背景色は変更されず。(シェイプシートで確認すると、FillForegndは変更されている)

どなたか、よい方法をご存知の方はご教示いただけませんでしょうか。

02: 名前:なか投稿日:2002/09/11(水) 09:32
図形座標セクションのGeometry1.NoFillセルを確認して下さい。
Geometry1.NoFillセルの値がTRUEになっていると背景が書かれません。
あと、FillForgroundTransが100%でも同様のことがおきますけどこれはないかな。

03: 名前:CHERRY投稿日:2002/09/11(水) 10:42
上記方法で再確認したところ、
Aで取得している「グループ化されたシェイプのShapeコレクション」には、
ページ上すべてのシェイプが含まれています。
この場合、グループ化されたシェイプの子シェイプがShapeコレクションに
含まれると思っていましたが、違うのでしょうか?
また、「グループ化されたシェイプの子シェイプが含まれるShapeコレクション」
は取得可能でしょうか?

04: 名前:CHERRY投稿日:2002/09/11(水) 10:46
なかさん、ご返答ありがとうございます。
Geometry1.NoFillセル、FillForgroundTransセルを確認いたしましたが、
Geometry1.NoFill=TRUE、FillForgroundTrans=0%となっておりました。

05: 名前:CHERRY投稿日:2002/09/11(水) 11:13
本件解決いたしました。
私のミスによるもので、正常に「グループ化されたシェイプの子シェイプが含まれるShapeコレクション」
が取得できておりませんでした。

なかさん、ご返答ありがとうございました。

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



468: グループのピン座標  全レス

01: 名前:ほし投稿日:2002/08/30(金) 14:46
以前、グループ図形が含まれる場合のshapeのカウント方法を
こちらで教えていただきました。

今回はそのshapeごとのピン座標を取得しているのですが
子シェイプのピン座標値がなにやら変です。

グループでなかったらそれらしい値が取得できますが
グループ内に含まれる図形のそれはいったいどのような意味を
持つのか?
ご存知の方、ご教授お願いします。

02: 名前:oki投稿日:2002/08/30(金) 17:25
グループでない場合のピン座標は、ページに対する絶対座標です。
グループの子シェイプのピン座標は、親のピンに対する相対座標です。
子シェイプのページに対する絶対座標を取得するためには、親の
ピン座標をたどっていかなければなりません。

03: 名前:ほし投稿日:2002/09/02(月) 08:51
okiさんへ
いつもありがとうございます。
親に対する相対値ですか・・・
それっぽいのもあるんですがそうでないようにも思えたり
していたのですが、気のせいだったのですね。
親からたどって座標を取得するようにします。
ありがとうございました。

04: 名前:かど投稿日:2002/09/02(月) 15:35
ども。かどです。

Visio のバージョンが書いてないのであれですが、
XYToPage メソッドが使えませんか?

05: 名前:oki投稿日:2002/09/02(月) 21:07
かどさん、ありがとうございます。
勉強になりました。

06: 名前:ほし投稿日:2002/09/04(水) 08:32
こちらバージョンはvisio2002です。

XYToPage()でも可能ですがシェイプ座標系での値が
ほしかったものですから・・・・
参考になりました。

先に書き込んだようにちょっと値に手を加えないと
うまく座標が取れない気もします
ピン座標とかロック(?)ピン座標との関係が
うまく理解できていないためかもしれませんが・・・・・

07: 名前:なか投稿日:2002/09/04(水) 08:45
>ピン座標とかロック(?)ピン座標との関係が
>うまく理解できていないためかもしれませんが・・・・・

LocPin座標はlocalPin座標を略したものです。
LocPin座標を0にしておけばPin座標に手を加えないでも
うまく座標が取れるはずです。

08: 名前:ほし投稿日:2002/09/04(水) 10:17
そうでしたか。。。。。。
あまり触らないところなので深く考えていなかった
ため調査不足でした。
ありがとうございます

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



469: VisioのWindowtitileについて  全レス

01: 名前:ホームズ投稿日:2002/08/27(火) 13:24
はじめまして、
Windows2000
VB6.0 SP5
を使用しています。
早速質問なのですが、VBでVISIOを開いたときにVISIOのWindowTitileって取得できるのでしょうか?
どなたかお教えください。お願いします。

02: 名前:なか投稿日:2002/08/30(金) 10:04
結論から言いますとWinApi関数を使用すれば取得できます。
但し、VCでは確認しましたがVBでは行なっていないので保証できません。

やり方は
1.Windoowオブジェクトを取得しそのハンドルを取得します。
2.ハンドルが取得できたらGetClassName(WinnApi関数)を
使いクラス名を取得します。
3.クラス名が”VISIOS”または”VISIOA”でなかったら
GetParent(WinnApi関数)を使い親ウインドウのハンドルを取得し、
2に戻ります。
4.クラス名が”VISIOS”または”VISIOA”だったら
GetWindowText(WinnApi関数)を使ってWindowタイトルを取得します。

VISIOSクラス:VISIOのMDIウインドウ
VISIOAクラス:VISIOのウインドウ
となります。

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



470: 図形の合成について  全レス

01: 名前:ほし投稿日:2002/08/22(木) 11:45
図形の合成についてですが、複数図形を選択し(塗り図形)
VISIO・メニュー・図形・合成操作ー>面の接合etc
で合成種類を選択し合成します。

このとき、選択した合成の種類によっては図形をただ塗れば
良いというわけには行かないものがあります。

塗り規則の情報は取得できないのでしょうか?

02: 名前:oki投稿日:2002/08/22(木) 22:07
図形の合成操作のやり方によっては、図形座標セクションの
「Geometryi.NoFill」セルが「TRUE」になってしまう場合があります。
この値を「FALSE」にすると塗りつぶせます。
余談ですが、DWGやDXFを変換すると「TRUE」になるケースが
多い気がします。

03: 名前:ほし投稿日:2002/08/23(金) 19:36
そうですか・・・・
うまく取得できないということでしょうか?

簡単な円を二つ書いてこれを少し重ねて合成するとします。
例えば
1:面の接合
2:型抜き/合成
でそれぞれ合成すると違った形で合成されます。
1はそのまま重ねるといいですが2のときは重なった部分を色なしに
しないといけません。

このときそれぞれの「Geometryi.NoFill」セルはともにFALSEです、
これを見分けたいのですが・・・

04: 名前:なか投稿日:2002/08/23(金) 20:29
1と2を見分けたいというなら
Geometryの数で判定したらいいのではないですか?

1の場合はGeometryの数は1になりますし、
2の場合はGeometryの数は合成した面の数になります。
但し、1の場合は面が重なっていることが前提になりますけど

05: 名前:ほし投稿日:2002/08/27(火) 08:39
お返事が遅くなりました。申し訳ない。
Geometryの数ですか・・・・
気が付きませんでした。
試してみます。

いつもアドバイスをありがとうございます。

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


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