KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

341 :ハイパーリンクの削除(03)  342 :txtを元にした自動作図(03)  343 :2本の線を1つのパターンとして取得(05)  344 :選択した図形のシェイプシートの値をVBAで変更(05)  345 :VISIO2002、2003非互換について(06)  346 :新しいページの挿入法(05)  347 :Visioのオブジェクトモデルについて(03)  348 :グループ内の子シェープの選択判定(03)  349 :Shapeの色をRGB値で取得する方法(03)  350 :レイヤープロパティの「#」(02)  351 :SelectionChangedイベントについて・・・(05)  352 :図面内のアクティブなステンシルの取得(05)  353 :特定の図面オープン時に特定アドオンの実行(02)  354 :マクロで色を一括変換(07)  355 :グループ化した図形の座標取得(11)  356 :カスタムプロパティの変更前の値取得って可能なのですか?(03)  357 :ページを順番に取得する方法(02)  358 :XYToPageメソッドについて(05)  359 :マクロの削除の仕方(06)  360 :コネクタの経路を取得したい(02)  361 :シェイプの図形要素をVBAから変更する(03)  362 :基本動作の設定をVBAで操作できますか?(08)  363 :自作のマクロをアドオンにするには(05)  364 :四角形にCSVから取得した値を表示したい。(10)  365 :VBAのUserFormで連結コントロールは使えないのでしょうか(04)  366 :選択図形を倍率設定して拡大縮小するマクロ(19)  367 :B5からA4へ(11)  368 :「ファイルを開く」のダイアログの表示(07)  369 :選択されたShapeのオブジェクト名称を取得する方法。(05)  370 :VBからVISIOのマクロの呼び出しについて(03)  371 :VBAを初期化できませんでしたって・・(05)  372 :新しいボタンにマクロを登録する方法(02)  373 :コマンドの選択状態(02)  374 :自動記録?!(05)  375 :ボタンのONOFF状態(04)  376 :全てのページのズーム率をそろえたい(07)  377 :相対セルを絶対セルに変換(03)  378 :単位の設定方法について(05)  379 :モーダルフォームのエラーについて(12)  380 :URLのイメージファイルを貼り付ける方法(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 次のページ  総てのスレッド  スレッド総数 696341 - 350 を表示


341: ハイパーリンクの削除  全レス

01: 名前:名無しさん投稿日:2004/02/23(月) 09:18
お疲れ様です。
複数ページがありまして、それぞれに100近くshapeオブジェクトがあります。
それぞれにハイパーリンクを削除するというマクロを作成したいのですが、
順番にshpaeオブジェクトを取得するところまではできました。
次にハイパーリンクを削除していきたいのですが・・・
????の部分にどういうコードを書けば良いのかご教授頂きたいです。
お手数ですが、よろしくお願いします。

For Each pageObj In ThisDocument.Pages

Set shpsObj = pageObj.Shapes
iShapeCount = shpsObj.Count
If iShapeCount > 0 Then
For i = 1 To iShapeCount
Set shpObj = pageObj.Shapes(shpsObj.Item(i).Name)

????????????????????

Next i
Else
End If
Next

02: 名前:yoda投稿日:2004/02/23(月) 11:16
ハイパーリンクは、シェイプシートの、
ハイパーリンクセクションにURLが、
書き込まれているので、それを、
消せば、良いと思います。
shpobj.DeleteSection (visSectionHyperlink)

03: 名前:名無しさん投稿日:2004/02/23(月) 13:23
ありがとうございます。
簡単にできました。
また別件で質問するかと思いますが、よろしくお願いします。

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



342: txtを元にした自動作図  全レス

01: 名前:名無しさん投稿日:2004/02/21(土) 12:49
 X座標(mm)  Y座標(mm)  R角度  部品名
 10.00    5.00      90   MCR102
 12.00    6.00       0   MCR301
 70.00   10.00     270   SOP8
