Gerd AltmannによるPixabayからの画像
「Excel Tips」ではExcelを使用していて気付いたことを取り上げて行きます。Excel 2016バージョン1912を使用しています。
今回はセルに直接日本語入力をする時に最初のキー入力が変換対象として認識されない事象の発生過程とその対応策について記載いたします。
発生した症状について
とあるブックで気が付いたことをシートを追加しながらまとめていました。シート数は数えると10個以上になっています。
中には情報量が多いシートで行数が3000行を超えるものがあり、そのシートではフィルターを設定して検索条件を入力する事で情報を絞りながら使っていました。
なお記憶は定かではないのですが一回そのブックを使っている時にExcelがフリーズした事があったかもしれません。
そのブックを三週間ぐらい開きっぱなしで使用していたのですが、ふと気が付くとタイトルに書きました「セルへの日本語入力で、最初のキータッチが日本語変換の対象になっていない」症状が発生している事に気が付きました。
この症状はセルを選んで日本語を直接入力する場合に発生し、セルを選んで数式バーにカーソルを移動して日本語入力をする分には問題は起こりませんでした。
なお認識されない1文字目を削除して再度入力すれば認識されるので、しばらくそれで使っていましたが流石に耐えきれなくなってGoogle検索することにしました。
「excel 日本語入力 1文字目」でGoogle検索
検索をするとExcel2007以降で同じような症状が発生している人がいらっしゃることが解りました。
今回の事情はExcel2016でPowerQueryは使用していないので、スタートアッププログラムやブラウザのアドオンが悪さしている可能性はあります。
ただしよくよく確認すると、新規作成したExcelブックでは発生しない事から上記ブック固有の問題のようです。
従いましてスタートアップやアドオンが原因ではないと判断いたしました。
すべての検索結果を見たわけではありませんがブック固有の問題で同じような事象は上がっていないようでしたので、できる範囲で原因を調べる事にしました。
原因を調べる
まずは特定のシートに問題があるかもしれないので、ブックをバックアップして一つずつシートを削除して解決するか?確認してみましたが、既存のすべてのシートを削除しても解消せず、当該ブックで新規追加シートだけにしても同様な動きとなるようなので、「隠しシート」ができてしまったのではないか?と思い確認しましたが「隠しシート」は存在していませんでした。
つぎにSheet1だけにした時に正常なブックとファイルサイズに違いがあるのか?を調べました。
すると問題の起こっているブックはサイズ14KBであるのに対して、新規作成のブックは7KBで2倍に膨れている事が解りました。
そこで上図の「問題あり.xlsx」と「新規」ファイルを7ZIPやLhalpusなどの圧縮解凍ソフトを使って解凍してみると下図のようになりました。
問題がある方のファイルには「customXml」というフォルダーが作られている事が解ります。
ちなみにcustomXmlフォルダーの中身は下左図のようになっており、その中のitem1.xmlの中身は下右図のようになります。
item1.xmlの文字化けしているように見えるところはバイナリーデータがBASE64エンコードされているようなのですが、ツールでデコードしてみるとすべて綺麗に変換されないのですが英数記号の部分は判読できるので調べて見るとやはりフィルターを設定したシート名が記述されていることが解りました。
では「なぜcustomXmlフォルダーができてしまったのか?」ですが、一般的なフィルター検索の仕方であればcustomXmlフォルダーはできなため、考えられる事としては「フィルター検索の過程で一時的にcustomXmlフォルダーが作られたものが、Excelがフリーズしたために一時的なフォルダーが削除されずに残ってしまった」というものですが、本当にそうなのか?真偽は解りません。
また一般的にカスタムXMLがあると事象が発生するのか?それともこのカスタムXMLだから発生するのか?につきましても調べ切れていません。
この点につきましては確認が取れ次第内容を更新して参ります。
対処方法について
実はExcel2016には不要なカスタムXMLデータを削除する機能が備わっています。
メニュー「ファイル」→「情報」→「ブックの検査」→「ドキュメントの検査」
ドキュメントの検査で下にスクロールして行くと「カスタムXMLデータ」の項目があり、このチェックボックスにチェックをいれて一番下のところにある「検査」ボタンをクリックします。
検査が終わると、カスタムXMLデータの項目の右に「すべて削除」のボタンが表示されますので、それをクリックした後で、一番したの「閉じる」ボタンをクリックした後にブックを保存して再度開き直しをすれば、処置は完了します。
開き直して日本語入力をすると最初のキータッチが正しく認識されている事が確認できました。
最後に
今回のケースでは「カスタムXMLデータ」を削除することで問題を解消することができましたが、今回発生した事象は色々な要因により発生するため、一筋縄では解決に至らない可能性があります。
まずはブック固有の問題なのか?、Excel全般の問題なのか?を切り分けた上で解決策を探るのが良い認識です。
最後までご一読いただき誠にありがとうございました。