Top > OOobbs > 6

OOobbs/6

  • サマリ: Window の Activate
  • 環境: Calc
  • 状態: 投稿
  • 投稿者: XD1?
  • 投稿日: 2004-01-28 (水) 21:59:00

質問

 しばらく前、MS VBの"Windows("aaa.xls").Activate"に相当するキーワードについて質問した者です。その際は丁寧なご回答をありがとうございました。その後、私なりに考察し、本件をサブルーチン化しました。といっても大半は頂いた解説のコピーですが、これで私の希望どおりの動作をします。ただし、ファイル名が日本語だと(一種の文字化けか?)作動しません。ファイル名は半角英数とする必要があります。

 sub windowselect(filen$)
 '
 ' filen$のウンドウを選択してアクティブにする
 '  今のところ、ファイル名は半角英数記号のみ(全角、半角カナ不可)
 '  見当たらない場合、msgboxでエラーを表示する
 '  シート、セル等は、別途選択すること
 '
 dim objframes as object
 dim targetframe as object
 dim targetwindow as object
 filen2$=trim(ucase(filen$))
 '
 on error goto line100
 objframes = stardesktop.getFrames()
 n=objframes.getcount()-1
 '  
     ichk=0
     for i=0 to n
     targetframe=objframes.getbyindex(i)
     aa$=targetframe.getController().getModel().getURL()
     aa$=trim(ucase(aa$))
     if right$(aa$, len(filen2$)+1)="/"+filen2$ then
        targetwindow=targetframe.getContainerWindow()
        targetwindow.tofront()
        ichk=1
     end if
     next i
     if ichk=0 then msgbox "ERROR ! : "+filen$+" not found."
 exit sub
 '
 line100:
 aa$=""
 resume next
 End Sub


 ファイル名について、大文字小文字を区別しないよう、"ucase"関数を用いました。また、OpenOfficeのヘルプやBasic IDEもフレームとしてカウントされるようですが、これにはurlがないので、このままだと"getURL()"でエラーになります。そこで、"on error goto"の処置を加えました。本件、解決としてよいと思います。このサブルーチン、よろしければご自由にお使いください(えっ、こんなださいのいらないって!? 失礼しました)。

回答



Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes