2014/04/16

4/16/2014
 先日、Excel2003のWindows().Activateの動作が4/9あたりのパッチで動作が変わったように書きましたが、完全に勘違いでした。

 Windows(Excelファイルのファイル名).Activate ですが、エクスプローラの設定にて「登録されている拡張子を表示しない」という設定値がありますが、これがチェックされている場合と、未チェックの場合の動作違いによるものでした。

 動作の違いは次のとおりです。

・登録されている拡張子を表示しない=チェック

 Excelファイルのファイル名= aaa.xls

  Windows("aaa.xls").Activate
    → aaa.xls ファイルはフロントにならない。

  Windows("aaa.xls").Sheets(1).Activate
    → aaa.xls ファイルはフロントになる。

・登録されている拡張子を表示しない=未チェック

 Excelファイルのファイル名= aaa.xls

  Windows("aaa.xls").Activate
    → aaa.xls ファイルはフロントになる。

  Windows("aaa.xls").Sheets(1).Activate
    → aaa.xls ファイルはフロントになる。

 上記から、様々な設定が予想される中で、少しでも環境依存を避けるべきですので、Windows().Sheets(1).Activate を使うことがよろしいかと。
 ただ、たまにSheets(1)がないものもあるかも知れませんので、このあたりをきっちり処理する共通処理を準備しておいたほうが良いでしょうねぇ。

 しかし、お騒がせいたしました。

0 コメント:

コメントを投稿