人に聞けない痔の悩み、これでスッキリ >>

Excel2003において、入力規則を用いて、指定した列の全てのセル内にスペースの入力を禁止する事は可能でしょうか。
例えば[abcdef****](*をスペースだとします)と入力した時、「スペースの入力は禁止されています」というようなエラーメッセージを出したいのです。
ご教授願います。

A 回答 (2件)

例えば、C列に対して設定するとします。


C1セルがアクティブな状態で、

入力値の種類
 ユーザー設定
数式
 =ISERROR(FIND(" ",C1))

※半角スペースを含まない場合のみ許可

でいかが?
----------------------------------------------------------------
[abc def]のように、文字列の中途にスペースが入る場合を許容するのであれば、

 =RIGHT(C1,1)<>" "

※半角スペースで終わらない場合のみ許可
----------------------------------------------------------------
[abcdef ]のように、全角スペースが入る場合も禁止するのであれば、

 =AND(ISERROR(FIND(" ",C1)),ISERROR(FIND(" ",C1)))

※半角スペースも全角スペースも含まない場合のみ許可
----------------------------------------------------------------
・禁止する場合についてではなく、許可する場合について設定する
・個々の文字ではなく、文字列全体についての判定を考える
のがポイントです。
    • good
    • 0
この回答へのお礼

deus_ex_machina様、ありがとうございました。早々にご回答下さったというのに、こちらからのお礼が遅くなってしまい、申し訳ございませんでした。
お教え頂いた数式で、希望通りに設定出来ました。今後、入力規則を定める際には、お教え頂いた2つのポイントを参考にさせて頂きます。本当にありがとうございました。

お礼日時:2008/01/11 07:21

データ>入力規則でデータの入力規則画面を表示させます。



《設定タブ》
入力値の種類はユーザー設定。
空白を無視するチェックボックスのチェックを外します。
数式テキストボックス内でスペースを入力します。※単純にスペースキーを押すだけです。

《エラーメッセージタブ》
スタイル、タイトル、エラーメッセージを任意に編集します。

《入力時メッセージタブ》
セルの選択時にメッセージを表示するチェックボックスのチェックを外します。

お試しください。

この回答への補足

---Blue---様、ありがとうございました。
早速教えて頂いた通りに設定してみました。
ですが、教えて頂いた方法ですと[abcdef****]と入力した場合だけではなく、[abcdef]とスペースを無しにして入力した場合もエラーと認識されてしまいます。
スペースを入力した場合のみエラーと認識させる方法がないものでしょうか。ご存知であればぜひご教授下さい。
宜しくお願い致します。

補足日時:2008/01/05 10:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【エクセル】 入力規則:リストで空欄を防ぎたい

あるセルの値を入力規則を使ってリストから選ぶようにしています。

このセルが空欄になるのを防ぎたいのですが、
このセルを選択してデリートボタンを押された場合は
どうすれば良いでしょうか?

下記のような処置しか思いつかなかったのですが、
もっとスマートな方法はないものでしょうか?

--------------------------------------------------
このセルの値をどこかに記録しておいて、
デリートされた時は記録していた値を入力する。
--------------------------------------------------

宜しくお願い致します。

Aベストアンサー

エクセルの操作で色々やって見たがうまくいか無かった。
最後は苦肉の策で(というか、質問にはこれしかないような、高等な要求だろう)VBAになった。
ーー
シートタブで右クリック。
「コードの表示」をクリック。
出てきた(VBEのシートモジュール)画面に下記を張り付け。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "" And Target.Column = 1 Then
Application.EnableEvents = False
MsgBox "空白は不可"
SendKeys "^z"
Application.EnableEvents = True
End If
End Sub
ーー
A列限定で(これは別列に変えられる)
DELキーでデータを削除すると、エラーメッセージとUndoを行う。
ただいろんな条件で耐ええるか(Undoなど)テストは十分でない
のでご検討の上使ってください。
(1)ChangeイベントをVBAで使う上での難しさ
(2)Undoで凌いだが、SendKeysで行う不安定さ。

