プロが教えるわが家の防犯対策術!

エクセルで基本フォーマットを作り、他の人に配布&入力してもらった後、全てを集計&データベース化する必要があるのですが。

各列に設けた項目により、‘全角英数のみ’‘全角カナのみ’‘半角カナのみ’の入力規則を設けた後、ロックをかけてみたのですが、変換できてしまう…?
全角英数&カナに関しては【=LEN()*2=LENB()】で逃げれたように思うのですが、‘半角カナのみ’の入力設定がわかりません…;;

ちなみに、別の列に入力したものを数式で半角に変換する方法は、今回のフォーマットには使いたくないのですが…??

どなたか、お助けください…**

このQ&Aに関連する最新のQ&A

A 回答 (2件)

入力規則の[日本語入力]タブの設定は、


あくまでIMEを自動的に切り替えるだけのものですから、
残念ながら、指定した種類の文字以外の入力を禁止することはできません。

また、「全角英数のみ」「全角カナのみ」「半角カナのみ」を
簡単に判定する方法も、おそらくないと思います。

以下、かなり無理矢理ですが、
データ>入力規則>設定タブ>ユーザー設定>数式で…
--------------------------------------------------------------------
●A案:コード番号で指定する

例えば「半角カナのみ」の場合
(小書き文字,鍵括弧や長音記号など一部の記号を含む)

 =AND(161<=MIN(INDEX(CODE(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)),)),MAX(INDEX(CODE(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1)),))<=223)
 【入力しようとした文字列のすべての文字のコード番号が、161以上223以下であれば許可】

コード番号は、CODE関数で調べることができます。
「半角カナ」161~223
「全角英数」9008~9082
「全角カナ」9505~9590

※「数式はエラーと判断されます。続けますか?」
 というメッセージが出てもそのまま「はい」で続行。
--------------------------------------------------------------------
●B案:許可する文字を全て書き出す

例えば「全角英数のみ」の場合

 =SUMPRODUCT(--ISERROR(FIND(MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1),"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")))=0
 【入力しようとした文字列のすべての文字が、指定した文字列の中にあれば許可】
--------------------------------------------------------------------
※いずれもExcel2003で動作確認済
※当然ですが、[日本語入力]タブの設定も併用して、
 IMEを自動的に切り替えないと非常に不便です。
※数式が長いので、直接打ち込むのではなく、
 別の場所に書き込んでから、コピー>Ctrl+Vで貼り付けた方が確実です。

以上ご参考まで。
    • good
    • 1
この回答へのお礼

ありがとうございます!!
とりあえず急いでいたので、別の列に置換の式を設定し強制的に置き換えたのですが…。
もう一回同様の作業が入ってくる予定なので、次回、試してみます!!

お礼日時:2008/03/04 11:15

データ(D)の入力規則(L)の中にあるタブで「日本語入力」の項目をそれぞれの項目に変えてはどうでしょう。

セル単位で設定できますが。
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
日本語入力はすべて試してみたのですが…。

半角カナ・全角カナ等、設定してみても、変換すれば
 半角カナ→全角カナ・漢字へ
 全角カナ→ひらがな・漢字へ
変更できてしまうのですが、なにか設定の仕方を間違えているんでしょうか…?

お礼日時:2008/02/18 22:41

このQ&Aに関連する人気のQ&A

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

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

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

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

Q「Exel」で、指定した列が常に「半角カタカナ」で入力されるようにしたいのですが

「Exel2000」を使っているのですが、セル(又は列)ごとに
入力設定が常に「半角カタカナ」になるよう、指定することは出来るのでしょうか?

「セルの書式設定」の「表示形式」では、数値や日付などの分類はあっても
文字入力の指定が出来るような項目はありませんよね?
他の列は「全角ひらがな」で入力していても、その列に来ると自動的に
半角カタカナで入力されるようにしたいのですが…。

Aベストアンサー

こんにちは

 以下の手順でいかがでしょうか?

1.セルまたは列を選択
2.メニュー[データ]-[入力規則]
3.[日本語入力]タブで[半角カタカナ]を選択
4.Enter

参考URL:http://www2.odn.ne.jp/excel/

Qエクセルで半角カナや特殊文字を入力制限する

エクセルの入力規則に、「20文字以内」「半角カナ不可」「機種依存する特殊文字不可」という条件をかけたいのですがいまいちわかりません。

今のところ、
=AND(A4=JIS(A4),LEN(A4)<=20)*(COUNTIF(A4,"*(株)*")=0)
として、全角のみ、20文字以下、特殊文字は個々で入れるというかんじでしか対応できていません。

誰かご存知でしたら方法教えてください!
どうぞよろしくお願いします!

Aベストアンサー

こんにちは。
返事が遅くなってしまいました。

>入力規則だとデータ入力する際にコピーペーストされると適用外になってしまうため、おっしゃるようにマクロの方がいいのかもしれません。しかし、やり方がわからず・・・

このマクロ自体は、思っていたよりもてこずってしまいました。あまり、うまい出来栄えではないとは思いますが、コピーペーストも禁止できます。使用勝手は、入力規則とほぼ同じです。

考え方は、dreamconさんが、特殊文字は個々で入れるという方法を使いました。

取り付け方は、シートタブを右クリックして、「コードの表示」をクリック。
次に、以下を貼り付けます。

入力規則の指定する場所に、Range("A:A") と、範囲を入力します。
複雑な範囲の場合は、例えば、このようにします。Range("A1:A10,B1:B2") 

全体の場合を設定したい場合は、If Intersect ... の行そのものを削除します。

'------------------------------------------------
Dim KinshiMoji As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim c As Range
  Dim msg As String
 
  '以下は、A列のみに、入力規則を施しています。
  If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
  On Error GoTo ErrMsg
  If IsEmpty(Target) Then Exit Sub
  Application.EnableEvents = False
 
  If Len(KinshiMoji) < 1 Then Call MakingMoji
 
  For Each c In Target.Cells
  If Len(c.Text) > 20 And c.Value <> "" Then _
   msg = "入力した値は20文字以上です。": Err.Raise 513
   If c.Text Like "*[" & Chr(&HA6) & "-" & Chr(&HDF) & "]*" Or _
     c.Text Like "*[" & KinshiMoji & "]*" Then
    msg = "入力した値は正しくありません。": Err.Raise 513
   End If
  Next
  Application.EnableEvents = True
  Exit Sub
ErrMsg:
  If MsgBox(msg & vbCrLf & vbCrLf & _
   "ユーザーの設定によって、セルに入力できる値が制限されています。", _
    16 + vbRetryCancel) = vbRetry Then
   c.Select
   Application.SendKeys "{F2}"
   Else
   Target.ClearContents
  End If
  msg = ""
  Application.EnableEvents = True
End Sub
Private Sub MakingMoji()

'禁じする文字を作ります。
Dim i As Long
For i = &H8740 To &H878F
 KinshiMoji = KinshiMoji & Chr(i)
Next
End Sub
'------------------------------------------------

こんにちは。
返事が遅くなってしまいました。

>入力規則だとデータ入力する際にコピーペーストされると適用外になってしまうため、おっしゃるようにマクロの方がいいのかもしれません。しかし、やり方がわからず・・・

このマクロ自体は、思っていたよりもてこずってしまいました。あまり、うまい出来栄えではないとは思いますが、コピーペーストも禁止できます。使用勝手は、入力規則とほぼ同じです。

考え方は、dreamconさんが、特殊文字は個々で入れるという方法を使いました。

取り付け方は、...続きを読む

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

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

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

Aベストアンサー

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

QExcel 入力を数値だけに制限したい

Excel2003
入力を数値だけに制限したい。
If関数で文字列を入力したら空白とする
又は
入力規則で数値以外入力できないようにする。
その他
数値だけを入力できないようにしたい

Aベストアンサー

例えば、A1を選択して、
入力規則の入力値の種類をユーザー設定にし、
数式に=ISNUMBER(A1)と入力し、OKを選択。
後は、このセルをコピーすればいいんじゃないの。

ちなみに
ISNUMBERは指定したセルまたは計算式の内容が数値かどうかをチェックする関数だよ。

Q入力規則で半角数字のみ受け付ける方法

