• 締切済み

エクセル 入力規則設定方法

全角のみで25文字以内の設定を行いたいと思っておりますが、 A1のセルに下記の入力規則設定を行った場合 [ユーザー設定]⇒.[数式] =AND(A1=JIS(A1),LEN(A1)<=25) 先頭からいくつか数字(全角でも)のみが並ぶとエラーになってしまいます。 また、 [文字列長さ]⇒.[最大値] 25以下 この場合も、数字のみですといくらでも入力が可能であり、しかも16番目の数字が0(ゼロ)に 変化してしまいました。 どこか、何かの設定方法が悪いと思うのですが、 本来設定したい内容としては、 ●そのA1セルに、半角英数字を入力しても全角に変換し、文字数としてカウントする。 ●上記のように、数字のみが10個並んだとしても許可して全角文字に変化させる。 これを設定したいのです。 どうか教授いただけないでしょうか。 宜しくお願いします。

みんなの回答

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.3

数字を文字列として認識させるのは、既回答で出ているようにセルの書式設定を文字列にしておくことで解決できます。 入力の際に数字を全角に、というのは入力規則→日本語入力タブ→プルダウンから「ひらがな」を選択しておき、テンキーでなくアルファベットの上にある数字キーで入力すると全角で入力されます。 (デスクトップPCのキーボードをお使いの場合)

coco-chanel
質問者

お礼

なかなかこちらを閲覧できず、本日ようやく拝見させて頂きました。 ご親切な回答をありがとうございます。 やはり、数字はテンキーではない方がいいということですね。 基本数字入力はテンキーを使っているので悩ましいですが、他の方の方法も含めて 色々設定してみます。 ありがとうございました!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 セルの書式設定の表示形式を[文字列]にしておかれる事で、 >16番目の数字が0(ゼロ)に変化してしまいました。 という現象を避ける事が出来ますし、入力されたデータは文字列データとして扱われる様になりますから、質問者様が既に試された [入力値の種類]:ユーザー設定 [数式] :=AND(A1=JIS(A1),LEN(A1)<=25) という設定で「入力値が25文字以内の大文字ではない場合には入力を拒否する」という入力規則とする事が出来ます。  それから、もし、 >●そのA1セルに、半角英数字を入力しても全角に変換し、文字数としてカウントする。 >●上記のように、数字のみが10個並んだとしても許可して全角文字に変化させる。 と仰る様に、 「(入力規則で入力を拒否するのではなく)入力されたデータ自体を全角の大文字のデータに書き換える」 という事をやりたいという事でしたら、セルの書式設定の表示形式を[文字列]にしておかれた上で、例えばA1セルに入力されたデータを25文字以内の全角大文字に変換するという場合には、次の様なVBAを作動させると良いと思いま す。 Sub Macro1() Range("A1").Value = Left(StrConv(StrConv(Range("A1").Value, vbWide), vbUpperCase), 25) End Sub  只、入力後に毎回毎回VBAを作動させるのは面倒くさい事ですし、VBAを作動し忘れる事もあるかも知れません。  ですから、A1セルに入力されているデータの方を全角大文字に変換するのではなく、A1セルに入力されているデータの方は、セルの書式設定([文字列])と入力規則([入力値の種類]:文字列(長さ指定)、[データ]:次の値以下、[最大値]:25)により25文字以内の文字列データとするだけで、小文字や半角文字を含んだデータのままにしておかれた上で、A1のデータを関数中で参照する際に、 A1 と関数中に記述されている箇所を、 JIS(UPPER(A1)) に置き換える事で、関数の中で全角大文字のデータとして扱う様にされては如何でしょうか?  或いは、作業列を設けるという方法も良いかも知れません。  例えば、仮に、元データがSheet1のA1セルに入力されることになっていて、Sheet2のB列を作業列として使用するものとした場合、Sheet2のB1セルに =JIS(UPPER(Sheet1!A1)) という関数を入力しておかれた上で、その他のセルの関数中でSheet1のA1セルを参照している箇所を、Sheet2のB1セルを参照する様に変更されると良いと思います。