上記のような形式で書かれたtxtファイルを元に部品を配置し、
レイアウト図を作るソフトを探していて、ここに行き着いたのですが
visioで可能でしょうか?

02: 名前:yoda投稿日:2004/02/21(土) 13:18
可能だと思いますが、
ファイルの形式をcsvに変え、
excelで、読み取って、
excelから、読み取り、
Excelのファイルとした方が、
楽だと思います。
データを、作るのも、修正するのも、
Excelの方が、楽だと思います。
そのexcelファイルを、
Visioで、読み取って、
作図するプログラムを作れば、
よいのでは、ないかと、思います。

03: 名前:1投稿日:2004/02/21(土) 13:57
すばやい返信ありがとうございます。
早速買ってきます。
あと、出来れば詳しい方法を教えてもらえませんか?
当方、仕事で上記のような機能が必要で探していたため、
visioの持つその他多くの機能を使う事は今のところないのですが、
上の機能をすこしでも早く実現したいのです。
あつかましいお願いですが、よろしくお願いします。

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



343: 2本の線を1つのパターンとして取得  全レス

01: 名前:JACK投稿日:2004/02/19(木) 10:47
2本の線を1つのパターンとして取得したいのですが、
(例えば3本の線で構成されたシェイプがあったとして、1パターン目が線@そのまま、2パターン目が
線Aと線B、という感じで)
どのような取得方法があるでしょうか?

因みに今はコントロールハンドルが2つついたシェイプを利用し、
2本の線を結んで、それぞれのハンドルから座標(X1,y1,x2、y2)を
取得してみようと思っているのですが、うまくいきません。

ご協力、宜しくお願いいたします。

02: 名前:yoda投稿日:2004/02/19(木) 11:06
意味がわからないのですが、
多分、以下のことが、
分からないからだと、思います。
−記−
パターンとして取得、の意味。
パターンの意味。
取得、とは、何を取得したいのか、ということ。
8行目の、2本の線を結んで、は、
2本の線を何で、どのように結ぶのか、ということ。
−以上−

03: 名前:JACK投稿日:2004/02/19(木) 11:57
意味が明確でなくて申し訳ありません。
   パターンとは1つのシェイプが構成されているパーツの事です。

   シェイプは1本以上の直線で構成されています( _/  ̄ の様な)。
   またそのシェイプをクリックすると、別ウィンドウで4コマ漫画のように
   1コマずつパーツが表示されるようになっています。

   今回は、3本の線で構成されているシェイプを_ と/  ̄の
   2パターンとしてコマ表示したいのです。

   今の私共のシステムでは、線同士の密着部分で切り離しを行って
   そのパーツを別ウィンドウ表示していますが、
   今回は線同士が密着していないので、切り離し時、作成シェイプエラーが
   返されてしまいます。

  切り離しプログラムの都合上グループ化は使用できないので、
  コントロールハンドルが2つついたテキストシェイプを使用し、その
  ハンドルを離れた線A、Bにそれぞれ貼り付け、ハンドルの座標を
  取得してひとつのパーツとしてコマ表示しようと思ったのですが、
  コントロールハンドルの座標の取得の仕方が判りません。

  本体シェイプの座標を取得しに行ってしまいます。
  2つのコントロールハンドルの座標は、どのように取得したら
  いいでしょうか??

04: 名前:yoda投稿日:2004/02/19(木) 13:48
取得したい、コントロールハンドルが、
付いている、シェイプを、今、shp、とします。
Visio2000、2002の場合は、
コントロールハンドルのX座標は、
X = shp.Cells("controls.x1").Result("mm")
で、よいと思います。
Visio2003の場合は、セルの名称が、かなり、
変わっているそうですので、実際に、
シェイプシートをご覧の上、ご確認ください。

05: 名前:JACK投稿日:2004/02/19(木) 14:41
で、二つ目のハンドルのX座標は
X1の部分をユニークにすればいいんですね??

やってみます。
ありがとうございました!!

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



