KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

131 :シェイプのコピーを制限する方法について(02)  132 :図面をresizeする方法(09)  133 :絵のイメージで表示し、イベントはとりたい(04)  134 :EXCELのタスクをCOLSEするには?(03)  135 :vb6.0での(03)  136 :続)EXCELのデータを取り込むには?(03)  137 :VC++からのオートメーション起動について(02)  138 :drawingcontrol上の図面の印刷(06)  139 :シェイプがマスターより派生されたかどうか調べる方法(09)  140 :改行コードについて(03)  141 :図ツールの表示(10)  142 :メッセージを非表示に出来ないでしょうか?(08)  143 :ステンシルの編集について(03)  144 :貼り付けたエクセルデータの取得方法について(13)  145 :シェイプシートの関数取得について(04)  146 :用紙方向(印刷方向?)の情報取得について(06)  147 :シェイプが削除された時の処理を実行したい(09)  148 :強調表示させることは出来ますか?(06)  149 :ページ名称を消すことはできますか?(11)  150 : IOleInPlaceFrame インターフェイスを正しく実装する方法(02)  151 :名前をつけて図面を一時的に保存する。(04)  152 :参照設定について(03)  153 :グループ化したシェイプの中にシェイプが存在してるか確認する方法(06)  154 :描画ツールの表示(05)  155 :カスタムプロパティについて(02)  156 :メニューの有効・無効の方法について(08)  157 :【DoCmd】 キャンセル後のマウスカーソル(04)  158 :テキストの書き込み(04)  159 :ショートカットについて(12)  160 :SaveAsWebPageについて(02)  161 :保存用のダイアログについて(11)  162 :EventDropを再実行したいのですが・・・(04)  163 :VB上でのVISIOマクロの起動方法(08)  164 :ページ設定(09)  165 :他ページのシェイプのカスタムプロパティを取得する方法(03)  166 :カスタムプロパティの変更時(05)  167 :他ドキュメントのイベント取得の方法について(13)  168 :複数のコネクトオブジェクト(08)  169 :セキュリティ設定について(05)  170 :アンカーウインドウ(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 次のページ  総てのスレッド  スレッド総数 696131 - 140 を表示


131: シェイプのコピーを制限する方法について  全レス

01: 名前:RIC投稿日:2006/03/13(月) 12:32
久しぶりに書き込みさせて頂きます。

あるステンシルからのドラッグ&ドロップで、VISIOページの作図を行ない、
一度ページ内に配置したシェイプをコピー&ペーストできないようにするにはどうすれば良いですか?
(単にCtrl+C,Ctrl+Vをできなくしたい。アクションバーからもコマンドをなくしたい。)
基礎的な質問かと思いますが、その方法を教えて下さい。
どうかよろしくお願い致します。

02: 名前:yoda投稿日:2006/03/13(月) 14:01
ドロップできないようにすることは、できないかもしれませんが、
ドロップしたら、消えてしまうようにはできると思います。
シェイプシートのEventDropにCallThis関数で、シェイプを
消去するマクロ起動するようにすればよいかもしれません。
Ctrl+C,Ctrl+V を不能にする方法は知りませんが、Windows
のショートカットを変えてしまうか、削除できれば、可能かもしれません。
ただ、できたとしたら、その影響は、小さくはないと思います。

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



132: 図面をresizeする方法  全レス

01: 名前:とし投稿日:2006/03/05(日) 19:38
図面にページサイズと同じ大きさにした画像を挿入しています。
ウィンドウサイズをresizeするとページサイズが変更されてしまいます。
画像は読み込んだ時のまま変わりません。
ページサイズをを変更しないでresizeする方法がわからなくで困っています。
ウィンドウサイズはA4横の比率にして変更したいのです。
もっと簡単に実現できる方法があるでしょうか?
NGなコードを下に書きます。

Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
Dim ratio As Single
Dim ratio2 As Single
ratio = (Me.Width - 30) / 297
ratio2 = (Me.Height - 120) / 210
If ratio > ratio2 Then
ratio = ratio2
AxDrawingControl1.Height = 210 * ratio
AxDrawingControl1.Width = AxDrawingControl1.Height * (297 / 210)
Else
AxDrawingControl1.Width = 297 * ratio
AxDrawingControl1.Height = AxDrawingControl1.Width * (210 / 297)
End If
End Sub

02: 名前:yoda投稿日:2006/03/05(日) 20:00
これは、多分ということしかわかりませんが、多分、最初のウインドウの
ズームの設定が「全体を表示」になっているからではないかと思います。
最初に、ズームをたとえば100%としておいたら、良いのではないかと、
思います。

03: 名前:とし投稿日:2006/03/05(日) 23:45
試しましたが100%で画像をインポートしてもだめでした。
インポートしたときは画像サイズとページサイズは同じでも
一度ウィンドウを最小にしてから戻すとサイズがずれてしまいます。
やりたいことはvisio2003のようにFormのサイズに従って
ページサイズと画像サイズを拡大縮小したいのです。

04: 名前:yoda投稿日:2006/03/06(月) 05:55
うーむ。意味が分からん。最初に言っていたことと、違うのでは?
「ページサイズ」とは、印刷設定でするもののことですか?
「画像サイズ」とは、シェイプの幅と高さのことですか?

05: 名前:とし投稿日:2006/03/06(月) 07:03
わかり辛くすいません。
「ページサイズ」はそのとおりです。
「画像サイズ」はJPGをインポートしたときのJPGのサイズです。
インポートした後にJPGのサイズをページサイズに合わせて表示しています。
シェイプとは違います。画像イメージのサイズです。

06: 名前:yoda投稿日:2006/03/06(月) 08:37
>シェイプとは違います。画像イメージのサイズです。
なるほど、それなら、それもシェイプです。
Visioの図面の上にあるものは、すべてシェイプですから。
>やりたいことはvisio2003のようにFormのサイズに従って
>ページサイズと画像サイズを拡大縮小したいのです。
の意味を、もう少し、具体的に、できれば、どのメニューで
どのようにするのか、教えていただけますか?

07: 名前:とし投稿日:2006/03/06(月) 21:54
visio2003の場合一番外側のウィンドウの端を掴み拡大・縮小すると
図面ウィンドウが比例して大きさが変わります。
ルーラーを見ると図面ウィンドウの大きさが変わっても絶対的な寸法は変わりません。
図面ウィンドウに建物の図面を挿入して目印となるshapeをプロットしたいのです。
vb2003にはFormにresizeイベントがあるのでそこでdrawingcontrolのサイズを変更しようとしています。
つまりvisio2003と同じウィンドウ制御をやりたいのです。
メニューは使いません。

08: 名前:yoda投稿日:2006/03/07(火) 08:57
申し訳ないが、本当に分かりにくい説明ですね。
よく理解できないので、見当はずれの回答かもしれません。
VisioのWindowのZoomを100%などに固定し、AcDrawingControl1の
DockプロパティをFillにしておけば、良いのではないかと思います。

09: 名前:とし投稿日:2006/03/11(土) 06:42
自己解決
分かりにくい説明ですいませんでした。
Visio関連じゃない問題を持ち込んだようです。
Vb.net関連の問題でした。

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



133: 絵のイメージで表示し、イベントはとりたい  全レス

01: 名前:キムチ投稿日:2006/02/02(木) 17:53
Vb.NetでVisioを使ってファイルを作成するメンテナンス画面を別に設け、
メインのVB画面で作成したVisioのファイルを読込み表示します。
メインの画面では、編集は許しませんが、一つ一つのShapeをマウスで近づけた時
には、そのshapeの説明をテキスト等に表示させたいです。
編集を許さない絵のようなイメージにするには、ピクチャー等にVISIOのファイルを
読み込むのだと思いますが、そうすると、個々のshapeのイベントは取れるのでしょうか?
又は、ピクチャーを使わず、Drawing Controlで編集を許さない絵のようなイメージに
する方法はあるのでしょうか?
アドバイス、頂きたいたいです。宜しくお願いします。

02: 名前:yoda投稿日:2006/02/03(金) 11:09
>一つ一つのShapeをマウスで近づけた時には、
>そのshapeの説明をテキスト等に表示させたいです。
マウスがどの図形の上にあるかを表示するサンプルマクロをアップしました。
スレッド「VB.NETでMouseMoveイベントでShape上かどうかを判定したい。」
の10を見てください。
>編集を許さない絵のようなイメージにするには
VisioViewerを使う方法もあるかも知れません。

03: 名前:削除されました投稿日:削除されました
削除されました

04: 名前:削除されました投稿日:削除されました
削除されました

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



134: EXCELのタスクをCOLSEするには?  全レス

01: 名前:うめ投稿日:2006/03/08(水) 14:16
こんにちは。
EXCELをVISIOに取り込むため奮闘中です。
以下のコマンドでEXCELをオープンした際に

Set xlBook = xlApp.Workbooks.Open("d:\PLUM\My Documents\My Order\IOリスト展開図展開作戦\お試しVERSION\2.EXCELデータの一情報からVISIOに\F案\えくせる.xls")

必ずタスクマネージャーのプロセスタグ上に「EXCEL.EXE」というタスクが残ってしまい、
次に単独でEXCELなどを立ち上げようとした際に
うまく起動できなくなります。
コマンドをCLOSEしてタスクを消す事はできないのでしょうか。

02: 名前:yoda投稿日:2006/03/08(水) 14:34
>EXCELのタスクをCOLSEするには?
Excelのホームページで質問すべきです.
xlApp.Quit
Set xlApp = Nothing

03: 名前:うめ投稿日:2006/03/08(水) 14:55
ありがとうございます。
これはEXCELの事なんですね。
VISIOで書いているのでVISIOの質問かと思いました。
申し訳ありません。
うまく消えました。
ずっと困っていたので助かりました。

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



135: vb6.0での  全レス

01: 名前:つか投稿日:2006/03/08(水) 13:16
麻雀プログラムは可能でしょうか?

02: 名前:yoda投稿日:2006/03/08(水) 14:31
????

03: 名前:GoldQ投稿日:2006/07/15(土) 20:55
作った人居ますよ?
http://www.hor-project.com/ [source] [check]
麻雀に限らずほとんど可能でしょ

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



136: 続)EXCELのデータを取り込むには?  全レス

01: 名前:うめ投稿日:2006/03/06(月) 15:32
ずっと VISIO SQUARE と相性が悪く
書き込みができませんでしたが、
今日は調子よさそうです。
中途半端なスレッドを作ってすみません。既存のEXCELファイル(例:エクセルファイル.xls)にデータベースを作成し、
そのデータをVISIO上に取り込みたいのですがうまくいきません。

VISIO上に取り込むという意味は、
「エクセルファイル.xls」のデータベースを
ただ取り込みたいわけではないんです。

「エクセルファイル.xls」のA1〜B10までのセルをコピーして
VISIO上に既に用意されている、
「オブジェクトとして挿入されているEXCEL」を開いて
コピーしたデータを貼り付けるという作業を
手を使って行わず、自動で行いたいという事なんです。


取り込む元のデータベースは
エクセルでなくても、CSVもしくはTEXTファイルでも可です。


どなたか御存知あればご教示下さい。
よろしく御願いします。

02: 名前:yoda投稿日:2006/03/06(月) 16:48
テキストファイルでしたら、ここにサンプルがあります。
基本的には、Excelでも同じだと思います。
http://www.mvps.org/visio/VBA.htm [source] [check]
「Read Text: This subroutine show how to create a Visio drawing from a text files.

03: 名前:うめ投稿日:2006/03/07(火) 15:32
yoda様
ありがとうございます。
動かしてみました。
EXCELにできるか試してみます。

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



