こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

半角のみの入力制限

使用しているのはExcel2003です。

セルの表示形式は文字列のまま、1つのセルに半角のみ入力制限をyyyy/mm/dd hh:mm:ssでかけたいのですが、入力規則で制限できる方法ありますでしょうか?
全角の空白、時間の『:』を全角『:』で入力してくる人もいるので、上記表示以外受け付けできないようにしたいです。

数式を組めば簡単に解決しますが、そのEXCELをそのままCSV変換しインポートするため
数式だとエラーではじかれるので、それもできません。

入力規則は問題ないので色々調べつくして、トライしてみた入力規則が、
文字列、次の値に等しい、19(yyyy/mm/dd hh:mm:ss 19文字)、エラーメッセージ(念のための)、日本語入力オフです。

ただ、全角半角までは区別してくれないので、それをどうしたらいいのか・・・


よろしくお願いします。

投稿日時 - 2012-03-30 11:07:55

QNo.7392126

すぐに回答ほしいです

質問者が選んだベストアンサー

A1に入力規則を付ける場合、入力規則を以下のようにします。

・空白を無視する
するしないどちらでも可

・入力値の種類
ユーザー定義

・データ
グレーアウトしている筈なのでそのまま

・数式
=AND(LEN(A1)=19,MID(A1,5,1)="/",MID(A1,8,1)="/",MID(A1,11,1)=" ",MID(A1,14,1)=":",MID(A1,17,1)=":",TEXT(DATEVALUE(A1),"yyyy/mm/dd")=LEFT(A1,10),TEXT(TIMEVALUE(A1),"hh:mm:ss")=RIGHT(A1,8))

「数式」で指定した式が「TRUE」にならない場合、入力規則に反する、と判断されます。

数式の意味は、A1セルの長さが19文字で、5、8文字目が半角の「/」で、11文字目が半角スペースで、14、17文字目が半角の「:」で、前10文字が日付として認識できて、後ろ8文字が時刻として認識できればTRUE、です。

日付、時刻として認識できるかどうかの判定では、時間部分が「25:30:00」とか「01:70:10」とか、時分秒が範囲内に無い場合もチェックしています。

EXCELは「25:30:00」を「1日と01:30:00」と判断したり、「01:70:10」を「02:10:10と同じ」と判断するので、それを入力規則エラーにするため、このような式になっています。

投稿日時 - 2012-03-30 12:34:49

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

追記。

この入力規則を使用する場合、事前にセルの表示書式を「文字列」にしておかなければなりませんので、ご注意を。

セルの表示書式が「日付」や「標準」だと、入力した値が「日付時刻のシリアル値」になってしまい、入力規則に反する、と判断されてしまい、入力エラーになります。

てゆか、質問文に

>セルの表示形式は文字列のまま

って書いてあるので、問題は無いですよね(^^;

投稿日時 - 2012-03-30 12:49:04

ANo.1

とりあえずお勧めの手口としては、セルの書式設定で「文字列」はやめて「ユーザー定義」で
yyyy/mm/dd hh:mm:ss
を設定しておきます。
ゼロの補填、半角化もエクセルが間違いなくやってくれますし、こうして入力しCSVで保存すれば、このフォーマットを維持して保存されます。保存したCSVをメモ帳で開いて確認してみるとよいでしょう。

もし必要と思うなら、更に入力規則で「数値で入力されている」ことを確認させてもよいかもしれませんね。ISNUMBER関数などで検査できます。

投稿日時 - 2012-03-30 11:38:09

あなたにオススメの質問