344: 選択した図形のシェイプシートの値をVBAで変更  全レス

01: 名前:まるいぬ投稿日:2004/01/23(金) 14:06
沢山のシェイプに保護と基本動作の設定をかけなければならないため、
シェイプシートの値を変更するマクロが欲しいです。
お願いします!!

02: 名前:yoda投稿日:2004/01/23(金) 15:03
多分、どこかに、サンプルがあると、
思います。いろいろ、検索してみると、
良いと思います。

03: 名前:まるいぬ投稿日:2004/01/26(月) 19:12
色々検索してみたんですがなかったので・・・。
最初になんて書けば良いのか、VBAは初心者で。。。
御恥ずかしながら、VBAの画面の使い方すら初心者なんです。。
すみません。

04: 名前:yoda投稿日:2004/01/26(月) 20:40
「選択した図形の」という点では、
http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/mibbs.cgi?mo=p&fo=auto&tn=0344&rn=30 [source] [check]
の17番などが、参考になるかもしれません。

05: 名前:まるいぬ投稿日:2004/02/14(土) 10:43
参考として見させていただきました。
がんばってみます。ありがとうございました。

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



345: VISIO2002、2003非互換について  全レス

01: 名前:Asset投稿日:2004/02/10(火) 22:03
現在、VISIO2000対応のアプリケーションをVISIO2002/2003対応に
アップデートしようと考えています。

あたりまえですが、
が、なにも改造をいれなければ動作しません。

VISIO2000とVISIO2002/2003で
なにか非互換がわかる文献等があれば教えていただけないでしょうか?

よろしくお願い致します。

02: 名前:yoda投稿日:2004/02/11(水) 03:51
それぞれの、バージョンのHELPの、
開発者用リファレンスを、
参照するのが、一番間違いないと、
思います。
そのほかでは、
マイクロソフト社のHPのmsdnが、
わずかに、ご参考になると、思います。
Visio 2002 開発者用リファレンスの更新情報
が、少しだけ、ご参考になろかも知れません。
Japanのサイトでは、
Visio2002までしか、わかりませんし、
USAのサイトでも、
2003については、詳しくありません。

03: 名前:Asset投稿日:2004/02/12(木) 09:12
ありがとうございます。

がんばって調べていきたいと思います。

04: 名前:yoda投稿日:2004/02/12(木) 10:47
変わった点すべてを、調べる必要は、
ないと思います。
コンパイル、実行してみて、
引っかかったところだけ、
HELPで調べれば、良いと思います。

05: 名前:ピエール投稿日:2004/02/13(金) 09:05
VSLは2002のものがそのまま使えました。少なくとも私が使っている範囲内でのことですが。

06: 名前:Asset投稿日:2004/02/13(金) 10:54
みなさまのあたたかいお言葉ありがとうございます。

へこみかけていましたが、
なんとかやりとげたいと思います。

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

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



346: 新しいページの挿入法  全レス

01: 名前:jkp投稿日:2004/01/28(水) 22:10
始めまして。最近VBAを学び始めた超初心者です。
Visioの画面のデータをVBで読み込んでC++で処理して、
新しいVisio画面に表示させたいプログラムを作っています。

一応できるかどうかもわからず、やっているのですが、次のことが分かりません。

・新しいページの挿入方法
   過去のログにBeforeWindowPageTurn イベントを使うと
   かいていたので、ヘルプをみてみたのですが、使用例もなく、
   どのように使っていいのかわかりません。

すごく簡単な質問かもしれませんが、どなたかご指導おねがいします。
ちなみに使っているのはvisio2000です。

02: 名前:なか投稿日:2004/01/29(木) 08:57
「新しいページの挿入」って任意の位置にページを挿入したいということですか?

あと
>Visioの画面のデータをVBで読み込んでC++で処理して・・・
わざわざVBを通さなくてもいきなりC++でVisioの情報を取得できますよ

03: 名前:jkp投稿日:2004/01/29(木) 15:27
すいません。説明不足でした。
「新しいページの挿入」は任意のページというか今あるページの
次でもどこでもいいので
とにかく新しいvisio画面を開きたいということです。
なので、次にページを新しく作りたいということです。

あとこれはGUIにしなければならないので
VBでつくっています。

04: 名前:なか投稿日:2004/01/29(木) 16:11
ただページを追加したいだけなら、
PagesコレクションのAddメソッドで追加できます。

05: 名前:jkp投稿日:2004/01/30(金) 02:06

ありがとうございます。
試してみたらできたっぽいです。
これからもがんばります。

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



347: Visioのオブジェクトモデルについて  全レス

01: 名前:josep投稿日:2004/01/29(木) 21:10
Visioのイベント,メソッド,オブジェクト,プロパティがまとめて紹介されているサイトなどありませんか?
本屋に行っても,専門の本がなく,現在ネットに頼ってる次第です.
どなたか教えてくれると助かります.

02: 名前:yoda投稿日:2004/01/29(木) 21:50
HELPの開発者用リファレンスの、
オートメーションレファレンスが、
最も詳しいと思います。
HELPの補足として、MSのMSDNが、
役立ちます。
英文の本で、詳しいものも、ありますが、
結局、HELPやMSDNの焼き直しです。

03: 名前:josep投稿日:2004/01/29(木) 22:11
わかりました.参考にします.
yodaさん,どうもありがとうございました.

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



348: グループ内の子シェープの選択判定  全レス

01: 名前:nico投稿日:2004/01/28(水) 01:47
こんにちは
Visio初心者です。
いろいろ調べてみましたが、どうにも分からないことが出てきたので、
質問します。

図面上で、グループ化したシェープの子シェープのみを選択状態にできますが、
VBAからどの子シェープが選択されているのかを知ることはできるのでしょうか?
Selectionオブジェクトで判別できるかと思ったのですが、countプロパティには
「0」が設定されており、分かりませんでした。

何か良い方法がありませんか?

02: 名前:なか投稿日:2004/01/28(水) 09:19
IterationMode プロパティを使う
↓こんな感じ
selectionObj.IterationMode = visSelModeSkipSuper
IterationMode で検索すればサンプルが見つかると思います。

03: 名前:nico投稿日:2004/01/28(水) 23:18
どうもありがとうございます。

IterationModeのヘルプもちらっと見てはいたんですが、どう使っていいか分からず、
読み飛ばしていました。

早速、明日にでも試してみます。

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



349: Shapeの色をRGB値で取得する方法  全レス

01: 名前:わだ投稿日:2004/01/28(水) 11:28
いつもお世話になっております。
シェイプの、LineColorや、FillForegndの値をRGBで取得する方法を
教えて頂けますでしょうか。宜しくお願いします。

02: 名前:BOB投稿日:2004/01/28(水) 13:33
以下の感じでどうでしょうか?

objShape as Visio.Shape ← 該当シェイプを設定して下さい

Dim objColors As Visio.Colors
Dim lngColor As Long
Dim intR As integer
Dim intG As integer
Dim intB As integer

lngColor=objShape.Cells("LineColor")
Set objColors = objShape.Document.Colors

'RGB数値を取る
intR = objColors.Item(lngColor).Red
intG = objColors.Item(lngColor).Green
intB = objColors.Item(lngColor).Blue

03: 名前:わだ投稿日:2004/01/28(水) 16:08
出来ました!!
BOB様、ありがとうございます。

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



350: レイヤープロパティの「#」  全レス

01: 名前:わだ投稿日:2004/01/23(金) 17:14
いつもお世話になっております。
レイヤープロパティ(ダイヤログ)の「#」の値って、取得できるのでしょうか?
教えて下さい。

02: 名前:yoda投稿日:2004/01/23(金) 18:33
HELPによると、Layerプロパティの対象は、
Shapeとなっているので、ぐるぐるまわさないと、
カウントできないかも。

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


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