エクセルの操作で色々やって見たがうまくいか無かった。
最後は苦肉の策で(というか、質問にはこれしかないような、高等な要求だろう)VBAになった。
ーー
シートタブで右クリック。
「コードの表示」をクリック。
出てきた(VBEのシートモジュール)画面に下記を張り付け。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "" And Target.Column = 1 Then
Application.EnableEvents = False
MsgBox "空白は不可"
SendKeys "^z"
Application.EnableEvents = True
End If
End Sub
...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QEXCELで特定の文字列を入力→エラー表示したい

エクセルで、特定の文字列(複数あります)を入力した場合にエラーメッセージを表示したいと思っています。可能でしょうか?

仕事上で使うシートなのですが、
私が表の枠と見出しのみ入れたものに、他の部署の人がデータを入力して、また私宛に戻してきます。その後、そのデータをcsvファイルに変換し、あるソフトで読み込みデータを処理します。

入力してもらうデータの形には一定の決まりがあり、入力してはいけない文字列があります。
例えば、都道府県名を入れるセルがあり、
「都」「府」「県」は入力してはいけない(入力すると、最終的にデータを使用するソフトでエラーになる)、
つまり、「東京都」は誤りで「東京」とするのが正しいというものです。

入力するセルとは別のセルに、関数で「都」「府」「県」を除いた文字列を表示するようにしようかと思ったのですが、これでは見た目上の解決にしかならず、結局csvファイルにした時にエラーになってしまいます。

そこで、入力規則の設定で「~都」「~府」「~県」の文字列の場合にエラーメッセージが出るようにしたいのですが、
このように入力してはいけない文字が複数ある場合の数式がわかりません。
(「~県」だけが入力禁止なら、入力規則→設定で、許可=ユーザー設定 にして、数式を「=countif(A1,"*県")=0」とすれば出来るのですが……)
入力可能な文字数の設定で回避しようにも、「東京」は2文字ですが「鹿児島」は3文字です。

また、他の入力項目で、特定の文字列については置き換えが必要なものが出てくるので
(例えば「株式会社」→社名の先頭の場合は「カ)」、社名の後ろの場合は「(カ」など。)
関数などで自動的に変換されるより、入力直後に人間が誤りに気づいて訂正できるものの方が都合がよさそうです。

なお、アナログな方法ですが、見出し部分に ”「都」「府」「県」は入力しないでください” など注意書きは入れています。しかし、それに気づいてもらえていないのか、それとも勢いで「~県」と入力してしまうのか、ほとんど効果なしです。

こんな状況なのですが、入力時にエラーを表示する方法を教えてください。

エクセルで、特定の文字列(複数あります)を入力した場合にエラーメッセージを表示したいと思っています。可能でしょうか?

仕事上で使うシートなのですが、
私が表の枠と見出しのみ入れたものに、他の部署の人がデータを入力して、また私宛に戻してきます。その後、そのデータをcsvファイルに変換し、あるソフトで読み込みデータを処理します。

入力してもらうデータの形には一定の決まりがあり、入力してはいけない文字列があります。
例えば、都道府県名を入れるセルがあり、
「都」「府」「県」は入力して...続きを読む

Aベストアンサー

No.3です!
たびたびごめんなさい。

前回のコードでは「京都府」の場合、「京都」としても「都」が含まれていますので、エラーになってしまいます。

前回のコードの
If Target Like "*都" Or Target Like "*府" Or Target Like "*県" Then

の行を

If Target Like "東京都" Or Target Like "*府" Or Target Like "*県" Then

に訂正してください。

検証せずに投稿して失礼しました。m(__)m

QExcelで入力禁止文字を設定したい

いつもお世話になって居ます。
以下のように特定のセルに入力の規制をしたいのですが、お分かりの方がいらしたらお手数ですがご教示ください。

A1セルの入力時に、「文字数を30文字以下、且つ特定の文字(仮にあ、い、う、え、お)を禁止し、さらに半角のみ」
A2セルの入力時に、「文字数を30文字以下、且つ特定の文字(仮にか、き、く、け、こ)を禁止し、さらに全角のみ」
A3のセルの入力時に、「文字数を20文字以下、且つ特定の文字(仮にあ、い、う、え、お、か、き、く、け、こ)を禁止し、さらに半角のみ」

