KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel ウィンドウを常に最前面に表示するにはどうすればよいですか?

著者Xiaoyang変更日

マルチタスク中にExcel ウィンドウが他のアプリの背後に隠れて、イライラした経験はありませんか? 多くのユーザーは、ブラウザーやその他のデスクトップアプリを使いながらExcel を参照したり、手動で数値を転記したりする際、Excel のワークブックウィンドウを常に最前面に表示しておきたいと感じています。 この機能は、デュアルモニター環境で作業する方、プレゼンテーションを行う方、あるいはExcel と他のソフトウェアを頻繁に切り替える方にとって特に便利です。

残念ながら、Microsoft Excel には、Excel ウィンドウを他のウィンドウの常に最前面に表示させるための組み込み設定やオプションが標準では用意されていません。Office のバージョンや 32 ビット/64 ビット版に関係なく、標準インターフェースでは Excel をすべての開いているウィンドウの上に固定する機能はサポートされていません。ただし、この機能を実現する代替手段は存在します。以下では、さまざまな使用シナリオに対応した VBA コードによる方法をご紹介します。

VBA コードでExcel ウィンドウを常に最前面に表示する


VBA コードでExcel ウィンドウを常に最前面に表示する

この VBA コードを使えば、現在アクティブなExcel ウィンドウを他のすべてのウィンドウの最前面に固定でき、他のアプリケーションに隠されることなく常に表示されます。Office の32 ビット版・64 ビット版のどちらでも動作する VBA スクリプトを以下にご用意しました。この方法は、高度なExcel ユーザーの方や、追加ソフトウェアのインストールが許可されていない環境で作業されている方に特におすすめです。

先に進む前に、マクロの実行中に予期しないエラーが発生したり、Excel が再起動したりする可能性があるため、必ず作業内容を保存してください。また、この解決策はマクロを実行しているExcel ウィンドウにのみ適用され、他のインスタンスが自動的に最前面に表示されることはありません。

1.キーボードでALT + F11キーを押して、Microsoft Visual Basic for Applicationsエディターウィンドウを起動します。ここは、Excel ワークブックの VBA コードを入力・管理できる環境です。

2.VBA エディターで、挿入 > 標準モジュールをクリックして、ブックに新しいモジュールを追加します。その後、以下の VBA コードをコピーし、開いた標準モジュールウィンドウに貼り付けてください。

VBA コード:Excel ウィンドウを常に最前面に表示する

'Update 20140909
#If Win64 Then
    Public Declare PtrSafe Function SetWindowPos _
        Lib "user32" ( _
            ByVal hwnd As LongPtr, _
            ByVal hwndInsertAfter As LongPtr, _
            ByVal x As Long, ByVal y As Long, _
            ByVal cx As Long, ByVal cy As Long, _
            ByVal wFlags As Long) _
    As Long
#Else
    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
#End If
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Sub ShowXLOnTop(ByVal OnTop As Boolean)
    Dim xStype As Long
    #If Win64 Then
        Dim xHwnd As LongPtr
    #Else
        Dim xHwnd As Long
    #End If
    If OnTop Then
        xStype = HWND_TOPMOST
    Else
        xStype = HWND_NOTOPMOST
    End If
    Call SetWindowPos(Application.hwnd, xStype, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
End Sub
Sub SetXLOnTop()
    ShowXLOnTop True
End Sub
Sub SetXLNormal()
    ShowXLOnTop False
End Sub

このコードはシステムレベルの API 呼び出しを使ってウィンドウのピン留め状態を制御します。VBA コードが正しく動作するには、Excel でマクロが有効になっている必要があります。「マクロが無効になっています」というメッセージが表示された場合は、Excel のトラストセンター設定を更新し、マクロの実行を許可してください。

3.コードを入力後、F5キーを押すか、VBA エディターの実行ボタンをクリックすると、利用可能なマクロの一覧が表示されるマクロダイアログボックスが開きます。その中からSetXLOnTopという名前のマクロを選択し、実行をクリックして実行してください。これにより、現在のExcel ウィンドウが「常に最前面」に固定されます。下図をご参照ください。

コードを実行する方法を示すスクリーンショット

4.マクロの実行が完了すると、Excel ウィンドウが他のすべての開いているアプリケーションの最前面に固定され、複数のプログラム間でデータを参照・入力する際にExcel ウィンドウが隠れてしまう心配がなくなります。

この設定は、手動で解除するまで維持されます。ウィンドウを最小化してから元に戻しても、「常に最前面」の状態は通常保持されますが、Excel を一度閉じて再度開く際には、マクロを再度実行する必要があります。

注意:Excel ウィンドウを通常の状態に戻して「常に最前面」を解除したい場合は、同じ手順を再度実行してください。つまり、F5キーを押してマクロダイアログを開き、SetXNormalマクロを選択して実行をクリックすると、Excel ウィンドウは通常通り動作するようになります。

トラブルシューティングのヒント:マクロを実行した際にエラーが発生した場合は、まずマクロのセキュリティ設定を再確認し、すべてのマクロコードが正しく貼り付けられているかをご確認ください。一部の企業環境では特定のウィンドウ管理操作が制限されている場合があるため、期待通りに動作しない場合は IT 部門にお問い合わせください。また、このタスクは通常、管理者権限での実行を必要とせず、標準ユーザーとしてExcel を起動していることをご確認ください。

この VBA による解決策は、サードパーティ製ソフトウェアをインストールしたくなく、かつExcel の組み込みスクリプト機能に慣れている方にとって理想的です。ただし、複数のアプリケーションから頻繁にウィンドウを固定する必要がある場合は、ウィンドウ位置を管理する専用ツールの方が便利かもしれません。


最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得