Image: なぜAlt+F4がアプリ終了のショートカットキーか [Win]

意外に究明されていそうでされていない素朴な疑問。長文です。

ちなみに、AIの回答はこちら↓

Image: Answered by Google AI

恐らく、WikipediaのCUAの記事から引っ張っているのだろうけど、その記事の出典は個人のブログ記事であり、内容も薄い。実のところ、CUAの規格はOS/2のバージョンアップに合わせて何度か差し替えられている。後のバージョン (Object-Oriented Interface Design: IBM Common User Access Guidelines , 1st ed., Dec.1992) には確かにそのような記述があるが、それは単に追認されただけという可能性もある。そもそもそれが理由だったとして、「規格として決まったから」で終わってはつまらない。

押しにくくて、押しやすい位置だから

私としてはこれが単純だから推したい。

AltキーとF4キーの位置関係は、通常の文字入力では間違って押すことはまずないだろうが、押したいと思ったときには、左手でも右手でも、片手で比較的押しやすい位置にあって、間違って押すことは避けたいが日常的に使うショートカットキーとして適していると思う。(もし片手では精一杯と感じるなら、それはあなたが私と同じアジア人だからだろう。)

Windowsキーは1994年9月に発売されたMicrosoft Natural Keyboardで初登場し、Windows 3.1以前の時代には存在しなかった。下は1990年代まで欧米で広く使われたキー配列の原形である Model M キーボード(ドイツ語版)。

Image: IBM Model M keyboard DE layout
画像:File:IBM Model M 1391403 keyboard.jpg - Wikimedia Commonsより。

1985年までのIBM PCに付属したModel F キーボードの場合、ファンクションキーは12個ではなく10個で、左に配置されていた。

Image: IBM Model F keyboard DE layout
画像:File:IBM Model F XT German keyboard.jpg - Wikimedia Commonsより。

いつからAlt+F4=終了になったか?

Windows 3.1までのマニュアルにはマウスでの操作方法に加えてキーボードで操作する方法が併記され、全ての操作はマウス無しでできるようになっていた。

実際に試してはいないが、Windows 1.0にはファンクションキーを使ったショートカット(Windowsの用語では「アクセラレータ」という)がないらしい。マニュアルによれば、キー操作でアプリケーションを閉じる方法は、Alt+Spaceでシステムメニューを表示して、Cキーで “Close” を選択し、Enterキーで決定すると書かれている。現在のWindowsでも同じ方法を使えるが、Windows 1.0ではCから始めるメニューが他にもある場合は希望のメニューが選択されるまでCキーを複数回押す必要があった。

Image: System menu on Windows 11
画像:Windows 11(2025年)のシステムメニュー

Alt+F4のショートカットキーは、フロート型マルチウィンドウが可能になったWindows 2.0で追加された。実はこの時、Altキーとファンクションキーの組み合わせのショートカットは他にもあった。

Image: Windows 2.1 メモ帳
画像:Windows 2.1(1989年)メモ帳のスクリーンショット

  • Alt + F5 : ノーマル表示 (Restore)
  • Alt + F7 : 移動 (Move)
  • Alt + F8 : サイズ変更 (Size)
  • Alt + F9 : アイコン表示 (Minimize)
  • Alt + F10 : フルスクリーン表示 (Maximize)
  • Alt + F4 : 閉じる (Close)

このうち、Alt + F4以外のショートカットキーはWindows 3.0で一旦廃止され、Windows 7でWinキーとの組み合わせで違う形で復活した。しかし、実はCtrlキーとの組み合わせでMDI子ウィンドウ用の操作として一部のアプリでは存続していて、Microsoft Excelでは現行のOffice 365でも使える。

Image: Microsoft Excel 5.0 MDI
画像:Excel 5.0(1994年)のスクリーンショット

Common User Access (CUA) は根拠か?

PCアプリケーションの操作体系を統一する初期の試みとして、1987年にIBMが提唱した Systems Application Architecture (SAA、システムアプリケーション体系)が知られる。この中のCommon User Access (CUA、共通ユーザーアクセス)でキーボード配列や一般的なキーの役割が定められた。その一部を抜粋すると、

3.7.2.1 Function Key Area Content

All common actions that might be valid on the current panel are displayed in the function key area.

* Required for all application panels in the primary window if the action is supported on the panel:
- F1=Help
- F2=Display keys
- F3=Exit
- F4=Prompt
- F5=Refresh
- F6=
- F7=Backward
- F8=Forward
- F9=Retrieve/Command
- F10=Actions
- F11=
- F12=Cancel
...このあとF24まで定められている。