何れもエラーメッセージがそれぞれの規制ごとに「文字数オーバー」「禁止文字を使用」「全角(半角)で登録」と表示できると助かります。

入力規制ですと「特定の文字のみ可能」となってしまい、希望通りに出来ませんでした。

Aベストアンサー

E1~E5に、それぞれ順に「あ、い、う、え、お」と入力して、
=AND(LEN(A1)<=30,ISERR(FIND($E$1:$E$5,A1)),LENB(A1)=LEN(A1))

QExcel 入力規則の複数指定について

1つのセルに対し、複数の入力規則は出来ないのでしょうか?

例えば、Excelシートで

A1に学校名を入力
B1に入学する年(西暦)
C1に入学する月

を入力させたいのですが、

A1に学校名が入力されてなかった場合、
B1とC1は入力規則でエラーメッセージを出して入力不可にしたいのです。

逆に、A1に学校名が入力された場合、
B1には、入力規則で適切な西暦だけを入力可能にしたいのです。
C1には、入力規則で適切な月だけを入力可能にしたいのです。

適切な西暦や月が入力されなかった場合は、
入力規則でエラーメッセージを出して入力不可にしたいのです。

ちなみに現在使用している仕様は「WinXP、Excel2003」です。

Excel初心者なので、VBAは分かりません・・・。
関数は、少々分かりますので、入力規則以外でこの様な
複数指定の方法が出来るのでしたら、教えていただけないでしょうか?
なにとぞ、ご教授のほど宜しくお願い致します。

Aベストアンサー

例えば次のようにします。
シート2のA列には学校名が入力されているとします。
その後、シート1のA1セルを選択したのちに「データの入力規則」の「ユーザー設定」で数式の窓には
=COUNTIF(Sheet2!A:A,A1)>0
B1セルを選択して同様にデータの入力規則のユーザー設定の数式の窓には
西暦2010から2020を入力できるようにする場合には
=AND(A1<>"",B1>=2010,B1<=2020)
C1セルを選択して
=AND(A1<>"",B1<>"",C1>=1,C1<=12)

QExcelで未入力のセルがある場合にエラーメッセージをだしたい。

教えてください。
EXCEL2003(SP1)で表を作成し、複数人で使用しています。
大分類と中分類に分けて数字を入力したいのですが
大分類だけ入力して、中分類の入力を忘れてしまう方が多くて困っています。
大分類を入力したら、中分類の入力を促すメッセージを出すか、
中分類を入力しないとその後の作業が行えない(次の大分類を入力できない等)ような機能はありますか?

Aベストアンサー

督促する方法ですが如何でしょうか。
(1)大分類セル範囲を選択→データ→入力規制
(2)入力メッセージタブでメッセージ欄に督促メッセージを入力して下さい。
   セルをクリックすると督促メッセージが表示されます。
又は、中分類列に条件付き書式設定で大分類セル入力済み、中分類セル未入力の場合、中分類セルに色付けする方法もあります。
(1)書式→条件付き書式設定→「数式が」、数式を=(大分類セル<>"")*(中分類セル="")として、書式から任意色を選択

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

Qエクセルで英数大文字のみの入力制限は可能ですか

エクセルで、半角英数のみの入力制限を「日本語入力オフ」で
やっていますが、それにさらに「大文字」のみの入力制限をか
けることは可能でしょうか。

「CapsLock」ができれば良いのですが、パソコンをあまり知ら
ない人が入力するためのファイルを作成しています。

Aベストアンサー

再度のチャレンジです。
セルA1にこれを入れてみてください。
1.「入力規則」-「ユーザー設定」-「数式」-「=EXACT(UPPER(A1),A1)」
2.日本語コントロールを半角英数
これが精一杯の方法だと思います。
これで
ABC←可 Abc←不可 abc←不可 AbC←不可
英数が完全に大文字でないと入力できないようになりました。
数字、半角カナも入力できます。
これも制限する場合はまた検討します。

