[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルを常に前面表示するには』(toshihiko)
今、ちょっと試してみたけど、あんまり遣いかっては、よくないですけどねえ。 二つのタスクのウインドー(例えば、ExcelとVBE)を上下(左右)に並べて表示等で対処したら と思います。が、ご自分で試してみて判断してください。 Excel2002以上のバージョンだとして・・・。
標準モジュールに
'============================================================ Option Explicit Public Declare Function SetWindowPos Lib "user32" (ByVal Hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) As Long Public Const walways = -1 '常に手前にセット Public Const wreset = -2 '解除 Public Const wdisp = &H40 '表示する Public Const w_SIZE = &H1 'サイズを設定しない Public Const w_MOVE = &H2 '位置を設定しない '========================================================================== Sub Excelを常に手前に設定() Dim Hwnd As Long Hwnd = Application.Hwnd Call SetWindowPos(Hwnd, walways, 0, 0, 0, 0, wdisp Or w_SIZE Or w_MOVE) End Sub '=========================================================================== Sub Excelを常に手前に設定解除() Dim Hwnd As Long Hwnd = Application.Hwnd Call SetWindowPos(Hwnd, wreset, 0, 0, 0, 0, wdisp Or w_SIZE Or w_MOVE) End Sub
「Excelを常に手前に設定」を実行して試してください。
解除は、「Excelを常に手前に設定解除」を実行です。
ichinose
toshihiko 早速の回答ありがとうございます。 ”二つのタスクのウインドー(例えば、ExcelとVBE)を上下(左右)に並べて表示等で対処する方法”は、 スクリーンが余程大きければいいかもしれませんが、ちょっと使い勝手が悪そうです。 その次に書かれているコードは、VBE側に記述するという意味ですよね! だとすると、私の質問は、「エクセルに書かれている内容を見ながらコーディングをしたい」という意味で、 当然VBEは動作していないので解決にならないと思うんですが、 エクセル側のマクロに書くという意味ですか?
私が勘違いしていたみたいです。VBEではなく、VisualBasicのコーディング なんですね!!
VBは、インストールしなければならないのでVB側からの記述ではなく、 Excel側に「常にスクリーンの最前面に表示しておく」アドインを作成する手順を記述します。
つまり、 >エクセル側のマクロに書くという意味ですか? という意味です。
Excelを起動してください。新規ブックとして、Book1が既定ブックとして作成されていることを 確認してください。
Alt+F11を押して、VBEを起動してください。
Book1のThisworkbookのモジュールに
'============================================================ Option Explicit Private Declare Function SetWindowPos Lib "user32" (ByVal Hwnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) As Long Const walways = -1 '常に手前にセット Const wreset = -2 '解除 Const wdisp = &H40 '表示する Const w_SIZE = &H1 'サイズを設定しない Const w_MOVE = &H2 '位置を設定しない '========================================================================== Sub Excelを常に手前に設定() Dim Hwnd As Long Hwnd = Application.Hwnd Call SetWindowPos(Hwnd, walways, 0, 0, 0, 0, wdisp Or w_SIZE Or w_MOVE) End Sub '========================================================================== Private Sub Workbook_Open() Excelを常に手前に設定 End Sub
と記述してください。
VBEからExcelに戻ってください。
「ファイル」-----「名前を付けて保存」とクリックして、名前を付けて保存するダイアログを表示させて ください。
「ファイルの種類」として、「Microsoft Excel アドイン (*.xla)」を選択してください。 保存フォルダが変わりますが、そのまま表示フォルダに保存します。
ファイル名は、常に手前に表示.xla と命名してください。
一度、Excel本体を閉じてから、再度Excelを立ち上げてください。
再び、新規ブックとして、Book1が既定ブックとして作成されていることを 確認してください。
「ツール」----「アドイン」と起動して、アドインダイアログを表示させてください。 アドイン一覧に先に作成した「常に手前に表示」があるはずです。 チェックを入れてOKをクリックしてください。
この時点から、Excelが常に手前に表示されるはずです。 このアドインにチェックが入っている限り、次回からは、起動すれば自動的にExcelは、 常に手前に表示されるはずです。
これでVBコーディングがExcelを見ながら出来ます。
ちょっと試した限りでは、やっぱり私は使いづらかったですが・・・。
あくまでもExcel2002以上のバージョン用です。
ichinose
toshihiko ご指導ありがとうございました。もう10年以上前にちょっとマクロをかじっただけ だったのと、最近のエクセルの様相が随分変わっていたので苦労しましたが、 私の長年思っていた事が実現できました。本当にありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.