Bar

Excel ドロップダウン リストがバージョンによって表示されない時の対処法

Excel 2013で作成した業務アプリをExcel 2007の環境でテストした時のお話。
基本的な機能、およびVBAは問題なく動作しましたが、Excel 2007において[データ]タブの[データの入力規則]機能を使ったドロップダウン リストが表示されない現象に遭遇しました。
調べてみたところ、有名な話のようですね。
全く知らない内容でしたので、調べた内容をメモ。
Excelは奥が深い!

現象

  • Excel 2013のシートに[データの入力規則]機能を使ってドロップダウン リストを作成
    image
  • ドロップダウン リストの[元の値]は別シートのセルを参照
    imageimage
  • 同一ファイルをExcel 2007の環境で開くと、ドロップダウン リストが表示されない。
    また、[データの入力規則]が初期化されている
    image

原因

別シートのセルを参照(=シート名!セルの範囲)はExcel 2010からの機能のようです。
Excel 2007を含む、古いExcelではこの機能が使えません。
そう、仕様です。

対処法

Excel 2007、2013の両方で別シートのデータをドロップダウン リストに反映させるにはどうすればいいか?
この場合は、Excel 2007以前から使われてきた「選択範囲に名前を定義する」機能を使います。
下記の超有名サイトで丁寧に紹介されています。
上記サイトを参考にした実際の手順は下記通りです。
  1. [元の値]となる範囲を選択
  2. 左上の[名前ボックス]に適当な名前を入力します
    image
  3. ドロップダウン リストのセルを選択し、[データ]→[データの入力規則]をクリック
  4. [元の値]のテキストボックスを選択し、[=選択範囲の名前]を入力する
    image
    または、F3キーを押し、定義された名前を選択
    image

Officeを使った業務アプリ開発が多くなってきましたが、それと同時に社内の環境を想定した動作検証にも時間がかかるようにもなってきました。
今回の内容は、各バージョンの新規機能を知っていれば回避でき、検証作業は楽になったはずです。
まだまだ修行が足りませんね。。。
頑張ります!