名称 | ・・・・・・・ |
パートの子の数を取得する |
ルーチン名 | ・・・・・・・ |
GetChildNum |
スクリプトNo | ・・・・・・・ | sub- 008 |
file名 | ・・・・・・・ | script008.vbs(右クリックのコンテクストメニューでダウンロードできます。(windowsのみ) 修正(2003/05/26)UTF-8からANSIに統一。 |
概略 | ・・・・・・・ |
ハンドルで指定されたパートに含まれる子(パート,形状)の数を引数で取得する。 |
使用前提 | ・・・・・・・ |
調べたいパートのハンドルを事前に確保しておく。 |
依存関係 | ・・・・・・・ |
特に無し |
引数説明 | ・・・・・・・ |
PartHandle:調べたいパートのハンドル |
戻り値説明 | ・・・・・・・ |
true(成功)、false(失敗) |
変数説明 | ・・・・・・・ |
orgHandle:実行前の選択状態を保持する変数 |
注意点 | ・・・・・・・ |
今回はハンドル利用例、不正な引数の排除例を含んでます。 |
  | ||
スクリプト | ||
'--------------------指定されたハンドルのパート内の線形状の数を返す Function GetChildNum(PartHandle,ChildNum) 'ハンドルで指定されたパートに含まれているパート、形状の数を返す。 ' (注)このサブルーチンを使う前にパートのハンドルを取得しておく。 dim orgHandle,jdg,DSTemp,i,ShTyp,OK orgHandle=XShade.Handle() '処理前の選択状況を保持 '----check1---- if XShade.CheckHandle(PartHandle) then XShade.SelectByHandle(PartHandle) else OK=XShade.ShowMessageBox ("ハンドルが存在しません。"&CHR(13)&_ "ハンドルを確認して、"&CHR(13)&"やり直してください ",False) GetChildNum=false:exit function end if '----check2---- ShTyp=XShade.ShapeType if ShTyp<>2 then OK=XShade.ShowMessageBox ("パートのハンドルが指定されていません。"&CHR(13)&_ "パートのハンドルを指定して、"&CHR(13)&"もう一度やり直してください ",False) GetChildNum=false:exit function end if '----check3---- jdg=XShade.SelectChild(1) if jdg=0 then OK=XShade.ShowMessageBox ("指定のパートには子がありません。"&CHR(13)&_ "もう一度確認してください ",False) GetChildNum=false:Exit Function end if i=0 Do DSTemp=XShade.Handle() i=i+1 jdg=XShade.SelectBrother(1) Loop While jdg<>0 ChildNum=i XShade.SelectByHandle(orgHandle) '処理前の選択状況に復帰 GetChildNum=true end Function |
||
使用例 | ||
'選択したパートに子がいくつあるか調べるサンプル option explicit call main() sub main() dim Handle,Num,OK Handle=XShade.Handle() if not GetChildNum(Handle,Num) then OK=XShade.ShowMessageBox("中断します。",false) exit sub end if XShade.message("パートの中には"&Num&"個の形状またはパートがあります。") end sub |