エクセルを編集しようとして、入力できないのは非常に困ります。なぜ、そのファイルは編集できないのでしょうか。いくつか原因があるので、Excel2013での解決方法をご紹介します。
データの入力規則が設定されている場合
データを入力しようとしたら、図1のようなエラーが出てしまう場合、対象のセルに「データの入力規則」が設定されている可能性があります。
この入力規則が間違っていたり、当初想定して設定した範囲を超えたデータを入力すると、エラーとして認識されてしまうため、まずは入力規則を確認してみましょう。
調べたいセルを選択した状態で、リボンの「データ」タブから「データの入力規則」をクリックします。
データの入力規則とは、対象のセルに入力する内容を制限できる機能です。
たとえば、名簿の名前欄に電話番号のような数字が入力されていたらおかしい、といったように、特定のセルに入力されるデータを特定させる際に用いられます。
ただ、番号欄に漢数字を用いたりと、若干の例外が存在する場合もあります。そんな時入力規則にひっかかってしまって入力できなくなってしまいます。
図1では、対象のセルには「整数」を入力するよう指定されていました。
(図3)
しかし、入力できる数値の範囲の最大値が「100」になっているため、「200」と入力するとエラーが出てしまうというわけです。
こういう時は「最大値」を大きくすることで解消できます。
なお、「データの入力規則」に反した値が入力された時、デフォルトでは図4のようなポップアップメッセージが出ます。
入力規則はエラーメッセージも決めることができるため、作成者によっては専用のエラーメッセージを用意していることもあります。たとえば、図1では専用のエラーメッセージを出力しています。
シートが保護されている場合
エクセルはシートに変更防止のロックをかけることができます。
マニュアルや回覧用の資料など、複数人で共有するファイルが誤操作で改変されることを防ぐには「読み取り専用」として保存する手もありますが、ファイル内の一部分だけ、例として「プルダウンリストの候補を入力したセルやシート」だけを制限したい時などは「保護」機能を使います。
シートが保護されている場合、解除するまでデータを入力することはできません。
保護を解除するには、リボンの「校閲」タブから「シート保護の解除」をクリックします。
(図6)
予め設定しておいた正しいパスワードを入力すると解除できます。
(図7)
特定のセルだけがロックされた状態
「セルの書式設定」より、特定のセルのみロックを解除できます。
(図8)
ロックしたセルがある状態で、シートの保護時に「ロックされたセル範囲の選択」にチェックを入れている場合、シート全体に保護が適用された際、「ロックを解除したセル」だけは入力を受け付けるようになります。
(図9)
この機能を使う際のポイントは、全てのセルはデフォルトで「ロック」状態になっているため、「保護した後も編集可能にしておきたいセル」のみ書式設定から変更する、という、ホワイトリストのような形式であることです。複雑な算式が入っているセルはロックしたまま、データを変更したい、といったときに活用できます。
VBAコード
エクセルの操作や機能をユーザーがプログラムできる「VBA」を使って、更に具体的な操作を実装することもできます。
ここでは例として「チェックボックスにチェックを入れると特定のセルへの入力を禁止する」操作が指定されている場合を見てみます。
シート上にチェックボックスを実装し、VBAを使って「チェックが入っている時は対象のセルは入力不可」、ついでに「チェックが入っている時は隣のセルに”CheckIn”と出力」「チェックが入っていない時は隣のセルに”CheckOut”と出力」するようプログラムしています。
VBAはエクセルに搭載されている機能ではありますが、入力画面がメニューに隠れているので、表示させる必要があります。
(図11)
エクセルのメニュー「ファイル」からオプションを選択します。
次に、オプション画面から「リボンのユーザー設定」を選択し、メインタブの一覧にある「開発」にチェックを入れます。
こうすると、図13のように「開発」メニューが表示されます。
(図14)
そこから「Visual Basic」ボタンをクリックすれば、VBAの編集画面が表示されます。
「ThisWorkbook」をクリックすると、上図のようにVBAを入力する欄が表示されるので、ここにプログラムを入れていきます。
VBAに入力したプログラムは以下の通りです。
<blockquote>
Private Sub CheckBox1_Change()
If CheckBox1.Value = True Then
Range(“B1″).Value = “CheckIn”
Range(“A1″).Locked = True
ActiveSheet.Protect
Else
Range(“B1″).Value = “CheckOut”
ActiveSheet.Unprotect
Range(“A1″).Locked = False
End IfEnd Sub
</blockquote>
この場合、チェックボックスからチェックを外せば入力が可能となります。
チェックボックス欄をクリックするとチェックボックスがドラッグできる状態になる時は、リボンの「開発」タブから「デザインモード」をOFFにします。
エクセルではこのような操作も実現できます。
特定の文字を入力できない時(代替キー指定)
(図15)
たとえばこんな時。
デフォルトの状態でエクセルのセルに「/(半角スラッシュ)」を入力しようとしてもできません。
一旦セルをダブルクリックしてカーソルを出してからなら入力できますが、面倒ですよね。
これを解除するには、まずリボンの「ファイル」から「オプション」を選びます。
(図16)
「Excelのオプション」より「詳細設定」を選んで、一番下までスクロールします。
「Loutusとの互換性」という部分にある「Microsoft Excel メニュー キー」に指定されたスラッシュを削除します。
最後に「OK」をクリックすれば完了です。
(図17)
スラッシュが入力できるようになりました。
エクセルはビジネスシーンで活躍するツールのため、必要に応じてロックをかけられるようになっています。
データが古くなったために修正が必要な場合、後から誤りを見つけた場合など、ロックを解除する方法を知っていれば、常に正しいデータを維持できるようになるので、覚えておくと便利です。