となっている。このうち、F1、F3、F12はCUA準拠のためには必須だった。SAAはIBMのメインフレーム、オフコン、パソコン用OSで操作体系の統一を図った。

Image: OS/400 メイン・メニュー
画像:https://iroiro400.sakura.ne.jp/screen.htmより。

これらのショートカットキーはそれ以前からPCを除くIBMのコンピューターでは使われていたもので、IBMのOSの一つであるCMS (Conversational Monitor System、会話型モニタシステム)やそのコマンド入力の簡略化を図ったISPF (Interactive System Productivity Facility、対話式システム生産性向上機能)、ソースエディターのXEDITなどで部分的に一致し、1980年代前半までさかのぼれる。

Image: CMS FILELIST
画像:『対話式計算システムの活用技法』(平尾隆行 著、1984年)より。

CUAで規定されたコマンドのうちF1 = ヘルプ、F5 = 更新は今でもよく使われている。また、PC DOS 4.0以降やWindows 3.1までのセットアップウィザードはF3=終了だった。

Image: Windows 3.1 セットアップ
画像:Windows 3.1(1993年)のスクリーンショット

F10 = アクションは今でも一部のアプリで対応しているが、iTunesでは右クリックメニューが表示されるなど、アプリによって対応はまちまち。しかし、 F3 = 終了、F4 = プロンプト(選択リストの表示)は、WindowsのAlt + F4 = 終了には結びつかない。

律儀なことに、IBMはCUAの発表と同時にPC用にサンプルプログラムをリリースしていた。これを見ても、F3=Exitであることに変わりない。

Image: IBM Common User Access Samples
IBM Common User Access Samples - The GUI Galleryより。

ちなみに、OS/2のファイルマネージャーではF3キーに終了コマンドが割り当てられ、F3とAlt+F4のどちらでもウィンドウを閉じることができる。

Windows以前のDOS時代からの習慣だった可能性

今の時点でこの可能性は見つかっていない。

SAA提唱前から存在したDOSアプリケーションは操作体系がバラバラで、IBM PCの代表的なオフィスソフトであるLotus 1-2-3もSAAと一致しない。1-2-3では、F1 = メニュー、F3 = 再編集、F4 = 絶対/相対参照となっている。

Image: Lotus 1-2-3 2.2J
画像:Lotus 1-2-3 R2.2J(1990年)のデモンストレーション

Microsoft MultiplanのIBM PC版はファンクションキーに対して割り当てなし、IBM 5550版はF4=再計算、PC-98版はF4 = セルポインタを次の窓に動かす、となっている。

Image: Multiplan K3.1
画像:IBM PS/55用Multiplan K3.1(1988年)のヘルプ画面

DOSのコマンドプロンプトではファンクションキーにテンプレート機能が割り当てられていて、SAAとは全く無関係。F4キーはDOSが由来ではなさそう。

ShiftやCtrlではなく、なぜAltなのか?

Shiftキーは文字キーとの同時押しでは小文字が大文字になるように、ファンクションキーもShiftとの同時押しでそれに関連する別のプログラム機能を入れることが通例だったため、そこに独立したシステム機能を割り当てるのは避けるべきだろう。

CtrlはAltと何が違うのか?それぞれの役割を見ると、歴史的にはCtrlキーはテレタイプの時代から制御コードの入力に使われたことに対し、Altキーは1970年代のコンピューター端末で使われたMetaキーを起源としていて比較的新しい。文字コードが米国標準規格 (ANSI) の7ビット(128)からコンピューター独自の8ビット(256)に拡張されたとき、この拡張された文字(主にグラフィック文字やヨーロッパ圏の言語用)を入力するために追加されたのがMetaキーで、これがIBM PCではAlt-Gr(US 101配列では右Alt)、MacintoshではOption、日本のNEC PCではGRPHキーになった。

IBM PCのBASICではAltを押しながら命令などの予約語の頭文字に対応する文字キーを押すことで、その予約語が入力されるという機能があった。現在の自動補完機能に似ているが、対応する予約語はあらかじめ特定の1つに決まっていた。例えば、ALT+Pを押せばPRINTが入力された。DOSのコマンドプロンプトにはそのような機能はなかったが、DOSではAltを押しながら3桁の数字をテンキーで入力すると、そのOEMコードに対応する文字が入力されるという機能があった。この機能は現在のWindowsでも使える。

Windowsより先に発売されたデスクトップ拡張ソフトのDESQViewやTopViewは、Altキーにメニュー呼び出しやタスク切り替えなどの重要な役割を与えた。Windowsもこれにならっている。また、Windows 1.0はAlt+文字キーがメニューバーの各項目の頭文字に対応した(文字とキーが必ずしも1対1で対応しない日本語版は、メニュー名の先頭に英字を付した)。この機能は現在のWindowsでも有効だが、多くのアプリは自前でアクセラレータを定義している。

なぜF4なのか?

ファンクションキーの最初であるF1=ヘルプキーは分かるが、なぜF4にプログラムの終了を持ってきたのか。

Windows用ソフトウェア開発者向けの資料にはキーボード操作の設計ガイドラインがある。Windows 2.0の時点では上記のシステム予約以外でファンクションキーに関わる推奨項目は以下が存在した。

  • F1 : ヘルプキー
  • F6 : 次のペイン(ドキュメントウィンドウ内の子ウィンドウ)を選択
  • Shift + F6 : 前のペインを選択
  • Ctrl + F6 : 次のMDIドキュメントウィンドウを選択
  • Shift + Ctrl + F6 : 前のMDIドキュメントウィンドウを選択
  • Alt + F6 : 次のダイアログボックスを選択
  • Shift + Alt + F6 : 前のダイアログボックスを選択
  • Alt + F1 : F11キーと同じ
  • Alt + F2 : F12キーと同じ

この中の特に最後2つは私にとって目から鱗が落ちるような発見だった。オリジナルのIBM PCやPC/XT時代の Model F キーボードはファンクションキーが10個しかなかった。当初は3270/5250端末として使う想定は無かったからだ。PC/AT時代後期の Model M キーボードでファンクションキーが12個になったが、ソフトウェアは従来のキーボードもサポートするため代替手段としてAlt-F1、F2が必要だった(日本の場合、1988年までのPC98のキーボードもファンクションキーが10個だった)。となると、空いているのはF3以降ということになる。Model M キーボードではファンクションキーが4個単位で分かれているので、F3かF4ならF4の方が確実に押しやすい位置ではある。しかも、Alt + F2をF12の代替として使うなら、その隣のF3は空けた方が無難だ。

次はExcel 2.1のファンクションキー。Alt+F1はF11、Alt+F2はF12と同じであり、それぞれ新規作成、名前を付けて保存、のコマンドだった。Alt+F3は未使用。

Image: Excel 2.1
画像:Excel for Windows Ver.2.1(1990年)のヘルプ画面

ExcelはWindowsのキラーソフトであり、Windows 2.xもExcelのために開発されたようなものだ。その影響は大きいだろう。しかし、F4からF10の中でF4を選んだ理由としてはまだ足りない。

実は、初期のOS/2でAlt+F3の使用例がある。MS OS/2 1.1用の開発キット(Toolkit)に含まれているフォント・エディターとアイコン・エディターは、Alt + F3 が保存のショートカットキーだった。その次にF4を持ってきたというなら辻褄は合うが、それ以外でAlt+F3の使用例が見つからないから信憑性に欠ける。あるいは、F10から順に機能を割り当てたとき、終了するという「最後の」コマンドがたまたまF4になったとか。色んな切り口から繋がりを探してみたが、決め手に欠ける。何かから影響を受けた可能性が高いのだが。

そんな中、最もらしい別の筋を見つけた。DECの端末にVT220(日本では1983年11月16日発売、標準価格35万円)というベストセラー機種がある。

Image: DEC VT220
画像:File:DEC VT220 terminal.jpg - Wikimedia Commonsより。

そのキーボード(LK201の型番で知られる)にはModel MキーボードのF4と同じ位置にBreakというキーがあって、ホストコンピューターからのメッセージの中断や、Shiftとの同時押しで回線を切断することができた(これはさよならを言わずに電話を切るような荒いやり方であり、実際に使われた例は見つからなかった)。

Image: DEC LK201
画像:File:LK201 top.jpg - Deskthority Wiki (CC-BY-SA 3.0) by Kevin Schoedel

当時の中堅以上のソフトウェア会社であれば、UNIXを動かすためにDECのミニコンをもれなく導入していた。Microsoftも例外ではなく、ここから影響を受けた可能性はある。強引なこじつけのように思えるが、上の事情を知らない人へこう説明したら信じそうなくらいの、不思議な信憑性はある。

私の予想

結局のところ、Altの理由は先に書いたとおりとして、F11とF12やそれらの代替キーになる可能性があるF1とF2を除いて、左にあって(人間は左から物を探す)、かつ、押しやすい位置のF4を選んだんじゃないかと予想する。


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!