coco-chanel
質問者

お礼

なかなかこちらを閲覧できず、本日ようやく拝見させて頂きました。 VBAのことや、関数の取り扱い方について、細やかに教えていただきありがとうございます。 まだ試しておりませんが、一度こちらを踏まえていろいろ設定してみます。 ありがとうございました!

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

現在の入力規則の設定をそのまま利用するなら、対応するセルの書式設定で、表示形式を「文字列」に設定してください。 ちなみに、入力規則などの一般機能では半角で入力したデータを全角に自動変換させることはできませんので、入力時に全角入力するようにしてください(全角英数だけの入力なら入力規則の日本語入力タブでIMEの入力モードを「全角英数字」にする)。

coco-chanel
質問者

お礼

なかなかこちらを閲覧できず、本日ようやく拝見させて頂きました。 やはり入力規則での機能では半角で入力したデータを全角に自動変換できないのですね・・・。 ご親切にありがとうございました。

関連するQ&A

  • エクセル 入力規則設定方法

    エクセルA1セルの入力規則設定方法を教えてください。 設定内容は、 半角カナ、英数字のみ入力可能で、かつ、20文字以内にしたいです。 宜しくお願いします。

  • Excel:関数と入力規則

    セル[A2]に入力規則>設定タブ>入力値の種類で「ユーザー設定」、数式に「=LENB(A2)<=16」 と設定しています。 この設定によりこのセルには全角8文字もしくは半角16文字を超えての入力を禁止させています。 その隣のセル[B2]にはセル[A2]の入力値がそのまま自動表示されるように「=A2」とし、かつ入力規則>設定タブ>入力値の種類で「ユーザー設定」、数式に「=LENB(A2)<=12」 と設定しています。 この設定によりこのセルには全角6文字もしくは半角12文字を超えての入力を禁止させています。 例えば、セル[A2]への入力文字が全角6文字以内であれば問題ないのですが、8文字になった場合、セル[B2]の入力規則が無視され、8文字で表示されてしまうのです。 これは仕方がないのでしょうか? ちなみにセル[B2]の関数を無視して直接セル[B2]に入力するのは入力規則が正常に反応し、全角7文字以上は入力できません。 何か良い方法があれば御教示願います。

  • 複数条件の入力規則について

    セル内を以下の条件で入力規則を設定しようとしました。 ①全角文字で18文字、半角文字で36文字以上の入力を制限する ②セル内改行を禁止する ①と②は各々個別に制限動作するようにする データの入力規則で、入力値の種類を「ユーザー設定」にし、数式を 「=OR(LENB(A1)<=36,COUNTIF(A1,"*"&CHAR(10)&"*")=0)」と設定したところ、 ①全角文字で18文字、半角文字で36文字以上の文字列が入力出来てしまう ②全角文字で18文字、半角文字で36文字以内でセル内改行が出来てしまう ③全角文字で18文字、半角文字で36文字以上でセル内改行が禁止される というように、私の意図した通りの制限動作になりませんでした。 重いあぐねて、数式を 「=AND(LENB(A1)<=36,COUNTIF(A1,"*"&CHAR(10)&"*")=0)」と設定したら、 正常に動作しました。 これでは、私の知識では、「OR」と「AND」の使い方が真逆になっているとしか思えません。 この浅薄な私の勘違いを明瞭に説明いただける方がいらっしゃれば、ご教授よろしくお願いたします。

  • エクセルの入力規則に数式を設定する

    A1 と A2 のセルに整数を入力させようとしています。 A1 が0より大きい時は、A2にも0より大きい数字を入力させたく、 セル A2 に下記のように入力規則の数式を設定しているのですが、 なぜか A1=0 の時にA2が0でもメッセージが出てしまいます。 (A1 が0より大きい時 A2 に0を入力できないようにしたい) =IF(A1>0,A2>0) IFをAndにしてみても同様の結果になってしまいます。 どうすればよいでしょうか。

  • Excel 入力条件について

    条件が2つある場合の入力設定を教えて頂きました。 セルA1に 12345601 を入力すると 123456-01 セルA2に 1234560001を入力すると 123456-0001 にする。 回答 条件付き書式の数式 =LEN(A1)=10 書式 000000-0000 =LEN(A1)=8 000000-00  解決済みでしたが 01234501や0001230001 のように頭に0が付くと 上手く行きません。 ご指導をどうぞ宜しくお願い致します。

  • エクセルの入力規則で。

    セルに、-1と、0、と、6から10までの数字しか入力できないようにするにはどうしたらいいですか? 6から10までの数字は小数点以下も含みます。(6.13とか。) 数式を入力してください、と言われても、どうやって数式化するのかわからなくて・・・。

  • エクセルで入力規則のあるところに関数などはいれられますか

    カテゴリーよくわかりません。 バーコードで読み取ったものをA列に入力するとき データの入力規則・A列A1,A2,A3…はリスト1から選択 例) A列       リスト1 A1        012345 A2        012346 A3        012347            012348           012349 (ずれがなおりません)                  012350           リスト1の先頭は数字の0がついています。よって、セルの書式表示は文字列です。 リスト1の文字列は6文字ですが、 バーコードをバーコードリーダーなどで読みとりする場合 後ろのほうに必ず余計な数字1つか2つ付いてますよね。 それを読まないでA列に6文字だけ入力することはできないんでしょうか できればバーコードリーダーの設定は変えないで、関数の挿入とかで。 よろしくお願いします。

  • Excel2007のデータ入力規則について

    文字数で管理しようとしたのですが、0が先頭についてしまうと上手くいきません。 ABC-1234-5 であれば、エラーはしません。 しかし、 ABC-0001-2 のように入力する数値の先頭に0が入るとエラーとなります。 000012345と入力するとABC-1234-5と表示されるので、 どうも、0を無視されているようです。先頭に0がついても文字数としてカウントしてくれる方法はありますか? なお、入力の手間を省きたいので、5つの連続した数字を入力するだけにするべく、「ABC」と「-」はセルの書式設定の ユーザー定義で "ABC"-0000-0 としています。 データの入力規則の条件設定は以下の通りです。 入力値の種類:文字列(長さ指定) データ:次の値に等しい 長さ:5 良い解決方法があればご教授の程、よろしくお願い致します。

  • エクセル 入力規則 貼付しても規則が変わらないようにするには?

    どなたかよろしくお願いします。 複数の営業所の売上を一つのエクセルシートに貼り付け、それを集計しています。 テンプレートでは入力規則で設定しているのですが、どうしても各人の入力方法がまちまちで、アルファベットを入力する列が全角・半角・太字になっていたり、数字の列が文字列になっていたりとバラバラなので、毎回直しています。なので貼り付けられても書式を統一出来ればと思います。 僕はあまり詳しくないのですが、入力規則でこの列は「半角英数字」と設定していても貼り付けたらそれになってしまうので、貼り付けられても書式が変わらないように、もしくはテンプレートの段階で書式を変更出来ないようにするにはVBAなどで設定すればそれは回避できるのでしょうか。 お手数ですが、よろしくお願い致します。

  • 入力規則の文字数設定について

    入力規則の文字数設定がうまくいきません。 ご存知の方教えて下さい。 入力規則とIF関数で以下に設定したいのです。。 理論 セルAが0~7文字以下 真の値 セルBが0~9文字入力可 偽の値 セルBが0文字まで入力可=入力不可 偽の値はうまくいくのですが、真の値でセルBに9文字以上入れることが出来てしまいます。 私のセルBの設定は 入力規則  設定   入力値の種類ー文字列(長さ指定)   データー次の値の間   最小値ー0   最大値ー=IF(LEN(セルA)>=7,9,0) です。 よろしくお願い致します。

専門家に質問してみよう