QVBAにてデータが数字か文字かを判定するには

VBAにてデータが数字か文字かを判定するには、
どうすれば良いのでしょうか?

文字数は任意で決まっていません。


123 ← 数字
あい ← 文字
1F  ← 文字
G  ← 文字

Aベストアンサー

こんにちは。

数字か文字かなら、IsNumeric でよいと思いますが、数値か文字かでしたら、VarType を使います。私の場合は、IsNumericは、めったに使いません。VarTypeのほうが多いですね。IsNumeric は、文字通り、文字か数字かで、文字列書式の数字も含まれます。なお、VBAでは、数字は、数値型に型キャストされますので、特に問題は発生しません。

ご参考までに。

Sub Test()
 If VarType(Range("A1").Value) = vbDouble Then
  MsgBox "数値"
 ElseIf VarType(Range("A1").Value) = vbString Then
  MsgBox "文字列"
 Else
  MsgBox "その他" '代表的なものはエラー値です
 End If
End Sub

-----------------------------------------
こちらの場合は、全角数字も、数字として扱われます。

Sub Test2()
 If IsNumeric(Range("A1").Value) Then
   MsgBox "数字"
 Else
   MsgBox "数字ではない"
 End If
End Sub

こんにちは。

数字か文字かなら、IsNumeric でよいと思いますが、数値か文字かでしたら、VarType を使います。私の場合は、IsNumericは、めったに使いません。VarTypeのほうが多いですね。IsNumeric は、文字通り、文字か数字かで、文字列書式の数字も含まれます。なお、VBAでは、数字は、数値型に型キャストされますので、特に問題は発生しません。

ご参考までに。

Sub Test()
 If VarType(Range("A1").Value) = vbDouble Then
  MsgBox "数値"
 ElseIf VarType(Range("A1").Value) = vbString Th...続きを読む

Qエクセル☆セルに入力必須の制限は可能ですか??

エクセル☆セルに入力必須の制限は可能ですか??

エクセルで「取引先登録依頼書」を作成しています。
必須項目となっているセルは必ず入力されるように
したいのですが、
”未入力を認めない”ような設定は
可能でしょうか?

以上、宜しくお願いいたします!

Aベストアンサー

#2のmerlionXXです。

> マクロ無効で開くと、保存できてしまうんですねー(>_<)
> 残念。。。

はい、マクロを無効にされればどんな仕掛けをしようが無意味です。
ただし、逆転の発想で、マクロを有効にしないと役に立たないファイルにしてしまえば否応なしにマクロを有効にせざるをえませんね。
例えば、、ワークシート上に、シートの文字がほとんど隠れるくらいの大きなテキストボック(「マクロを有効にして開いて下さい!!」と記入しておく。)を貼っておいて、入力欄のセルだけはロックを解除してシート保護をかけます。
マクロを有効にして開いたときだけ、テキストボックをマクロで非表示にするという手もありますね。

マクロは、テキストボックスの名前が「テキスト 1」だとすれば、

'ファイルを開いたときの非表示用

Private Sub Workbook_Open()
Sheets("Sheet1").TextBoxes("テキスト 1").Visible = False
End Sub

'ファイル保存時の最表示用

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("Sheet1").TextBoxes("テキスト 1").Visible = True
End Sub

の二つを、先ほどのマクロと同じ場所にコピペしてください。

#2のmerlionXXです。

> マクロ無効で開くと、保存できてしまうんですねー(>_<)
> 残念。。。

はい、マクロを無効にされればどんな仕掛けをしようが無意味です。
ただし、逆転の発想で、マクロを有効にしないと役に立たないファイルにしてしまえば否応なしにマクロを有効にせざるをえませんね。
例えば、、ワークシート上に、シートの文字がほとんど隠れるくらいの大きなテキストボック(「マクロを有効にして開いて下さい!!」と記入しておく。)を貼っておいて、入力欄のセルだけはロックを解除してシ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング