« ◆Excel VBA(タイトルバーの動的な変更) | トップページ | ◆Excel VBA(Excel起動時に前回終了ウィンドウ状態を再現2) »

2007年3月23日 (金)

◆Excel VBA(Excel起動時に前回終了ウィンドウ状態を再現)

今回はExcelをカスタマイズするシリーズの第6弾(最終回)、Excel起動時に前回終了ウィンドウ状態を再現について述べたいと思います。

ちょっと話しが脱線しますが、私はWindowsXPを使用しているのですが、タスクバーを左側にして利用しています。もともとパソコンを使い始めたころから、Excelなどのソフトのメニューは上部にあるのにタスクバーが下にあるとマウスの移動が大きく面倒だなと不満を感じていたので上部にして使用していました。あるとき、同僚が左側にしているのを見たのをきっかけに左側にして使用するようになりました。初めは「え~変わった使い方だなぁ」と思ったのですが、よくよく自分の使い方を考えてみると、上部だとタスクバーの利用と、ソフトのメニューの利用ととても接近していて便利なのですが、ソフトの縦の情報がタスクバーの高さ分だけ減少してしまいます(ノートPCの利用が多いので上下の数行は貴重)。どちらかというと、上下よりも左右の情報(特に右側)は必要度が低いのでタスクバーを左側に持ってくれば上下の情報が少しでも稼げると感じました。タスクバー上のボタンも、ソフトのメニューも適度に近いし慣れると結構快適であると感じています。

ということで長々と書いてきましたがタスクバーを左側に置くと、最もよく使うExcelで1点弊害が出てきました。それは、Excelを起動すると必ず左端に開くということです。つまり、Excelの一部がタスクバーの裏に隠れてしまうのです。タスクバーの設定で、「常にほかのウィンドウの手前に表示する」というのがありますが、この設定にしてもダメです。Excelを最大化しておけば大丈夫なのですが、理由があって最大化したくないのです。

このように隠れてしまう弊害を解消するために、ウィンドウのサイズと表示位置を保存しておき、次回起動時にそれを再現するという機能をExcelに持たせればよいと考えました。

これを実現するためには以下のワザを駆使する必要があります。

    (1)自分好みに調節したExcelウィンドウの縦横サイズと表示座標を取得する(WindowsAPI関数を利用する必要有り)

    (2)Excel終了時に(1)の情報を保存する(保存先はレジストリでも良いが手軽なiniファイルへの保存を採用することとする。WindowAPI関数が必要)

    (3)Excel起動時にiniファイルから情報を取得する(これもWindowAP関数I)

    (4)取得したウィンドウ位置などを設定する(当然これもWindowsAPI関数)

以上が処理の概略です。

ちょっと前置きというか脱線というかVBAの説明に入る前の話しが長くなったので今回はここまでとします。次回が本当の最終回ということで。。。 それでは。

※私が作成したVBAツールです。よかったら使ってみてください。

« ◆Excel VBA(タイトルバーの動的な変更) | トップページ | ◆Excel VBA(Excel起動時に前回終了ウィンドウ状態を再現2) »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« ◆Excel VBA(タイトルバーの動的な変更) | トップページ | ◆Excel VBA(Excel起動時に前回終了ウィンドウ状態を再現2) »