137: VC++からのオートメーション起動について  全レス

01: 名前:shin投稿日:2006/03/06(月) 16:30
初歩的な質問で申し訳ありませんが、
質問させてくださいm(_ _)m

Visio2003でVC++からオートメーション起動をさせようとしています。
"Visiwrap.h"をインクルードし、各クラスは認識されるようになりました。
(各クラスとは:CVisioApplicationなど)
また、"Visiwrap.h"をインクルードするにあたって、"Ivisreg.h"などの
"Visiwrap.h"内で使用されているヘッダーファイルも取得しました。

ここで、以下のコードをコンパイルしようとすると
vaoGetObjectWrapのところでエラーになってしまいます。

//Visio を起動します...
CVisioApplication app;
int result = vaoGetObjectWrap(app);
if( result != VAO_SUCCESS )
return false;

原因としては、vaoGetObjectWrap関数の中のvaoGetObject関数が認識されていないようなのです。

CPPを取得するのを忘れていたので、"Ivisreg.cpp"を取得しました。
ここで、コンパイルを実行すると、"Ivisreg.cpp"でエラー(予期せぬEOF)が出力されてしまいます。

ここでのエラーの原因がわかりません。
作成したプロジェクトが違うのでしょうか?
(現時点では、動作をテストしたいのでコンソールプロジェクトで実施しています。)
コンパイルエラーになったファイルは、
「Microsoft Office\Visio11\SDK\Libraries\CPP」以下から取得したので修正は必要ないはずです。

以上、宜しくお願いします。

02: 名前:shin投稿日:2006/03/06(月) 21:24
解決しました。

お騒がせしましたm(_ _)m

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



138: drawingcontrol上の図面の印刷  全レス

01: 名前:とし投稿日:2006/03/04(土) 17:50
環境vb2003+visio2003
DrawingControlで作成した図面を印刷するが出来なくで困っています。
visioのマニュアルに書いてあった
Dim vsoWindow As Visio.Window
vsoWindow = AxDrawingControl1.Window
を使用して
vb2003のprintdialogを利用して印刷が出来ないでしょうか
コードは
PrintDialog1.Document = New Printing.PrintDocument
ここに何か書くことになると思います
PrintDialog1.ShowDialog()
ようするにPrintDialogにvisio図面を入れることで解決するかと思いますが
私には出来ませんでした。
よろしくお願いいたします。

02: 名前:yoda投稿日:2006/03/04(土) 21:57
PrintDialogでは、どうなるか知りませんが、DoCmdメソッドで、
印刷ダイアログが表示でき、印刷できると思います。
MyApp = AxDrawingControl1.Window.Application
MyApp.DoCmd(Microsoft.Office.Interop.Visio.VisUICmds.visCmdFilePrint)

03: 名前:とし投稿日:2006/03/05(日) 08:53
Yodaさんの方法で印刷可能となりました。
しかし図面が横長のために1ページあたりの枚数が2倍になってしまいます。
これは何とかなるものでしょうか?

04: 名前:とし投稿日:2006/03/05(日) 09:47
解決しました。
図面そのものが大きかったようです。
ありがとうございました。

05: 名前:とし投稿日:2006/03/05(日) 16:42
再びお世話になります。
印刷用紙を横置にするにはどうすれば良いでしょうか?

06: 名前:とし投稿日:2006/03/05(日) 17:20
これも自己解決です。
一通りのコードを乗せておきます
お騒がせしました。
Dim vsoWindow As Visio.Window
vsoWindow = AxDrawingControl1.Window
Dim visSectionObject As Integer = 1
Dim visRowPrintProperties As Integer = 25
Dim visPrintPropertiesPageOrientation As Integer = 16
MyApp = AxDrawingControl1.Window.Application
vsoWindow.Application.ActivePage.PageSheet.CellsSRC(visSectionObject, visRowPrintProperties, visPrintPropertiesPageOrientation).FormulaU = "2"
MyApp.DoCmd(Visio.VisUICmds.visCmdFilePrint)

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



139: シェイプがマスターより派生されたかどうか調べる方法  全レス

01: 名前:投稿日:2006/03/02(木) 20:16
いつもお世話になります。