今エクセルで、表を作っています。
ある行のみ半角数字しか入力できないようにしたいので入力規則「日本語入力オフ」にしたのですがアクティブにすると日本語入力になるだけで日本語入力も可能です。それを常に半角数字のみをいれるようにするにはどうすればいいでしょうか。
 また、電話番号のみ入力を受け付けるという形にしたい時、例えば○○○-○○○ー○○○○と入力するものしか受付ないとする(文字の入力は受け付けない、エラーメッセージが出る)にはどうすればいいでしょうか。入力規則の設定のタブで「ユーザー設定」で###-###-####としたのですがこれでは駄目みたいです。基本的な事が分からないもので、どなたか教えて下さい!!

Aベストアンサー

まず、入力規則→日本語入力→無効に。
これで半角英数のみの入力になります。

電話番号のみ入力を受け付けたいとのことですが、
入力された文字が電話番号か否かを判定することは無理っぽいです。
(マクロを使えば出来るのかもしれませんが、あいにく私には分かりません)

また、『○○○-○○○-○○○○と入力するものしか受付ない』のも難しそうです。
なぜなら、地域により市外局番・市内局番の桁数が異なり、
そのすべてに柔軟に対応できるようにしなければならないからです。


そこで、
(1)入力形式はハイフン無しの入力
(2)数字のみ入力受付
(3)入力された数値の大きさで市外局番からの電話番号か判定
としてみましょう。

(2)を実現するためには、入力規則→設定→ユーザー設定で数式欄を
   =isnontext(A1) とすればOK。(A1セルに設定する場合)
(3)はユーザー設定で数式欄を
   =and(A1<10000000000,A1>=100000000) とします。
  ※携帯は頭の0を除いて10桁、固定電話は頭の0を除いて9桁です。
   もし国際電話やその他特殊な電話番号を入力するならば
   この条件式は変更する必要があります。

で、(2)と(3)の両方を満たす場合のみ入力を受け付け、
ということで結局、ユーザー設定の数式欄に入力する数式は
=and(isnontext(A1),A1<10000000000,A1>=100000000)


この条件に合わないときはエラーメッセージを出しましょう。
スタイルは『停止』で。
『注意』や『情報』にするとメッセージが出たときに「はい」や「OK」を選択すると
入力された文字がそのまま残ってしまいます。


それと、セルの書式設定→ユーザー定義で
0###########
としておかないと、市外局番の頭の0が表示されません。
(isnontext関数で数字か否かの判定をする関係上、
 入力結果は文字列として扱えず、数値として扱っているため)


※もちろん、この単純な条件式では入力された電話番号が
 ありえない電話番号でもそのまま受け付けてしまいます。
 (例えば09123456789など)

まず、入力規則→日本語入力→無効に。
これで半角英数のみの入力になります。

電話番号のみ入力を受け付けたいとのことですが、
入力された文字が電話番号か否かを判定することは無理っぽいです。
(マクロを使えば出来るのかもしれませんが、あいにく私には分かりません)

また、『○○○-○○○-○○○○と入力するものしか受付ない』のも難しそうです。
なぜなら、地域により市外局番・市内局番の桁数が異なり、
そのすべてに柔軟に対応できるようにしなければならないからです。


そこで、
(1)入力形式...続きを読む

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

どなたかよろしくお願いします。

複数の営業所の売上を一つのエクセルシートに貼り付け、それを集計しています。
テンプレートでは入力規則で設定しているのですが、どうしても各人の入力方法がまちまちで、アルファベットを入力する列が全角・半角・太字になっていたり、数字の列が文字列になっていたりとバラバラなので、毎回直しています。なので貼り付けられても書式を統一出来ればと思います。

僕はあまり詳しくないのですが、入力規則でこの列は「半角英数字」と設定していても貼り付けたらそれになってしまうので、貼り付けられても書式が変わらないように、もしくはテンプレートの段階で書式を変更出来ないようにするにはVBAなどで設定すればそれは回避できるのでしょうか。

お手数ですが、よろしくお願い致します。

Aベストアンサー

#4です

>B列 半角数字
>C・H・K列 半角英字
B・C・H・K列を処理対象にしました
数値と英字の区別がありますが、考慮していません
B列ですが、数字以外の入力があった場合にどうする?
条件が曖昧なので、対象列に半角に変換できる全角文字・数字が入力された場合は、半角に変換するのままです

