見出し画像

Windowsで日本語が入力できなくなった!画面下の「あ」や「A」をクリックしても治らないときの対処法


突然日本語が入力できなくなった!


こんな状況になったことはあるでしょうか?

「にほんご」と打ちたいのに「nihongo」としか表示されません。
これではGoogle検索でも支障が出ますし、まともにツイートできません。
こんな状態では困ってしまいますね…

しかし、それは簡単に解決できるパターンかもしれません。
本題に入る前に、ちょっと確かめてみましょう。


PC画面下(言語バー)の「あ」や「A」はクリックしましたか?

「あ」 : 日本語が入力可能な状態
「A」 : アルファベットのみが入力可能な状態

原因は「あ」ではなく「A」になっている、という場合が多いです。
「A」をクリックすれば「あ」、「あ」をクリックすれば「A」になります。


画像1

参考:日本語が入力可能な状態の言語バー(「あ」と表示)

画像2

参考:アルファベットのみ入力可能な状態の言語バー(「A」と表示)


解決したでしょうか?
もしこれで解決したのでしたら、良かったです!

しかし、この記事は「これでは解決しないよ」という方のための記事です。
言語バーが「あ」でも「A」でも、アルファベットしか表示されません。

突然、アルファベットしか入力できなくなる現象」が起こるんです。
「さっきまでnihongodattanoni」、こんな感じです。
数秒前まで日本語が入力できていたのに、突然できなくなります。

この記事では、こんな問題の解決法をお伝えします。
極論を言ってしまえば、難しいことは考えずPCを再起動すれば治ります。
しかし、この記事では再起動せずとも治す方法をお伝えします。

いちいちPCを再起動するのは時間もかかりますからね…
今回お伝えする方法も、初めてだと慣れずに時間がかかるかもしれません。
しかし、1回できてしまえば、2回目以降はとても簡単です。

「突然日本語が入力できなくなる問題」に悩まされたことがある方は、この機会に解決法が身に付くと良いですね。
次に「突然日本語が入力できなくなる問題」が起こっても、怖くないです。


はじめに

この記事に書かれている解決法は、自分が考案したものではありません。
@_masa_u さんがまとめてくださった下記の記事を参考にしています。


上記の記事で書かれている解決法を、下記のツイートにまとめました。
紹介した記事やツイートの意味がすんなり理解できる方であれば、この記事を読む必要は無いかもしれません。
ツイートに書いてある手順を試していただくだけで解決するはずです。

ツイートの状態だとコピペしにくいと思うので、改めて記載します。

【日本語入力ができなくなったときの解決法】

1. 管理者権限でコマンドプロンプトを起動
2. 「tasklist /fi "imagename eq ctfmon.exe"」と入力してctfmon.exeのpidを調べる
3. 「taskkill /pid [2.で調べたpid]」と入力
4. 「ctfmon.exe」と入力

すんなり理解できる方は、是非とも上記の方法を試してみてください!
しかし、「管理者権限って何?」「なんかよく分からない文字列が並んでる…」といった印象を抱く方も多いはずです。

この記事が目指すところは、手順書的な立ち位置となることです。

「管理者権限とは?」
「この文字列の意味は?」

読者のみなさんがこれらを完全に理解しなくても、問題の解決ができることを目的とします。

また、要所要所にWindowsを使う上で役に立ちそうな情報を載せています。
「別に日本語入力で困ってないけど、なんとなく見つけてここまで読んだ」という方も、さらに読み進めていただくと何か発見があるかもしれません。

それでは、上記のツイートに合わせて4ステップで説明していきます。


STEP1. 管理者権限でコマンドプロンプトを起動

そもそも、コマンドプロンプトとは何でしょうか?

画像3

この黒い画面です。
※既に、これから行う手順が完了した状態の画面です。

「プログラマとかが使ってそうな黒い画面」といったイメージを持つ方も多いかもしれませんね。

コマンドプロンプトには、よく分からない文字列が並んでいます。
もし、PCに直接「何とかして!」と喋りかけて、何とかなるなら簡単です。

しかし、PCは人間の言葉が分かりませんし、喋っても反応してくれません。
(Cortanaは音声に反応しますが、そういう文脈ではありません。)
そこで、「PCに分かる言葉」でお願いをする必要があります。

人間からPCに何かをお願いする場所が、このコマンドプロンプトです。
そして、そのお願いのことを「コマンド」といいます。
ただ、「コマンド」と書くと何か専門的な感じがしてくるので、これ以降は単に「文字列」とだけ記載することにします。

コマンドプロンプトには、「PCに分かる専門の文字列」を打っていきます。
「何とかして!」と日本語を打っても、PCは何もしてくれません。