Visio2003を使用しています。
マスターシェイプについてなのですが、図面のシェイプがマスターシェイプ
より派生されたものでない(no master)ことを調べる方法はあるのでしょうか?

というのもページ内の全シェイプに対して MasterShape.Nameで
マスターシェイプの名前を聞く処理を作成しているのですが、
四角形シェイプ等を入れているとエラーになってしまうので回避したい
のです。

もしご存知の方がいらっしゃればご教授ください。

02: 名前:yoda投稿日:2006/03/02(木) 21:04
CreateSelectionを使えばできると思います。
特定の名前のマスターから派生したシェイプを求めるという、既出の話題
がありますので、ご参考になるかもしれません。

03: 名前:yoda投稿日:2006/03/02(木) 21:19
こんな感じかと思います。
Sub FindAllMasteredShapes2()
Dim vsoSelection As Visio.Selection
Dim myMaster As Visio.Master
Dim shp As Visio.Shape
ActiveWindow.DeselectAll
For Each myMaster In ThisDocument.Masters
Set vsoSelection = ActivePage.CreateSelection(visSelTypeByMaster, visSelModeSkipSub, myMaster)
For Each shp In vsoSelection
Debug.Print myMaster.Name, shp.Name
ActiveWindow.Select shp, visSelect
Next
Next
End Sub

04: 名前:投稿日:2006/03/03(金) 08:03
yoda様
いつもありがとうございます。
サンプルまで作成してくださいまして誠にありがとうございます。
早速試してみます。
またMasterShapeで検索をかけたのですがヒットしなかったので
あきらめていました。もう少し過去ログを探すようにします。

05: 名前:visGeek投稿日:2006/03/03(金) 09:42
MasterプロパティがNothingかどうかを調べてください。

06: 名前:yoda投稿日:2006/03/03(金) 10:22
あっ。なーるほど。こんな感じでは?
Sub test()
Dim shp As Visio.Shape
For Each shp In ActivePage.Shapes
If shp.Master Is Nothing Then
Debug.Print shp.Name & " no master"
Else
Debug.Print shp.Name & " " & shp.Master.Name
End If
Next
End Sub

07: 名前:投稿日:2006/03/03(金) 13:32
visGeek様、yoda様

ありがとうございます。
一番回避しやすい方法は、 Master Is Notihg でした。
(プログラムの修正を最小限にするという意味で)
yoda様、またサンプルを作って頂きありがとうございました。
CreateSelectionで過去ログを見て、方法1に書いてあった
『If Not shp.Master Is Noting Then』という箇所が
まさにそれだと思いました。

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

08: 名前:うめ投稿日:2006/03/03(金) 17:49
毎回コメントを送信してもエラーになり、
送信できたと思ったらへんな形になってしまいました。
すみません。

VISIO画面にExcelのオブジェクトを挿入し、
既存のExcelファイルの1シートの一部分を
VISIO画面上に挿入したExcelオブジェクトのセルに
コピーしたいのですが
VISIOのVBAを使って
そんな事ってできますか?

09: 名前:うめ投稿日:2006/03/03(金) 18:07
やっぱり変なところに送信されてしまいました。
自分がたてた
EXCELというスレッドに送信したのに。
申し訳ありません。
何回かチャレンジして
別スレッドをたてます。
本当に申し訳ありません。

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



140: 改行コードについて  全レス

01: 名前:shin投稿日:2006/02/24(金) 16:39
シェイプに表示する文字列を内部的(VBA)に挿入しようとしています。
この時、内部的に改行コードを挿入したいと考えています。

文字列にどんな文字を埋め込めば改行されるのでしょうか?
「\n」などを挿入しても改行されませんでした・・・

以上、宜しくお願いします。

02: 名前:M1号投稿日:2006/02/24(金) 16:50
shpObj.Text = "一行目" & vbLf & "二行目"

これで改行すると思います。

03: 名前:shin投稿日:2006/02/28(火) 13:26
M1号様

返事送れてましたm(_ _)m

上記の記述で改行されました。
ありがとうございます。

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


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