KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

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

251 :半角→全角に変換する関数(03)  252 :VB.net2003でスキャンディスク・デフラグ(01)  253 :Microsoft Forms2.0 ListBoxのイベントについて(03)  254 :Microsoft Forms2.0 ListBoxの操作方法2(09)  255 :Excelファイルの保存終了方法(07)  256 :GUID(03)  257 :テキストの表示/非表示(04)  258 :変形中の直線の始点・終点の判別(08)  259 :カスタムプロパティに制限(04)  260 :VBAから別のBOOKのVBAにstringのパラメータ付きで起動したい(02)  261 :LabVIEWからデータベースリフレッシュを自動で行う(02)  262 :総合計 と GrandTotal(02)  263 :空白(03)  264 :VB6で作ったExeをモーダルで表示する方法(09)  265 :メニューに追加した項目が表示されない(02)  266 :追加したメニューにイベントが追加できない(05)  267 :VBで(02)  268 :dllを作成しなくても動かせる方法(05)  269 :DrawingControlでコネクタツールを使用する方法(13)  270 :カスタムプロパティーの値を取得する(13)  271 :質問です(06)  272 :VBで「CAD Drawingオブジェクト」-「変換」を実行する方法(09)  273 :VB6で印刷(10)  274 :カスタムプロパティの内容を一部削除したい(04)  275 :シェイプの色を変える(03)  276 :TabStrip、MultiPageのページ制御(03)  277 :VB6でシェイプを描く方法(13)  278 :ギリシャ文字の大文字・小文字の区別(03)  279 :マウスポインタの座標(05)  280 :モジュールの戻り値をプロパティに設定できますか?(07)  281 :他の形式で保存(04)  282 :カスタムのエクスプローラライクなビューの作り方(02)  283 :図形作成後、特定レイヤーへ配置する方法について(09)  284 :[C#]CommandBarButtonの画像について(13)  285 :ステンシルのキーワード取得について(07)  286 :フィールド名のユーザ定義式の一括修正方法について(18)  287 :レイヤー名の取得(03)  288 :コネクタの始点・終点どちらが接続されているのか?(04)  289 :矩形範囲内のシェイプを取得(09)  290 :図形を重ねたときの処理(16) 
ログ検索  リロード  前のページ  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 次のページ  総てのスレッド  スレッド総数 696251 - 260 を表示


251: 半角→全角に変換する関数  全レス

01: 名前:サブロー投稿日:2005/01/20(木) 21:36
始めまして、簡単な質問ですみませんが、VISIOのマクロで、
半角→全角に変換する関数はないのでしょうか?
ありましたら、お教え願います。

02: 名前:yoda投稿日:2005/01/20(木) 22:34
ChrWはどうでしたっけ?

03: 名前:yoda投稿日:2005/01/20(木) 22:50
A=StrConv("A", vbWide) でした。

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



252: VB.net2003でスキャンディスク・デフラグ  全レス

01: 名前:イチゴ投稿日:2005/01/19(水) 13:11
vb.net2003でスキャンディスク・デフラグの自動実行・終了させたいのですが
どうすればいいですか?

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



253: Microsoft Forms2.0 ListBoxのイベントについて  全レス

01: 名前:キョロちゃん投稿日:2005/01/14(金) 11:36
ListBox中の選択項目のいずれかがClickされたら、選択された項目を取得
する仕組みを作成していますが、ListBoxのClickイベントではClickのみならず、
キーボードの矢印キーで選択肢を変更しただけでもイベントが発生してしまいます。

何か良い方法はないでしょうか?

02: 名前:yoda投稿日:2005/01/14(金) 14:41
このサイトで、なんどもお願いしているのですが、
同じテーマはは、一つのスレッドで続けるように
して下さい。あとで、整理、検索がしやすいよう、
協力しましょう。
ListBoxについてでしたら、スレッドを変えない
方が、よいでしょう。

03: 名前:yoda投稿日:2005/01/17(月) 21:44
VisioのVBAエディタのHELPの
Microsoft Forms オブジェクト
リファレンスの中にある、
ClickイベントのHelpを
よく読むことをお勧めします。

その中に
コントロールをクリックして
Click イベントが発生したとき、
Click イベントに続いて一連
のイベントが発生します。

MouseDown
MouseUp
Click

Clickイベントだけでは、
矢印でリストの項目を検出する
ので、たとえば、
MouseDownイベントと
Clickイベントを組み合わせて、
見ればよいと思います。

コードにすると、以下のように
なると思います。
Option Explicit

Private Mdown As Long
Private Clk As Long

Private Sub ListBox1_Click()
If Mdown = 1 Then
Mdown = 0
MsgBox "ListBox1がClickされたよ!"
End If
End Sub

Private Sub ListBox1_MouseDown(ByVal......)
Mdown = 1
End Sub

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



254: Microsoft Forms2.0 ListBoxの操作方法2  全レス

01: 名前:キョロちゃん投稿日:2005/01/11(火) 20:41
あるイベントをトリガーにListBoxの表示/非表示を切り替えたいのですが、
ListBoxにVisableがないので、レイヤにして表示をコントロールさせることを
試みてますが、VBAの処理が終わるとListBoxが開発モードの状態となっており、
リスト項目を選択できる状態となりません。
(クリックするとListBox全体が選択される状態)

こんなことはできないのでしょうか?
また、他の方法をご存知の方がいましたら教えてください。

ソース:
ListBox1.AddItem 値1
ListBox1.AddItem 値2
Set vsoLayList = Application.ActiveWindow.Page.Layers.Item(9)
vsoLayList.CellsC(visLayerVisible).FormulaU = "1"

※開発モードが原因なのかと以下の行も試しましたが駄目でした。

Application.ActiveDocument.Mode = visDocModeRun

乱用してしまいすみませんが、よろしくお願い致します。

02: 名前:yoda投稿日:2005/01/11(火) 22:28
ListBoxにVisibleはありますよ。

03: 名前:キョロちゃん投稿日:2005/01/12(水) 10:23
ExcelVBAではなく、VisioVBAのListboxにですか?
とすると、記述方法が違うのでしょうか?
私は以下のような記述で駄目(Visibleの候補も表示されない)でした。

ListBox1.Visible

記述方法が違ってたら教えていただけませんか?

04: 名前:yoda投稿日:2005/01/12(水) 10:57
ListBox1.Visible = True あるいは、
ListBox1.Visible = False です。

これも余計なことですが、
入力候補を表示することを活用すれば、
楽に確認できます。

li と打って、Ctrl+空白 で
ListBox1 となり、
ListBox1.vi まで打てば、Ctrl+空白 で
ListBox1.Visible となり。
つづけて = を打てば、
入力候補が、false と True であることが
確認できます。

05: 名前:キョロちゃん投稿日:2005/01/12(水) 13:30
入力候補も活用していますが、Visibleは候補にありません。
他に考えれれる原因をご存知ありませんか?

参照設定では、以下のものを設定しています。
Microsoft Excel 9.0・・・
Microsoft Forms 2.0・・・
Microsoft Office 11.0・・・

06: 名前:yoda投稿日:2005/01/12(水) 14:16
お手数をおかけしてすみませんでした。
もしかしたら、ListBoxをUserFormの上で
はなく、図面の上に挿入していませんか?
確かに、この場合はVisibleはありません。

ShapeSheetの設定でも、多分だめでしょうから、
これは、専用のレイヤにListBox1を乗せておいて、
そのレイヤを非表示にするしかないでしょう。

07: 名前:yoda投稿日:2005/01/12(水) 14:29
もっと簡単な方法としては、
ShapeSheetの Width と Height を ゼロ
にしてしまう方法もありそうです。

08: 名前:yoda投稿日:2005/01/12(水) 14:38
ListBox1のWidthとHeightで
表示非表示を切り替えるには、
以下のようなサブルーチンを
作ればよいと思います。
Sub NoshowListBox1()
ThisDocument.ListBox1.Cells("width") = 0
ThisDocument.ListBox1.Cells("Height") = 0
End Sub

Sub ShowListbox1()
ThisDocument.ListBox1.Cells("width").Result("mm") = 20
ThisDocument.ListBox1.Cells("Height").Result("mm") = 20
End Sub

09: 名前:キョロちゃん投稿日:2005/01/12(水) 15:09
yodaさん、即レスありがとうございました。

言われるとおり、ListBoxは図面の上に直接設置してます。
私もwidth、Heightに目を付けてやってみましたが、うまく行かず
半ば諦めてたんですが、yodaさんのソース(08)をそのまま使ったら一発で
できました。
ようやく今までのモヤモヤが解消できました。
ありがとうございました。

ちなみに、レイヤを使用した方法は私も試しましたが、処理後にVISIOが
開発モードに切り替わってしまい、駄目でした。

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



255: Excelファイルの保存終了方法  全レス

01: 名前:あんぱんまん投稿日:2005/01/11(火) 14:01
VISIOのVBAでExcelファイルを開いて編集する機能を作っていますが、
Excelファイルを保存して閉じる方法がうまくいかず、どのように修正すれば
うまくいくのかわかりません。
どなたかご存知の方がいらっしゃいましたら教えてください。

ちなみにソースは以下のように記述しています。

【Excelファイルオープン処理】
Set db = CreateObject("excel.application")
db.Workbooks.Open FileName:=ファイル名, ReadOnly:=False

【Excelファイルクローズ処理】
db.Workbooks.Save
db.Close
db.Quit

02: 名前:yoda投稿日:2005/01/11(火) 17:06
db.Workbooks.Open の後に、
db.visible=true を入れればよいでしょう。

余計なことですが、
こういうコーディングをする時は、
とりあえず、ツールの参照設定で、
Microsoft Excel .. Object Library を
参照設定しておくと、らくに間違いの
少ないプログラムを書くことが出来ます。
プログラム文の最初に
Dim db as ex  まで、コーディングし、
Ctrlキーを押しながら空白キーを押すと、
入力候補が表示され、その中の
一番上にExcelがありますので、
ダブルクリックするだけで、確信を
持って入力できます。
Dim db As Excel のあとピリオドを
打ち、Ctrlキーを押しながら空白キー
を押すと、次の候補がでますので、
続けて app と打ちますと、 application
が先頭にきます。

Dim db As Excel.Application 文があれば、
あとのコーディングでも、次々と入力候補
の表示ができます。

CreateObject 文があれば、この参照設定
は必要ないので、コーディングが終わったら
Dim db As Excel.Application 文を
Dim db as Object と変更すれば、
参照設定を削除しても問題ありません。

03: 名前:あんぱんまん投稿日:2005/01/11(火) 20:26
yodaさん、いろいろと教えていただき
ありがとうございます。

早速 db.visible=true を追記してみましたが、
やはりできません。

また、参照設定も行っても db.Workbooks に Saveの候補が
表示されませんでした。

他に原因があるのでしょうか?

04: 名前:yoda投稿日:2005/01/11(火) 22:29
わかりませんが、
他に原因があるのでしょう。

05: 名前:名無しさん投稿日:2005/01/12(水) 09:19
Quitしてから Closeしてみたらどでしょうか?

参考
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_060.html [source] [check]

06: 名前:yoda投稿日:2005/01/12(水) 09:49
workbooks には、save メソッドはありません。
workbooks は、documentのコレクションですから、
workbook (sなし) を特定する必要があります。
これも、入力候補を表示することを覚えれば、
容易に確認できることです。
入力候補は、メニュー 編集 にもありますので、
ご覧下さい。
ご参考のために、コードを書きます。

Option Explicit
Sub test()
Dim db As Excel.Application
Dim Book As Workbook
Set db = CreateObject("excel.application")
db.Visible = True
Set Book = db.Workbooks.Open(FileName:="ファイル名", ReadOnly:=False)

Book.Save
Book.Close
db.Quit
End Sub

07: 名前:キョロちゃん投稿日:2005/01/12(水) 10:00
頭をリフレッシュして再度見直したところ、db の定義がOBJECTになって
ました。これを Excel.Application に直したところ、以下のロジックでうまく
Excelが保存終了してくれました。

db.ActiveWorkbook.Save
db.Quit

皆さん、いろいろと教えて頂きありがとうございました。m(._.)m

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



256: GUID  全レス

01: 名前:yoda投稿日:2004/11/16(火) 10:37
GUID(Global Unique Identifier)を生成するコードを作ってみました。

Sub test()
Debug.Print strGuid
End Sub

Function strGuid() As String
Dim objGuid As N2DASPGUIDLib.AspGUID
Set objGuid = CreateObject("NET2DATABASE.ASPGUID")
strGuid = objGuid.CreateGUID
End Function

N2DASPGUID、N2D AspGUID COM オブジェクト(GUIDを生成する
COMオブジェクト) は、
http://www.vector.co.jp/soft/win95/net/se205003.html [source] [check]
からダウンロードし、マニュアルに従ってインストールしました。

02: 名前:yoda投稿日:2004/11/16(火) 17:28
Visioと何の関係が、と思われるかもしれませんが、
ステンシル配布用のインストールファイル(拡張子:msi)
で、使われています。

03: 名前:yoda投稿日:2005/01/05(水) 10:44
不勉強でした。
strRet = objShape.UniqueID(visGetOrMakeGUID)
これで、GUIDの付与または、取得が出来るのでした。

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



257: テキストの表示/非表示  全レス

01: 名前:たか投稿日:2004/12/27(月) 15:24
VB.NETからVisio2003のDrawing Controlを使ったプログラムを作っています。
Shapeのテキストをプログラムから表示/非表示を切り替えたいのですが、
どうすれば良いのでしょうか?
シェイプ・シートのMiscellaneousにあるHideTextをTRUE/FALSEに変える事と
同様のことがしたいのです。

02: 名前:M3号投稿日:2004/12/27(月) 17:32
こちらを参照下さい
http://www.mster.co.jp/visiosquare/cgi-bin/visbbs/mibbs.cgi?mo=p&fo=auto&tn=0021 [source] [check]

03: 名前:M3号投稿日:2004/12/27(月) 17:42
間違いました。
?HideTextではダメなのですか?
Drawing Controlを使用してもShapeSheetは編集
可能ですが。
Shape.CellsSRC(visSectionObject, visRowMisc, visHideText).FormulaU = "TRUE"

CharctorのTrancparencyを100%(透過性100%)で
見栄え上、消えます。

選択時にも表示したくないのであれば、ロックをかける
とかの方法もありますね。

04: 名前:たか投稿日:2004/12/27(月) 18:36
CellsSRCでvisHideTextをしていたのですが、visRowMiscになっていませんでした。
ありがとうございました。

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



258: 変形中の直線の始点・終点の判別  全レス

01: 名前:れいちる投稿日:2004/12/22(水) 18:46
いつも参考にさせて頂いております。

直線ツールで描画した直線を始点あるいは終点をドラッグして変形する際、どちらの点をドラッグしているか判別することはできるのでしょうか?
マウスイベントで座標をひろうしかないのでしょうか、、、


version:Visio2003

02: 名前:yoda投稿日:2004/12/23(木) 07:07
簡単な方法としては、
矢印ツールで、矢印をつけて区別
するというのはいかがでしょう。

03: 名前:‚れいちる投稿日:2004/12/24(金) 09:46
レスありがとうございます。

確かにマークを付けることでわかるようになりますが、始点・終点を意識せず描画できるようにしたいのです。
プログラム側で始点・終点に応じた処理をしたいと考えています。

04: 名前:yoda投稿日:2004/12/24(金) 11:55
多分、マウスイベントで座標をひろうしかないのでしょう。
しかし、一仕事になりそうです。
趣旨から外れますが、
他の図形に接続した時のイベントでなら、
判別できるような感じはします。

05: 名前:わんこ投稿日:2004/12/24(金) 14:02
変形中にリアルタイムでというわけではないけど、「一次元図形の端点」セクションの
BeginX(Y)が始点、EndX(Y)が終点の座標なので、変形前の値を「ユーザー定義セル」にでも
置いておいて、変形後の値と比較することで、どちらが変わったかは判別できると思います。

06: 名前:yoda投稿日:2004/12/24(金) 20:30
いい方法がありましたよ。
CellChanged イベントです。
Private Sub shp_CellChanged(ByVal Cell As IVCell)
Debug.Print "shp_CellChanged " & Cell.Name
End Sub
で、始点を動かすと、
shp_CellChanged BeginX
shp_CellChanged BeginY
shp_CellChanged Width
shp_CellChanged PinX
shp_CellChanged PinY
shp_CellChanged LocPinX
shp_CellChanged Geometry1.X2
shp_CellChanged Angle
となり、
終点を動かすと、
shp_CellChanged EndX
shp_CellChanged EndY
shp_CellChanged Width
shp_CellChanged PinX
shp_CellChanged PinY
shp_CellChanged LocPinX
shp_CellChanged Geometry1.X2
shp_CellChanged Angle
となりました。

07: 名前:yoda投稿日:2004/12/25(土) 10:51
http://www.mster.co.jp/visiosquare/cgi-bin/upload/image/107.zip [source] [check]
にサンプルをアップしました。
図面の直線を選択してから、
上書き保存し、直線の始点、
または終点を移動してみてください。
あくまでもサンプルですから、
両方同時に動かすような意地悪は
しないで下さい。

08: 名前:れいちる投稿日:2004/12/27(月) 09:07
MouseDownイベントで座標をとらえて、始点・終点と距離が近いほうを拾う方法を考えていました。

>わんこさん
レスありがとうございます。
確かにユーザー定義セルは使えますね。参考にさせていただきます。

>yodaさん
サンプルコードありがとうございます。参考にさせていただきます。

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



259: カスタムプロパティに制限  全レス

01: 名前:Tsuyoshi投稿日:2004/12/24(金) 12:58

VISIO2003でカスタムプロパティを書き出すコーディングをしているのですが、
カスタムプロパティの数に制限はあるのでしょうか?
14個目まではOKですが15個目では、予期しないEOFエラーになります。Cells("Prop.Row_14.Value")
Cells("Prop.Row_15.Value")

02: 名前:yoda投稿日:2004/12/24(金) 15:35
CellsSRC を使ってはいかがでしょう。
CellsSRC(visSectionProp, I, 0)
I は、ゼロから、項目数-1 までです。

03: 名前:yoda投稿日:2004/12/24(金) 15:51
余談ですが、CellsSRCの第2引数は、
Columnのindexだそうですが、
順番に並んでいるわけではないようです。
やみくもに調べたところ、
0 : Value
5 : Type
6 : Invisible
7 : Ask
でしたが、その他のColumnの
indexは分りませんでした。

04: 名前:yoda投稿日:2004/12/24(金) 20:03
HELPのVisCellIndices の定数
によると、VisCustProps..... だ
そうで、番号順にならべると
以下のようになります。

0 Value
1 Prompt
2 Label
3 Format
4 SortkKey
5 Type
6 Invisible
7 Ask
14 LangID
15 Calender

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



260: VBAから別のBOOKのVBAにstringのパラメータ付きで起動したい  全レス

01: 名前:ひろしです投稿日:2004/12/09(木) 12:11
VBAから別のBOOKのVBAにstringのパラメータ付きで起動したいので実現方法をご教示願います

02: 名前:yoda投稿日:2004/12/09(木) 18:15
BOOKとは、EXCELのWorkBookでしょうか?
もしそうでしたら、Excel関係のサイトで、
お尋ね下さい。

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


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