これから、皆さんにはコマンドプロンプトを操作していただきます。
しかし、何か難しいことを知らないといけない訳ではありません。

この記事に書かれている内容を、コピーして実行するだけです。
これにより、「突然日本語が入力できなくなる問題」の解決が可能です。
それでは、コマンドプロンプトを起動して操作していきます。


◆検索ボックスの有無を確認

その前に、皆さんのPCの画面左下はどのような状態でしょうか?
恐らく、下記の3種類のどれかです。(Windows10であることを前提)


画像6

タイプ1:検索ボックスも虫眼鏡も表示されていない状態

画像5

タイプ2:虫眼鏡アイコンのみが表示されている状態

画像4

タイプ3:検索ボックスが表示されている状態


「タイプ2」「タイプ3」であれば、そのままで大丈夫です。
この先の説明「◆コマンドプロンプトを起動」に進んでください。

「タイプ1」だった方は、設定を変更して「タイプ2」または「タイプ3」にします。
この方法は、次の「◆検索ボックスを表示」にて説明します。

ちなみに、「タイプ1」といった表現は、この記事限定のものです。
設定画面に「タイプ1」などと書かれている訳ではありません。


◆検索ボックスを表示

ここからは、「タイプ1」だった方のための説明です。
ここまでの手順で、画面下にあるバーを確認してもらったはずです。

そのバーのどこかで、マウスを「右クリック」をします。
いつも何かを選択する場合は「左クリック」だと思います。
ですが、ここでは「右クリック」です。

画像7

画面下のバーで右クリックをすると、このような画面が現れるはずです。
上から2つ目に「検索(H)」と書いてある項目があります。

この「検索(H)」にマウスの先(ポインタ)を合わせてください。
クリック(左右どちらでも)しても問題ないですが、ポインタを合わせるだけで大丈夫です。

画像8

「検索(H)」にポインタを合わせると、新たに項目が表示されます。
上記の画面では、元々表示されていた部分の左側に現れました。
これが、右側に現れることもあります。
どちらに現れても大丈夫です、内容は同じです。

先ほどタイプ1だったということは、上記の画面のように「表示しない(N)」にチェックが入っているはずです。

画像9

検索ボックスを出現させるために、チェックの位置を変更します。
それでは、「検索ボックスを表示(B)」をクリックしてください。
ここでのクリックは、左クリックでも右クリックでも大丈夫です。

クリックすると上記の画面は消えますが、問題ありません。
この時点で、検索ボックスが表示されているはずです。
「検索ボックスを表示(B)」にチェックが入った状態を見たい方は、再び同じ手順で「検索(H)」にカーソルを合わせると確認できます。

画面左下が、「タイプ3」の状態であることを確認します。

画像10

タイプ3:検索ボックスが表示されている状態(再掲)

ちなみに、先ほどの画面で「検索アイコンを表示(W)」をクリックすると、「タイプ2」の状態になります。

画像11

タイプ2:虫眼鏡アイコンのみが表示されている状態(再掲)

この時点で、「タイプ2」「タイプ3」のどちらかになっていればOKです。
ちなみに、自分はいつも「タイプ2」の状態にしています。


◆コマンドプロンプトを起動

それでは、コマンドプロンプトを起動していきます。

「タイプ2」の方は虫眼鏡アイコンを左クリックして検索ボックスを表示します。
「タイプ3」の方はそのまま入力が可能です。

画像12

「タイプ2」で虫眼鏡アイコンを左クリックした状態

※補足

上記の画面の左側下部に「コマンド プロンプト」と表示されています。
これは、自分が最近「コマンドプロンプト」を使用したからです。

もし皆さんの画面でも表示されている場合は、アイコンを右クリックして「管理者として実行」を選べばOKです。
次の「STEP2. 文字入力プログラムのIDを調べる」にお進みください。

しかし、全員に表示されている訳では無いと思うので、全員ができる方法をこの後の部分で紹介していきます。

「タイプ2」「タイプ3」共に検索ボックスで「ここに入力して検索」と案内されているはずなので、その部分に文字を入力していきます。

ですが、「コマンドプロンプト」と日本語で打つことはできません。
皆さんは今、アルファベットしか入力できない状態はなずだからです。
打とうとすると「komandopuronputo」になってしまいます。

しかし、心配は要りません。
Windowsの検索ボックスは、英語でもローマ字でも反応してくれます。
「command」でも大丈夫ですし、「komando」でも大丈夫です。

それどころか、途中まで入力するだけで「もしかして、コマンドプロンプト探してますか?」と表示してくれます。
「command」なら「com」の時点で、「komando」なら「kom」の時点で候補にコマンドプロンプトが表示されるはずです。

画像13

「com」までで反応する例

画像14

「kom」までで反応する例

それではコマンドプロンプトを起動します。
普通に起動するのではなく、必ず「管理者権限」で起動します。

冒頭でお伝えした通り「管理者権限」が何たるかは詳しく説明しません。
「一般の権限よりも多くのことができるんだな」くらいの認識でOKです。
管理者権限が無いと、これからの操作が上手く行きません。

画像15


「管理者として実行」の項目がありますので、これを左クリックします。
そうすると、

このアプリがデバイスに変更を加えることを許可しますか?
はい      いいえ

といった画面が出てきます。
ちょっと怖いなと思うかもしれませんが、「はい」を押してください。

画像16

これで「コマンドプロンプト」が管理者権限で起動しました。
画面上に「管理者」と書いてあること、入力画面の横に「system32」と書いてあることが目印です。

画像17


ちなみに、一般の権限で起動した場合は下記の2点が異なります。

・「管理者」の文字が無い
・「system32」ではなく、ユーザ名が表示される

ユーザ名は、恐らく皆さんが本名で設定している場合も多いでしょう。

画像31

自分も本名で設定しているので、ユーザ名の部分は伏せています。
一般の権限ですと、画面上に「管理者」の文字が無いことが分かります。

これは例で見せただけであって、この状態ではNGです。
今回の手順を行う上では、必ず「管理者権限」で起動してください。
「管理者権限」で起動した状態の画面を再掲します。

画像16

これで、このステップでやるべきことは終わりました。
次のステップに進みます。


STEP2. 文字入力プログラムのIDを調べる

先ほどのツイートでは、

「tasklist /fi "imagename eq ctfmon.exe"」と入力して
ctfmon.exeのpidを調べる

という表現をしていました。
これでは全然分からない、という方も多いと思います。
これをざっくり言うと、「文字入力プログラムのIDを調べる」になります。

「文字入力プログラム」もよく分からないかもしれませんが、これに関してはそういう何かがあるんだと思ってください。
「文字入力プログラム」に異常な点があるから、言語バーが「あ」の状態でも「にほんご」ではなく「nihongo」になってしまうのです。

これから、何か凄いことをしそうな気がしてくるかもしれません。
しかし、やることは単純です。

tasklist /fi "imagename eq ctfmon.exe"

この文字列を、コマンドプロンプトに入力するだけです。
もちろん手で打ってもいいですが、お手数ですし間違えたら怖いです。
そこで、コピペ(コピー&ペースト)を推奨します。

コピペの方法は知ってるよ、という方も多いかもしれません。
ですが、知らない方のために「◆コピペの方法」にて説明をします。
コピペは自分でできる、という方は「◆文字列"tasklist"の実行」までお進みください。


◆コピペの方法

コピペの方法を、

・範囲の選択
・コピー
・ペースト

に分けて説明していきます。

◇範囲の選択

画像19

まず、コピーしたい範囲を選びます。

選択範囲の先頭で左クリックをしたまま、ボタンを離さずに選択範囲の最後まで行きます。
選択範囲の最後まで行ったら、ボタンを離しします。
これで、選択範囲が青くハイライトされた状態になるはずです。

この一連の動作を「ドラッグ」といいます。
この後にコピーをしますので、青くハイライトされた状態のまま待っていてください。

キーボードだけで範囲を選択したい、という方は下記の方法でも可能です。

1. カーソルを選択範囲の先頭まで移動
2. [Shift]キーを押しながら矢印キー([←]や[→])で操作範囲を操作
3. 範囲選択が終了したら、[Shift]キーを離す


◇コピー

画像20

範囲選択がされている状態で右クリックをすると、この画面になります。
現れた項目の「コピー」を押すことでコピーできます。

キーボードの場合は、[Ctrl]キーを押しながら[C]のキーを押します。
このとき、右クリックをする必要はありません。


◇ペースト

画像21

コピーした文字列を、コマンドプロンプトに打ち込んでいきます。
コマンドプロンプト上で右クリックをして、「貼り付け(P)」を選びます。

同様に、キーボードなら[Ctrl]キーを押しながら[V]のキーを押下、右クリックは不要です。


◆文字列"tasklist"の実行

画像22

これで、コマンドプロンプトに文字列を入力できました。
このステップの目的は「文字入力プログラムのIDを調べる」でした。

tasklist /fi "imagename eq ctfmon.exe"

この文字列が、「文字入力プログラムのIDを調べる」ためのものです。
この状態で[Enter]キーを押すと、IDが分かります。

画像23

情報が表示されました。
やるべきことは、「PID」の項目にある番号を確認することです。
この時、「イメージ名」が「cftmon.exe」であることも確認します。

画像32

イメージ名は「ctfmon.exe」に間違いありません。
「文字入力プログラムのID」は、今回の場合であれば「11316」です。

※注意

「文字入力プログラムのID」は、環境やタイミングによって異なります。

皆さんのパソコンでは
11316がctfmon.exeではなく全く別のプログラムのIDとなっている可能性が高いです。
決して、上記の説明を鵜呑みにして11316の数字を打たないでください。
必ず、ご自分でIDをお調べの上、この後の手順をお試しください。

この注意を無視した結果によってPCが正常に動作しなくなった、等の責任は負いかねます。

「文字入力プログラムのID」を覚えた上で、次のステップに進みます。

とは言え、ここまで「指示されたよく分からない文字列を打ってみた」感じです。
何をしているか分からないから不安だ、という方も居るでしょう。

そこで、これまで実行した内容を「◆文字列"tasklist"の補足」にて、簡単に説明させていただこうと思います。
「特に不安にならない」という方は、次のステップにお進みください。


◆文字列"tasklist"の補足

本当にざっくりとした説明をしていきます。

PCというのは、1つの会社のようなものです。
1つの会社という組織の中で、営業・技術・経理など色々な方がそれぞれの役割を持って仕事をしています。

これは、学校に例えても同じです。
学級委員・図書委員・保健委員など、色々の生徒がそれぞれの役割を持っていました。
委員会でなくともクラスやクラブ活動など、何かしら所属するものや役割があったはずです。

会社や学校では、沢山のがそれぞれの役割を持っていました。
PCでは、沢山のプログラムがそれぞれの役割を持っています。

「マウス操作プログラム」、「ログイン情報チェックプログラム」など様々です。
※これらの名前も勝手につけた名前であり、実際の名前ではありません。
そして、今回扱う「文字入力プログラム」の名前が「ctfmon.exe」です。

会社や学校には、社員や生徒の名簿があります。
PCにも、プログラムの名簿があります。

今回実行した「tasklist」の文字列は「プログラムの名簿を見せてください」というお願いをするものです。
ただ、全員分の名簿を見せられても数が多くて困ってしまいます…

下記の画面は、名簿のほんの一部です。
ほんの一部でもこれだけ多いのであれば、骨が折れます。

画像33

今回知りたいのは、「ctfmon.exe」の情報だけです。
それなら、「名簿の中からctfmon.exeの部分だけ見せてください」とお願いしたいところです。
このお願いをする文字列が「tasklist /fi "imagename eq ctfmon.exe"」です。

「tasklist」 : 名簿の開示
「/fi」 : 絞り込み
「"imagename eq ctfmon.exe"」 : 「名前がctfmon.exeである」という条件

を表します。
なので、「tasklist /fi "imagename eq ctfmon.exe"」が「名簿の中からctfmon.exeの部分だけ見せてください」というお願いになります。

ここまでは「名簿見せて」なので、間違えても大丈夫です。
しかし、次のステップでは社員の懲戒免職や生徒の退学処分に相当する行為をします。
優秀な社員・生徒を間違えて処罰する、ということがあってはいけません。
打ち間違いには十分注意して、次のステップを実行してください。


STEP3. 文字入力プログラムを停止する

先ほどのツイートでは、

「taskkill /pid [2.で調べたpid]」と入力

という表現をしていました。
これは、プログラムを停止させるコマンドです。

やることは単純で、

taskkill /pid XXX

この文字列を、コマンドプロンプトに入力するだけです。
XXXは、皆さんがご自分のPCで調べた「文字入力プログラムのID」です。

先ほどの例では11316でしたが、皆さんは違っている可能性が高いです。
必ず、ご自分の環境で確かめたIDを入力してください。
再度の注意になりますが、この注意を無視した結果によってPCが正常に動作しなくなった、等の責任は負いかねます。


それでは、STEP2の同じようにやっていきます。

「文字列をコピペする」
「コピペした文字列を[Enter]キーで実行する」

大まかな流れは、先程と同じです。
しかし、ただコピペするだけではIDがXXXになってしまいます。
「打ち間違いに注意しろと言っているのに、肝心なIDは手打ちなのか?」と思ってしまいますね。

そこで、コマンドプロンプト上で文字列をコピーする方法をお伝えします。
まず、「taskkill /pid 」までの部分は先にコピーしておきます。
(下記の画面は別日に起動したものなので、IDの値が異なっています。)

