• 締切済み

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

全角のみで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