[[20030909093055]] 『アクティブウインドウ以外の選択』(さかな) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『アクティブウインドウ以外の選択』(さかな)

 マクロを使用しているのですが、2つのファイルを開いていたとして、ファイル名を指定せずに、アクティブでない方のファイルを選択することは、可能ですか?
 ファイル名を指定しないというのは、片方のファイルはマクロが登録されていて、ファイル名は固定されているのですが、もうひとつのファイルは状況に応じていくつかのパターンの中から選択してひとつを開くので、名前を指定せずにアクティブにしたいのです。
 よろしくお願いします。


 IIf(Workbooks(1).Name = ActiveWorkbook.Name, Workbooks(2), Workbooks(1)).Activate

 (通りすがりの者)

 1. workbooks.open "?.xls" ファイルを開きます。
 2. Dim NewBookName As string
    NewBookName = ActiveWorkbook.name 
  開くとアクティブになるので、ファイル名を変数に格納します。
 3.Workbooks(NewBookName).worksheets("sheet1")・・・
   以後は、このようにブックを指定できます。   
 
   こんな感じでいかがでしょうか?(INA) 
 

 確かに、ファイルを開く度にファイル名を取得し変数として扱えばいいのですが
WorkBooks.Open・・・で開くのであれば、ファイル名がわかる場合もしくは指定
できる場合ではないでしょうか?
 二つのファイルしか開いていないのなら、
  1.マクロが登録してある(ファイル名の明確な)ファイルをアクティブにする。
   Windows("?.xls").Activate
  2.もうひとつのファイルをアクティブにする。
   ActiveWindow.ActivateNext
  3.この状態で(INA)さんの感じを頂いて変数に格納すればよいのでは・・・
  ※3つ以上のファイルを開いている場合選択する順序に注意してください。
   偉そうにスミマセン(我流のValk)

 >我流のValk さん
  ファイルは2つと決まっているようですので、ActivateNextの方が適切な回答でしたね。
  失礼いたしました。
   
 >WorkBooks.Open・・・で開くのであれば、ファイル名がわかる場合もしくは指定
 >できる場合ではないでしょうか?
  以下のような場合を、想定していました。(勘違いです。すいません。)
  ファイル = Dir("*.xls")  
  Do While ファイル <> ""
    If ファイル <> ThisWorkbook.Name Then
         Workbooks.Open Filename:=ファイル
    End If
    ファイル = Dir()
  Loop
   (INA) 

 そうですね。ActivateNext がありました。この方が同じ1行とはいえ、ぼくが紹介
 したものより、はるかにスマートです。

 activewindow.ActivateNext

 これだけでいいし、何度でも使えます。ありがとうございました。(通りすがりの者)


 色々教えていただきありがとうございました。
 ほとんど何もわからずにあれこれ手探りでやっている状態なので、大変参考になりました。
 これからチャレンジしてみたいと思います。
 ありがとうございました。                   (さかな)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.