>共通:フォントサイズ 14 標準 文字黒・背景色なし
これはExcelの機能の「スタイル」をマクロで適応しているだけなので
簡単な「スタイル」の設定方法のみにします
[Alt]+[O](オーです)
[ALT]+[S]
スタイルの設定画面が開きます
スタイル名を「コピペ」としてください
(マクロの中でスタイル名「コピペ」を使用するように変更したため)
変更ボタンで各項目の設定をする
各項目の設定後、スタイルの設定画面で変更の必要の無いチェックボックスのチェックを外す
(今回は、フォントとパターン以外のチェックを外す)
追加で追加し、OKで終了してください

下記のコードを#4のものと入れ替える

Private Sub Worksheet_Change(ByVal Target As Range)
'指定範囲外は処理を中止
If Intersect(Target, Range("b:b,c:c,h:h,k:k")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Dim Rng As Range
'複数セルを選択している場合に単一セルごとに処理
For Each Rng In Target
'単一セルが処理対象なら処理開始
If Not Intersect(Rng, Range("b:b,c:c,h:h,k:k")) Is Nothing Then
Rng.Style = "コピペ"  'スタイル名コピペを適用(書式)
Rng = StrConv(Rng, vbNarrow)  '全角⇒半角変換
Rng.Value = Rng.Value  '文字数字⇒数値変換
End If
Next Rng
Application.EnableEvents = True
End Sub

必ず、スタイルを設定し、スタイル名をコピペとすること

#4です

>B列 半角数字
>C・H・K列 半角英字
B・C・H・K列を処理対象にしました
数値と英字の区別がありますが、考慮していません
B列ですが、数字以外の入力があった場合にどうする?
条件が曖昧なので、対象列に半角に変換できる全角文字・数字が入力された場合は、半角に変換するのままです

>共通:フォントサイズ 14 標準 文字黒・背景色なし
これはExcelの機能の「スタイル」をマクロで適応しているだけなので
簡単な「スタイル」の設定方法のみにします
[Alt]+[O](オーです)
[ALT]+...続きを読む

QエクセルのIF文で「NOT=」はどう書くのですか?また、>=や<=の場合の書き方を教えてください

タイトルのとおりです

IF文で下記の3つの書き方がわかりません。

NOT=は、<>?
0以外の場合は、A1<>0?

A1が0と同じか、大きい場合は
A1>=0?

なんだか、うまくいきません^^;

よろしくお願いいたします

Aベストアンサー

A1が・・・・・
A1 <> 0  0以外
A1 >= 0  0以上(0を含む)
A1 > 0   0より大きい(0は含まない)
A1 <= 0  0以下(0を含む)
A1 < 0  0未満
A1 = 0  0

=<,=> などの書き方は使えません。

Q<エクセル>「Aのセルには半角カナ」、「Bのセルには全角かな」と入力指定したい

 件名について教えてください。
「条件つき書式」では全角、半角の指定までできないようです。

マスタの申請書のような頻繁に使用する入力項目が決まっている書類に対して、
毎回書式を指定するのは不便を感じているので、教えてください。

 1行目 半角カナ
 2行目 全角かな
 3行目 半角数字  と、

カーソルをセルに合わせるとその通りに入力できるのが理想です。

Aベストアンサー

入力の漢字コントロールは#1の方の方法でできますが、1行目と2行目って
内容は同じですよね。
A1に半角カナを入力なら
A2=PHONETIC(A1)
として「書式」「ふりがな」「設定」で「ひらがな」を選択すれば
A1の半角カナを全角かなで表示してくれます。

QExcelの下側の空行を消したい

Excelのファイルを使いまわししている時、シートの中を一回削除して他のデータをコピー&ペーストで貼り付けた場合、Ctrl+Endキーを押すと、貼り付けたデータより、ものすごい下のセルに移動してしまいます。貼り付けたデータの右下のセルに移動させたいのですが…

貼り付けたデータの下側を選択して行削除しても変わりません。

わかりづらい説明で申し訳ありません。
対処法が分かるかたがおられましたら教えてください!

Aベストアンサー

セルに何も入力されていなくても、書式変更ほか、何らかの情報が含まれている場合、それが「最後のセル」として認識されてしまいます。
これを修正するためには、誤った最後のセル位置から正しい最後のセル位置までの間の行・列を削除してやる必要があります。
下記ページを参考にしてみて下さい。
http://support.microsoft.com/default.aspx?scid=kb;ja;405492

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;405492

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?


人気Q&Aランキング