画像34

コマンドプロンプト上で右クリックをすると、メニューが現れます。
メニューの一番上「マーク(K)」を左クリックしてください。

画像35

そうすると、コマンドプロンプトの画面左上の表示が変わります。
これまで無かった「範囲指定」という言葉が追加されます。
この状態なら、コマンドプロンプト上の文字をコピーできる状態です。

画像36

先ほどの状態で、左クリックのボタンを押しながら範囲指定(ドラッグ)をします。
選択範囲は何度間違えても大丈夫です。
PIDの項目に書いてある数字全体が入るように、範囲選択をします。
ちなみに、範囲選択を始めると、左上の文字は「範囲指定」から「選択」に変わります。

「4284」がIDにも関わらず、範囲選択のミスで「284」となってしまったら大変です。
範囲選択は慎重に行うようにしてください。

範囲選択が終わったら、右クリックをしてください。

画像38

画面左上からは「範囲指定」や「選択」の文字が消えました。
一見、何も起こっていないように見えますが大丈夫です。

この状態でIDはコピーされていますので、あらかじめ打っておいた文字列の後ろにペーストします。

画像37

これで、文字列を入力することができました。
IDの番号に間違いがないことを再度確認し、[Enter]キーで実行します。


ここで、「管理者権限」が必要な理由が分かります。
一般の権限でこの文字列を実行しようとした画面が、下記の通りです。
※ユーザ名の部分は加工で隠しています。

画像25

このように、拒否されてしまいます。
もしこのような画面が出た方は、最初から手順をやり直して「管理者権限」でコマンドプロンプトを起動してください。

管理者権限で実行した場合は、下記の通りです。

画像26

管理者権限でのみ、文字列"taskkill"の実行が許可されています。

恐らく、この時点で問題は解決してるはずです。
日本語が入力できるようになってるか、試しに打ってみてください。

問題も解決したことですし、「これで終わり!」といきたいところです。
しかし、一応ですが次のステップもお試しください。


STEP4. 文字入力プログラムを起動する

画像27

「ctfmon.exe」と入力・実行します。
これにより、「文字入力プログラム」が再び起動します。

実際にはSTEP3(taskkill)をした瞬間に起動していると思いますが、一応「ctfmon.exe」の実行まですることをおススメします。


補足

画像28

一連の操作をした後に「文字入力プログラムのID」を調べると、PIDが再び変化していることが分かります。
また、これらは別の日に実行した画面です。

画像29

画像30

全て「文字入力プログラムのID(PID)」の値が異なっています。
大事なことなので3回目になりますが、STEP3(taskkill)を実行する際は必ずご自分の環境で確かめたIDを入力してください。
この注意を無視した結果によってPCが正常に動作しなくなった、等の責任は負いかねます。

また、この記事を読みながらですと、IDの確認から停止まで時間がかかると思います。
「文字入力プログラムのID」が数秒・数分単位で変わることは滅多に無く、そこまで心配する必要はありません。

それでも心配、という方はSTEP3(taskkill)をする前にもう一度STEP2(tasklist)をすると良いでしょう。
下記のようにSTEP2でPIDの確認を複数回行っても、問題ありません。

画像31


まとめ

「突然日本語が入力できなくなる問題」の解決法を紹介しました。
また、解決法を示す下記の手順を行う方法を、実際の画面も交えながら説明しました。

【日本語入力ができなくなったときの解決法】

1. 管理者権限でコマンドプロンプトを起動
2. 「tasklist /fi "imagename eq ctfmon.exe"」と入力してctfmon.exeのpidを調べる
3. 「taskkill /pid [2.で調べたpid]」と入力
4. 「ctfmon.exe」と入力

この解決法は、@_masa_u さんがまとめてくださったものです。
解決法の考案は自分(@cosine_travel)の功績ではないことを、再度断っておきます。


冒頭で、「極論を言えばPC自体を再起動すればいい」とお伝えしました。
これは、PC自体を再起動することで「ctfmon.exe」も再起動されたから解決した、と解釈できます。

PCの再起動には時間がかかりますが、今回ご紹介した手順なら慣れれば1分もかかりません。
「PIDを間違えてtaskkillしてしまった」などのリスクはあるものの、コピペをすれば問題ないでしょう。

「突然日本語が入力できなくなる問題」が解決できたのなら、幸いです。


以上になります。
ここまで読んでいただき、ありがとうございました!

勝手に鉄道検定やコラム、エッセイなどが面白いと感じていただけた方は、サポートしていただけると大変嬉しいです! サポートいただいたお金は、旅行や書籍購入のための資金とさせていただきます。