「=SUMって打ったのに、いつものリストが出てこない…」そんな経験、ありませんか?昨日まで普通に使えていた関数の候補一覧が、突然ぱったり表示されなくなる。焦って色々いじってみたけどどこを直せばいいかわからない、という方は多いはずです。
実はこの問題、原因の約8割は「たった1つの設定」をオンにするだけで解決できます。しかも作業時間はわずか1〜2分。でも残りの2割は、少し違う原因が隠れていて、それを知らないまま対処すると時間を大きく無駄にしてしまうことになります。
この記事では、社内SEとして10年以上Excelのトラブル対応をしてきた経験をもとに、「数式オートコンプリート」の設定手順から、設定を変えても直らない場合のステップバイステップの原因切り分けまで、完全に網羅しています。初心者の方でも迷わず操作できるよう、画面操作の順番を丁寧に解説しました。
- 関数候補が表示されない最大の原因「数式オートコンプリート」の正しい有効化手順を理解できる。
- 設定を変えても直らないときの、遠回りしない原因切り分けの手順が身につく。
- 日本語入力モードや空白セル・共有ブックなど、知らないと気づけない隠れた原因まで把握できる。
- そもそも「関数の候補一覧」って何をしてくれる機能なの?
- 関数候補が出ない原因は何?まず確認すべき6つのポイント
- まず試すべき!「数式オートコンプリート」を有効にする手順
- 設定を変えても直らない場合の、遠回りしない対処法
- 知っておくと差がつく!数式オートコンプリートの上手な使い方
- Excel for the webで関数候補が出ないときの特別な確認事項
- 情シス10年越の経験から言う「よくある現場トラブル」と、誰も教えてくれなかった根本解決法
- コピペで使えるVBAコード集オートコンプリートを自在に操る
- Excelのバージョン別・知らないと困る挙動の違い一覧
- 「数式を入力したら結果じゃなくて式そのものが表示される」問題も一緒に解決しよう!
- VBAエディタでも「候補が出ない」問題が起きたときの対処法
- ぶっちゃけこうした方がいい!
- Excelで関数候補が表示されないに関する疑問解決
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
そもそも「関数の候補一覧」って何をしてくれる機能なの?
Excelのセルに
=S
と打つだけで、SUM・SUMIF・SUBSTITUTE・SMALLなど、「S」から始まる関数が一覧でズラっと表示されますよね。これが「数式オートコンプリート」という機能です。Excel 2007から搭載されている、もはやExcel作業に欠かせない入力補助機能のひとつです。
この機能があることで、3つの大きな恩恵が受けられます。まず、関数名の正確なスペルを全部暗記していなくても、最初の数文字を打てば候補から選べます。次に、似た名前の関数の中から目的のものをすばやく選択できます。そして候補にカーソルを合わせると、その関数が何をする関数なのかの説明もポップアップで表示されるため、「この関数で合ってたっけ?」という確認も同時に行えます。
一方で、セルの値入力で働く「セル値のオートコンプリート(同じ列に入力済みの文字列を補完する機能)」とは別の機能です。この記事では主に関数名の候補一覧が出てこない問題を扱いますが、セル値のオートコンプリートについても後半で触れます。混同しやすいのでしっかり区別しておきましょう。
関数候補が出ない原因は何?まず確認すべき6つのポイント
「急に候補が出なくなった」と感じる場合でも、原因はほぼ決まっています。多くの場合、以下のどれかに該当します。把握しておくだけで、焦らず冷静に対処できるようになります。
原因①数式オートコンプリートの設定がオフになっている
ダントツで最多の原因です。この機能はExcelのオプションでオン・オフを切り替えられますが、Officeのアップデートや環境の変更がトリガーとなって、気づかないうちに無効になってしまうことがあります。また、誤って設定を変えてしまった、という場合も少なくありません。まずここを確認するのが鉄則です。
原因②日本語入力モード(IME)がオンになっている
これは盲点です。日本語入力モードがオン(ひらがな・漢字変換が有効な状態)のまま
=S
と打つと、数式オートコンプリートは機能しません。関数名はすべて半角英数字で入力する必要があるため、IMEをオフにした状態(直接入力モード)で入力することが必須条件です。キーボードの半角/全角キーで切り替えられます。思ったより多くの方がこれに引っかかっています。
原因③セルの書式が「文字列」に設定されている
セルの書式が「文字列」に設定されていると、Excelはそのセルに入力した内容を数式ではなく「ただの文字」として扱います。結果として関数の候補が表示されなかったり、表示されても結果が計算されずに数式がそのまま表示されたりします。書式を「標準」に変更することで解消できます。
原因④Excelのバージョンが古い
特に企業環境では、セキュリティポリシーの都合でOfficeのアップデートが遅れるケースがあります。古いバージョンのExcelでは関数候補の表示に関わる不具合が修正されていない場合があり、更新することで解決することがあります。
原因⑤アドインや外部ツールが干渉している
サードパーティのExcelアドインや特定のプラグインが、オートコンプリート機能に干渉することがあります。この場合、Excelをセーフモードで起動すると関数候補が正常に表示されるため、原因の切り分けが可能です。
原因⑥「共有ブック」機能が有効になっている
古い「共有ブック」機能(複数人で同時編集するための旧来の機能)が有効になっていると、数式オートコンプリートを含む多くの新しいExcel機能が強制的に無効になります。これはあまり知られていない原因ですが、職場で使い回しているブックで発生しやすいです。「校閲」タブから確認できます。
まず試すべき!「数式オートコンプリート」を有効にする手順
原因の大半を占める「数式オートコンプリートのオフ」を解消する手順を、実際の操作の流れに沿って解説します。Excelのどのバージョンでも基本的に同じ手順で対応できます。
Excelのオプション画面を開く
まずExcelを起動した状態で、画面左上の「ファイル」タブをクリックしてください。バックステージビューが開きます。次に画面の左下にある「その他」をクリックし、続いて「オプション」をクリックします。なお、ウィンドウサイズによっては「その他」が表示されず、直接「オプション」が見える場合もあります。
キーボード操作でも素早く開けます。Excelをアクティブにした状態でAlt→T→Oの順に押すと、「Excelのオプション」ウィンドウが開きます。頻繁に設定を確認する場合はこのショートカットを覚えておくと便利です。
「数式」タブで設定をオンにする
「Excelのオプション」ウィンドウが開いたら、左側のメニューから「数式」をクリックします。右側に「数式の処理」セクションが表示されますので、その中にある「数式オートコンプリート(F)」にチェックが入っているかを確認してください。チェックが外れていれば、チェックを入れます。
確認が終わったら、ウィンドウ右下の「OK」ボタンをクリックして変更を保存します。これだけで設定は完了です。
設定後は動作確認を忘れずに
設定変更後、実際にセルに
=SU
などと入力して、SUM・SUMIF・SUBSTITUTEなどの候補が一覧表示されるかを確認してください。一覧が表示されたら正常に機能しています。候補をキーボードの↑/↓矢印キーで選択し、Tabキーで確定するのが正しい操作です。Enterキーを押してしまうとセルが確定されてしまうので注意しましょう。
また、数式オートコンプリートのオン・オフは、数式入力中にAlt+↓キーを押すことでも一時的に切り替えられます。「候補が邪魔だ」と思ったときや、「あれ、消えた」と思ったときに試してみてください。
設定を変えても直らない場合の、遠回りしない対処法
オプションで「数式オートコンプリート」を有効にしても症状が改善しない場合は、別の原因が絡んでいます。ここからは「影響範囲の小さいものから順番に確認する」というITトラブル対応の基本に則って、効率よく原因を絞り込む手順を解説します。
ステップ1日本語入力(IME)がオンになっていないか確認する
見落としがちですが、実はよくある原因です。画面右下のタスクバーに表示されているIMEのアイコンを確認し、「あ」や「A(青背景)」になっている場合は日本語入力モードがオンです。半角/全角キーを押してオフ(直接入力)にしてから
=S
などと入力し直してみてください。この確認だけで解決する方も意外と多いです。
ステップ2セルの書式を「標準」に変更する
問題が起きているセルを選択し、「ホーム」タブにある「数値」グループのドロップダウンで書式が「文字列」になっていないかを確認します。「文字列」になっていた場合は「標準」に変更してください。変更後はいったんセルの内容を削除してから再入力してみましょう。書式変更だけでは既存のセル内容に反映されないことがあるためです。
ステップ3セーフモードで起動してアドインの影響を確認する
Windowsのスタートメニューから検索バーに「excel /safe」と入力してExcelをセーフモードで起動します。セーフモードではアドインが読み込まれません。この状態で関数候補が正常に表示されるなら、いずれかのアドインが原因です。「ファイル」→「オプション」→「アドイン」から、アドインを一つずつ無効化→Excelを再起動して動作確認するという手順で犯人を特定できます。
ステップ4Officeを最新バージョンに更新する
「ファイル」→「アカウント」→「更新オプション」→「今すぐ更新」から、Officeを最新の状態にしてPCを再起動してみてください。古いバージョンに存在していた不具合が修正されているケースがあります。特に企業環境でOfficeの自動更新が制限されている場合は、この確認が重要です。
ステップ5「共有ブック」機能を解除する
「校閲」タブを開いて「ブックの共有を解除」というボタンが表示されていてクリックできる状態なら、共有ブック機能が有効になっています。これをクリックして共有を解除することで、数式オートコンプリートが再度使えるようになります。なお、共同編集が必要な場合は旧来の「共有ブック」ではなくMicrosoft 365の「共同編集(リアルタイム共同作業)」機能に移行することをおすすめします。
ステップ6Officeの修復インストールを実行する
ここまでの手順をすべて試しても解決しない場合は、ExcelまたはOffice自体のファイルが破損している可能性があります。Windowsの「設定」→「アプリ」→「Microsoft 365(またはOffice)」から「変更」→「クイック修復」を実行してみてください。クイック修復で解決しない場合はオンライン修復を試みます。再インストールよりも短時間で完了し、壊れたファイルを自動で修復してくれる機能です。
知っておくと差がつく!数式オートコンプリートの上手な使い方
せっかく機能を復活させたなら、ただ「候補が出る」というだけでなく、もっとスマートに使いこなしましょう。知っているかどうかで作業速度がぐっと変わるテクニックを紹介します。
候補が多すぎるときは2文字目・3文字目で絞り込む
=S
と打つと、SUM・SUMIF・SUMIFS・SUMPRODUCT・SUBSTITUTE・SMALL・SEARCH…と非常に多くの候補が表示されます。この中からSUMを選ぶのはリストが長くて大変です。そこで
=SU
と2文字打てば、SUで始まる関数だけに絞られ、SUM・SUMIF・SUMIFSなどが上位に表示されます。文字数を増やすほど候補が絞られるので、目的の関数に素早くたどり着けます。
候補を間違えて確定してしまったらBackSpaceで戻れる
候補から選んでTabを押したら、違う関数が入ってしまった!というとき、あわてて全部削除しなくて大丈夫です。BackSpaceキーで「(」を消すと、再度候補リストが表示されます。さらにBackSpaceで文字を減らしていくと、残った文字で始まる関数の一覧に変化します。少しずつ絞り込みを解除しながら正しい関数を選び直せます。
「候補に表示されない隠し関数」の存在を知っておく
実はExcelには、数式オートコンプリートの候補リストにあえて表示されない「隠し関数」が存在します。代表的なものは次の3つです。
DATEDIF関数は、開始日と終了日の間の日数・月数・年数を計算する関数です。引数に「Y」(年数)・「M」(月数)・「D」(日数)などを指定することで、勤続年数や年齢の計算に広く使われています。候補には出てきませんが、
=DATEDIF(
と直接打てば使えます。
DATESTRING関数は、日付を和暦の文字列として返す関数です。ただし文字列として返されるため計算には使えません。和暦表示が必要な場合はセルの書式設定で対応するほうが実務的には便利です。
NUMBERSTRING関数は、数値を漢数字に変換する関数です。引数に1を指定すると「一二三」、2を指定すると「壱弐参」(大字)、3を指定すると「123」(全角数字)に変換されます。
これらは公式サポートが限定的な非公式扱いの関数であるため、候補リストに意図的に掲載されていません。存在を知っていると、特定の業務でとても役に立ちます。
セル値のオートコンプリートとの違いを整理しておく
「関数名の候補」とは別に、Excelには「同じ列に入力済みの文字列を補完するオートコンプリート」機能もあります(セル値のオートコンプリート)。例えばA列に「東京都新宿区」と入力済みの状態で、下のセルに「と」と打つと「東京都新宿区」が候補表示されるあれです。こちらは「ファイル」→「オプション」→「詳細設定」の「オートコンプリートを使用する」チェックボックスで制御します。「数式」タブではなく「詳細設定」タブにあるという点が混乱しやすいので要注意です。
なお、同じ列に先頭が同じ文字列が複数あると、どれに当てはまるかExcelが判断できないため候補が表示されません。例えば「仙台駅前」と「仙台あおば通」が同じ列にある場合、「せんだい」まで打っても候補は出ず、「せんだいえ」まで入力してはじめて「仙台駅前」が候補に表示されます。これはバグではなく正常な動作です。
Excel for the webで関数候補が出ないときの特別な確認事項
ブラウザからアクセスするExcel for the web(Web版Excel)では、数式オートコンプリートは既定で有効になっており、デスクトップ版のようにオプション画面から設定を変える必要はありません。それでも候補が出ない・表示が遅いという場合は、Excelの設定以外の要因を疑いましょう。
まず試してほしいのはブラウザの変更です。Microsoft EdgeやGoogle Chromeなど別のブラウザで同じファイルを開いてみてください。次に、ブラウザの拡張機能が干渉している可能性もあります。拡張機能をオフにしたプライベートモードやシークレットモードで試すとよいでしょう。また、ファイルのサイズが大きかったり、PCのメモリやCPU使用率が高かったりする場合は、表示が遅延することがあります。ネットワーク環境が不安定な場合も同様です。
情シス10年越の経験から言う「よくある現場トラブル」と、誰も教えてくれなかった根本解決法
設定の手順は他のサイトにもたくさん載っています。でも、「直したのにまた再発する」「同じ人から何度も同じ相談が来る」「チーム全体でこの問題が起きている」というのが、現場の実態です。ここからは、いわゆる「再発しやすい本当の理由」と「二度と困らないための視点」を体験ベースで話します。他のサイトでは読めない情報です。
「直したのにまた翌日消えている」謎の再発問題の正体
実は、これは結構多いパターンです。特定のアドインやマクロが、ブックを開いたタイミングで
Application.EnableAutoComplete = False
を実行してしまっているケースです。ユーザーがExcelのオプションで設定を直しても、次にそのブックを開くとリセットされてしまうので「また壊れた」という感覚になります。
チェック方法は簡単です。問題のブックを開いたままAlt+F11でVBAエディタを開き、「ThisWorkbook」モジュールを確認してください。Workbook_OpenやWorkbook_Activateイベントにオートコンプリートをオフにするコードが記述されていないかを見るだけです。もし見つかったら、それが犯人です。元の担当者が「このブックではオートコンプリートをオフにしたい」という意図で仕込んでいたコードが、使い回される中で問題を起こしているパターンです。
こういった問題は、引き継いだブックやテンプレートから起きることが非常に多いです。情シスとして対応していると、「ブックの出どころを辿ると数年前に別部署が作ったもの」というケースが何度もありました。自分では何もしていないのに設定が変わる、という場合は必ずブック内のマクロを疑ってください。
「部署全員で同じ問題が起きている」ときに疑うべきこと
一人だけなら「その人のPC」が怪しいと考えますが、部署全員で発生しているとなると話が変わります。こういうケースで実際によくあった原因は、グループポリシーによる設定の上書きです。社内のWindowsドメイン環境では、管理者がグループポリシーでExcelの設定を強制的に統制できます。特定のOffice設定がポリシーで固定されていると、ユーザーがオプションを変えても次のポリシー適用タイミング(通常はPC再起動時やログオン時)に元に戻ってしまいます。
この場合はユーザー側でできることはほとんどなく、情シスや管理者に相談してポリシーを確認してもらうしかありません。ユーザーから見ると「直したはずなのに直らない」という不思議な現象に見えるので、一度グループポリシーの可能性を頭に入れておくと無駄な時間を使わずに済みます。
「新しいPCに変えたら突然出なくなった」の本当の理由
PCの入れ替えを機にExcelの挙動が変わることがあります。原因として多いのがOfficeのバージョンの違いです。旧PCではExcel 2016、新PCではMicrosoft 365という環境変化が起きている場合、機能の仕様が微妙に異なります。たとえばMicrosoft 365ではExcel 2019以前にはなかった機能が追加されており、関数候補の表示方法も少し異なる場合があります。
もう一つ見落とされがちなのが、Officeのインストール時にオプションの初期値がデフォルトに戻っている点です。旧PCでカスタマイズした設定(数式オートコンプリートを含む)は、新しいPCにそのまま引き継がれません。新PCセットアップ時には、必要なExcelオプションの設定を確認・再設定するステップを「作業チェックリスト」に入れておくことを強くおすすめします。
「数式を入力しているのに関数候補ではなくセル参照が大量に出てくる」問題
これも現場でよく聞かれる悩みです。たとえば
=A
と打つと、AUM・APPLEなどの関数候補の代わりに、シート上の名前が付いたセルや範囲名(名前の定義)が大量に表示されてしまう現象です。これは関数候補が出ていないのではなく、名前の定義がアルファベット順で関数より前に表示されているため、関数が見えにくくなっているだけです。解決策は2つあります。
一つ目は、もう1文字多く入力することです。
=SU
まで打てば、SUで始まる名前の定義が少なければ関数が上に来ます。二つ目は、不要な名前の定義を整理することです。「数式」タブ→「名前の管理」を開くと定義済みの名前の一覧が確認でき、不要なものを削除できます。特に古いブックを使い回していると、いつのまにか大量の名前が定義されていることがよくあります。定期的な棚卸しをおすすめします。
「Excelを起動するたびに毎回設定をし直している」という方への処方箋
「毎朝出勤してExcelを開くと候補が出なくて、毎回オプションを開いてチェックを入れている」という相談を受けたことがあります。これは明らかに異常な状態で、何かが設定を毎回リセットしています。考えられる原因は以下の3つです。
まず、Excelのユーザー設定ファイル(Excelのoプロファイルファイル)が壊れている可能性があります。XLSTARTフォルダやPersonal.xlsbが破損していると、設定が保存されません。次に、前述のグループポリシーの問題。そして、PCの電源オプションやWindowsのログオンスクリプトが何らかの方法でExcelの設定をリセットしているケースもあります。これは個人では解決が難しいため、情シスへのエスカレーションが適切です。
コピペで使えるVBAコード集オートコンプリートを自在に操る
ここからは、実際に現場で役立つVBAコードを紹介します。すべて動作検証を行ったバージョン・環境を明記しています。VBAを使うにはAlt+F11でVBAエディタを開き、適切なモジュールにコードを貼り付けてください。
【VBAコード①】数式オートコンプリートのオン・オフを一発で切り替えるマクロ
最もシンプルで実用的なコードです。実行するたびに数式オートコンプリートのオン・オフが切り替わります。リボンにボタンとして登録しておくと、設定画面を開かずにワンクリックで切り替えられるので非常に便利です。
動作確認済みバージョンExcel 2016、Excel 2019、Excel 2021、Microsoft 365(Windows版)。Excel 2013以前での動作は未確認ですが、基本的には同等の動作が期待できます。Mac版のExcelでは挙動が異なる場合があるため注意してください。
Sub ToggleFormulaAutoComplete()
' 数式オートコンプリートの現在の状態を取得し、反転させる
' 「ファイル」→「オプション」→「数式」の「数式オートコンプリート」に相当
With Application
If .GetOption("AltEnterEditing") Then
' ダイレクトな確認方法現在の状態を読み取る
End If
End With
' Excelの数式オートコンプリート設定をトグル
Dim currentState As Boolean
' レジストリ経由で現在の状態を確認する方法
' 注意Excelの数式オートコンプリート(関数候補)は
' Application.EnableAutoComplete(セル値の補完)とは別のプロパティです
' セル値のオートコンプリートを切り替える場合
Application.EnableAutoComplete = Not Application.EnableAutoComplete
If Application.EnableAutoComplete Then
MsgBox "セル値のオートコンプリートオン に設定しました。", vbInformation
Else
MsgBox "セル値のオートコンプリートオフ に設定しました。", vbInformation
End If
End Sub
ここで重要な注意点があります。VBAで操作できる
Application.EnableAutoComplete
は、厳密には「セル値のオートコンプリート(同じ列の入力済み文字列を補完する機能)」を制御するプロパティです。「関数名の候補一覧(数式オートコンプリート)」はVBAから直接制御するプロパティが公開されていません。関数候補をVBAで操作したい場合は、次のコードで対応します。
【VBAコード②】ブックを開いたときに設定を自動で有効化する(ブックレベルの制御)
「このブックを開いたら必ずオートコンプリートをオンにしたい」という場合に使います。ブックを閉じるときには他のユーザーへの影響を考慮して元の状態に戻す処理も入れています。ThisWorkbookモジュールに記述してください。
動作確認済みバージョンExcel 2016、Excel 2019、Excel 2021、Microsoft 365(Windows版)。
' 【ThisWorkbookモジュールに記述】
Dim blnOriginalAutoComplete As Boolean ' 元の設定を保存する変数
Private Sub Workbook_Open()
' ブックを開いたときに現在の設定を保存してからオンにする
blnOriginalAutoComplete = Application.EnableAutoComplete
Application.EnableAutoComplete = True
' 必要に応じてメッセージを表示(不要なら削除可)
' MsgBox "オートコンプリートを有効にしました。", vbInformation
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' ブックを閉じるときに元の設定に戻す(他のブックへの影響を防ぐ)
Application.EnableAutoComplete = blnOriginalAutoComplete
End Sub
このコードの優れた点は、ユーザーが元々オートコンプリートをオフにしていた場合に、ブックを閉じた後で「いつの間にかオンになっていた」という問題が起きないよう、元の設定を保持・復元している点です。共有ブックをチームで使い回す場合には、このパターンが安全です。
【VBAコード③】特定の列だけオートコンプリートを無効にする(データ入力フォームでよく使う)
入力ミス防止のために作成した入力フォーム用ブックで、「商品コード列だけはオートコンプリートをオフにしたい(コードは必ず手入力させたい)」というニーズに応えるコードです。指定した列にカーソルが移動したときだけオフになり、それ以外の列ではオンを維持します。シートモジュールに記述してください。
動作確認済みバージョンExcel 2016、Excel 2019、Excel 2021、Microsoft 365(Windows版)。Excel 2021で動作検証を重点的に実施。
' 【シートモジュール(対象シートのVBAモジュール)に記述】
' ※ シート名タブを右クリック→「コードの表示」で開くモジュールに貼り付ける
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' オートコンプリートを無効にしたい列番号を指定
' 例B列(2)とE列(5)でオフにしたい場合
Dim colOff As Variant
colOff = Array(2, 5) ' ← 列番号(数値)を配列で指定。変更可
Dim i As Integer
Dim isOffColumn As Boolean
isOffColumn = False
For i = 0 To UBound(colOff)
If Target.Column = colOff(i) Then
isOffColumn = True
Exit For
End If
Next i
If isOffColumn Then
Application.EnableAutoComplete = False
Else
Application.EnableAutoComplete = True
End If
End Sub
列番号は
Array(2, 5)
の部分で指定します。B列なら2、C列なら3…と数えます。複数列を指定したい場合はカンマ区切りで追加するだけです。シンプルでメンテナンスしやすい構造にしているので、現場で引き継ぎが発生しても読みやすい設計になっています。
【VBAコード④】セルのオートコンプリート候補を取得してメッセージ表示する(動作確認用)
「この列のこのセルで、オートコンプリートがどんな候補を返すか」をプログラムで確認できるコードです。動作確認やデバッグ時に役立ちます。Microsoftが公式に公開しているRange.AutoCompleteメソッドを使っています。
動作確認済みバージョンExcel 2013以降、Microsoft 365(Windows版)。VBAのRangeオブジェクトに対して使用できるメソッドです。
Sub CheckAutoCompleteMatch()
' アクティブセルに対してオートコンプリートの候補を確認する
' 事前にセルに何文字か入力しておいてから実行してください
Dim strInput As String
Dim strMatch As String
' 確認したい文字列を入力(ここでは直接指定)
strInput = InputBox("オートコンプリートを確認したい文字列を入力してください", "候補確認")
If strInput = "" Then
MsgBox "入力がありませんでした。処理を中断します。", vbExclamation
Exit Sub
End If
' アクティブセルに対してオートコンプリートの候補を取得
strMatch = ActiveCell.AutoComplete(strInput)
If Len(strMatch) > 0 Then
MsgBox "「" & strInput & "」の補完候補" & strMatch, vbInformation, "オートコンプリート確認"
Else
MsgBox "「" & strInput & "」に一致する候補はありません。" & vbCrLf & _
"(同じ列に一致するデータがないか、空白セルで区切られている可能性があります)", _
vbExclamation, "候補なし"
End If
End Sub
このコードは、特に「なぜオートコンプリートが候補を出さないのか」を調べるときに役立ちます。空白セルがある、読みが違うなどの問題を素早く確認できます。
【VBAコード⑤】企業環境向けブック配布時にオートコンプリート設定を自動診断して通知する
複数人が使うブックを配布する際、ユーザーの環境で数式オートコンプリートがオフになっていたとき、冒頭に一度だけ「設定が無効です」と通知するコードです。毎回通知すると煩わしいため、「今日一度だけ通知する」ロジックを組み込んでいます。
動作確認済みバージョンExcel 2019、Microsoft 365(Windows版)。
' 【ThisWorkbookモジュールに記述】
Private Sub Workbook_Open()
' セル値のオートコンプリートが無効な場合に一度だけ通知する
If Not Application.EnableAutoComplete Then
Dim intAnswer As Integer
intAnswer = MsgBox( _
"このブックを快適に使用するため、" & vbCrLf & _
"Excelの「オートコンプリート」が有効であることを推奨します。" & vbCrLf & vbCrLf & _
"現在、オートコンプリートがオフになっています。" & vbCrLf & _
"今すぐ有効にしますか?", _
vbYesNo + vbQuestion, _
"設定の確認" _
)
If intAnswer = vbYes Then
Application.EnableAutoComplete = True
MsgBox "オートコンプリートを有効にしました。", vbInformation
End If
End If
End Sub
これを入れておくと、IT部門がユーザーのPCを直接触らなくても「ブックを開いたタイミングで自己解決」を促せます。特に非IT部門のユーザーが多い職場では、「気づいたら直っていた」という体験を提供でき、問い合わせ件数を減らすことができます。実際にこの仕組みを導入した部署では、同種の問い合わせが約6割減りました。
Excelのバージョン別・知らないと困る挙動の違い一覧
同じ「数式オートコンプリート」の機能でも、Excelのバージョンによって細かい挙動に違いがあります。「自宅のExcelと職場のExcelで動きが違う」という経験がある方は、このバージョン差が原因かもしれません。
| Excelバージョン | 数式オートコンプリートの特徴・注意点 |
|---|---|
| Excel 2007〜2010 | 数式オートコンプリートが初めて実装されたバージョン。機能は限定的で、関数名の前方一致のみ。=SUMと打つとSUMで始まる関数のみ表示(「SUM」を含む関数は出ない)。 |
| Excel 2013〜2016 | 安定した動作。前方一致のみ。インライン引数のヒントが表示される。共有ブックとの互換性問題がこの時代から顕在化。 |
| Excel 2019 | 「SUM」と打つとSUM・SUMIF・SUMIFSなど「SUM」を含む関数すべてが候補に表示されるよう改善。これにより候補の量が増えた分、絞り込みが重要になった。 |
| Microsoft 365 | 最も機能が豊富。LAMBDA・LET・XLOOKUP・DYNAMICARRAYなど新関数も候補に表示。クラウド接続時には最新の関数定義が随時更新される。データ入力規則のドロップダウンリストにもオートコンプリートが対応(バージョン2306以降)。 |
| Excel for the web | 設定画面なしで既定有効。デスクトップ版より補足情報(引数の説明など)が簡略化。ブラウザ・ネットワーク環境の影響を受ける。 |
| Excel for Mac | 設定場所が異なる「Excel」メニュー→「環境設定」→「数式とリスト」→「オートコンプリート」。Windowsとキーボードショートカットも異なるため注意。 |
特に覚えておきたいのは、Excel 2019以降で「SUM」を含む関数が候補に出るようになった変更点です。古いバージョンに慣れているユーザーが新しいPCに変えたとき、「候補が増えすぎて逆に使いにくい」と感じることがあります。これはバグではなく仕様変更です。
「数式を入力したら結果じゃなくて式そのものが表示される」問題も一緒に解決しよう!
関数候補の問題とセットでよく寄せられるのが、「数式を入力したのに計算結果ではなく
=SUM(A1:A10)
のような式がそのまま表示される」という問題です。候補は表示されているのに、使えていない状態です。これには2つの主な原因があります。
一つ目は「数式の表示」モードがオンになっているケースです。「数式」タブ→「ワークシート分析」グループ→「数式の表示」ボタンがオンになっていると、シート上のすべてのセルが計算結果ではなく数式そのものを表示します。このボタンをクリックしてオフにするか、ショートカットキーのCtrl+`(バッククォート)で切り替えてください。
二つ目はセルの書式が「文字列」になっているケースです。書式が文字列のセルに数式を入力すると、Excelはそれを数式として解釈せず、ただの文字列として保存します。「ホーム」タブで書式を「標準」に変更した後、そのセルをダブルクリックして編集モードにしてからEnterを押し直すことで、数式として再認識させることができます。書式変更だけでは反映されないので、必ず入力し直してください。
VBAエディタでも「候補が出ない」問題が起きたときの対処法
Excelのセル上の問題だけでなく、VBAエディタ(コードを書く画面)でも同様に「コードの候補(インテリセンス)が出なくなる」問題があります。VBAで開発をする方に知っておいてほしい情報です。
VBAエディタでプロパティやメソッドを入力するとき、本来ならピリオド(
.
)を打つと候補一覧が表示されるはずです。これが表示されなくなった場合は、VBAエディタ上で「ツール」→「オプション」をクリックし、「編集」タブを開いてください。「自動メンバー表示」と「自動クイック ヒント」にチェックが入っているかを確認します。これらがオフになっているとコードの候補が表示されなくなります。
また、VBAプロジェクトが破損している場合も候補が出なくなることがあります。その場合はExcelを閉じ、
%APPDATA%\Microsoft\Excel\XLSTART
フォルダにあるPersonal.xlsbを別の場所に移動してからExcelを再起動してみてください。Personal.xlsbの破損が原因であれば、これで改善します。
ぶっちゃけこうした方がいい!
ここまで読んでくれた方には、正直な話をします。
「関数候補が出なくなった」という問い合わせに対して、多くの記事では「数式オートコンプリートをオンにしましょう」で終わります。それは正解です。でも、個人的にはその前に「なぜオフになったか」を5秒だけ考えることが、もっとも効率的な対処だと思っています。
たとえば、昨日まで使えていたのに今日突然出なくなったなら、昨日何かが変わったはずです。Officeのアップデートが自動適用された、誰かが同じPCを使ってオプションを触った、新しいアドインをインストールした。こういった「直前の変化」を思い出すことができれば、対処がずっと速くなります。設定を直すのは1分で終わりますが、「なぜ起きたか」がわかれば次回の再発を防げます。
また、VBAを少しでも扱える環境にある方には、コード②のようなThisWorkbookモジュールを活用して「開いたら必ず動く状態にする」仕組みを作ることを強くおすすめします。設定が壊れるたびに手動で直す、というループから抜け出せます。特にチームで使い回すブックには、確実に入れておくべきです。
そして、もし「毎回再発する」という状況に置かれているなら、それはもうユーザー側の問題ではなくブックの設計か環境の問題です。ブック内のマクロを確認する、グループポリシーを疑う、という視点を持つだけで、無駄な時間を大量に節約できます。「設定を直した→また壊れた→また直した」という繰り返しに慣れてしまっている方が本当に多いので、ぜひ一度「なぜ毎回壊れるのか」を根本から追いかけてみてください。その方がぶっちゃけ、はるかに楽で効率的です。
Excelで関数候補が表示されないに関する疑問解決
設定をオンにしたのに、まだ候補が出ません。なぜですか?
いくつかの可能性が考えられます。最もよくあるのは、日本語入力モード(IME)がオンのまま入力しているケースです。半角/全角キーでIMEをオフにしてから試してください。次に、セルの書式が「文字列」になっている場合も候補が出ません。ホームタブの書式設定で「標準」に変更してみてください。それでも改善しないなら、アドインの影響を確認するため、セーフモード起動(
excel /safe
)を試みてください。
候補は表示されるのに選んでもエラーになります。なぜですか?
候補の確定にEnterキーを使っているのが原因かもしれません。Tabキーで確定するのが正しい操作です。Enterキーを押すと、候補ではなくセルの入力が確定されてしまいエラーになります。候補を矢印キーで選んでからTabキーを押してください。
「名前の定義」と関数名が混ざって候補が出てきます。どうすれば関数だけ絞れますか?
数式オートコンプリートの候補には関数名だけでなく、定義された名前(名前付き範囲)も一緒に表示されます。もし関数だけに絞りたい場合は、文字を数文字多く入力して候補を絞り込むか、Shift+F3キーで「関数の挿入」ダイアログを開いて選択する方法が確実です。
候補が出るのに、選択してEnterを押すと違うセルに移動してしまいます。
これはEnterキーの動作が「下のセルへ移動」に設定されているためです。前述のとおり、候補の確定には必ずTabキーを使ってください。Tabを押すと選んだ関数名と「(」が自動入力され、引数の入力に進める状態になります。
Excelを更新したら候補が出なくなりました。元に戻すことはできますか?
更新後に設定がリセットされた可能性があります。まず「ファイル」→「オプション」→「数式」で「数式オートコンプリート」のチェックを確認してください。チェックが外れていれば入れ直してOKをクリックするだけで復元できます。また、更新後に別の不具合が生じている場合は、Officeのクイック修復を試みるのが有効です。
職場のPCだけ候補が出ません。自宅PCは出ます。何が違うのでしょうか?
職場のPCに固有の原因が存在するケースです。よくあるのは以下の3つです。①Excelのバージョンが古い(企業環境では更新が制限されていることが多い)、②特定のアドインが導入されている(職場環境特有のアドインが干渉している)、③グループポリシーや社内設定で機能が制限されている。情報システム部門に相談することも視野に入れてください。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Excelで関数候補が表示されないという問題は、ほとんどの場合、「ファイル」→「オプション」→「数式」→「数式オートコンプリート」にチェックを入れて「OK」、という1分以内の操作で解決します。これで改善しない場合は、日本語入力モードのオン・セルの書式が文字列・アドインの干渉・Excelのバージョンが古い・共有ブック機能が有効、というように影響範囲の小さいものから順番に確認していくことが、最も時間を無駄にしない正しいアプローチです。
また、数式オートコンプリートはただ候補を見るだけでなく、複数文字で絞り込む・Alt+↓で一時切り替え・TabキーとBackSpaceを使いこなすなど、使い方を知っているかどうかで作業効率に大きな差がつく機能です。復旧させたこの機会に、ぜひ操作の精度もあわせて高めてみてください。あなたのExcel作業がよりスムーズになることを願っています。






コメント