
No.2ベストアンサー
- 回答日時:
こんにちは。
返事が遅くなってしまいました。
>入力規則だとデータ入力する際にコピーペーストされると適用外になってしまうため、おっしゃるようにマクロの方がいいのかもしれません。しかし、やり方がわからず・・・
このマクロ自体は、思っていたよりもてこずってしまいました。あまり、うまい出来栄えではないとは思いますが、コピーペーストも禁止できます。使用勝手は、入力規則とほぼ同じです。
考え方は、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
'------------------------------------------------
今オフィスのエクセル素人集団を集めて実験しましたところ、完璧です!!みな「おおーーー」と歓声を上げました!
本当に、本当にありがとうございます!早速使わせていただきます!
No.1
- 回答日時:
こんにちは。
考えてみました。元のご質問の内容が、揺らいでいるようですが、「20文字以内」「半角カタカナ」「機種依存する特殊文字不可」
というなら、おそらく、半角の数字とアルファベットは許可していると読みました。
=AND(LEN(A1)<=20,SUM((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>165)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<224)+(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>11552)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<11633))=0)
私個人としては、イベントドリブン型のマクロ処理のほうがよいような気がします。
ありがとうございます!確かに入力できず、いい感じです!
ただ、入力規則だとデータ入力する際にコピーペーストされると適用外になってしまうため、おっしゃるようにマクロの方がいいのかもしれません。しかし、やり方がわからず・・・(エクセル初級)。
どこに何をすればいいのかもしよろしければ教えてください。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで入力禁止文字を設定したい
その他(ソフトウェア)
-
エクセルの入力規則で半角英数字と一部記号のみ許可
Excel(エクセル)
-
エクセルで英数大文字のみの入力制限は可能ですか
Excel(エクセル)
-
-
4
エクセルでワークシート内に半角カタカナを入力させない方法
Excel(エクセル)
-
5
エクセルでセルの中身が漢字かどうか識別する方法は?
Excel(エクセル)
-
6
入力規則でスペース入力を禁止する方法
その他(コンピューター・テクノロジー)
-
7
エクセルで小文字入力不可にする方法について
Excel(エクセル)
-
8
Excel 条件によって入力禁止にする
Excel(エクセル)
-
9
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
10
こんにちは。Excelのデータ入力規則のことで教えてください。複数条件を指定したい場合の構文ですが、
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelについて
-
エクセルVB ポップアップウィ...
-
ドロップダウンリスト 自動表...
-
エクセルのリストについて
-
autocad 数値が表示されなくな...
-
アクセス2000 クエリ抽出でBet...
-
エクセル COUNTIF関数 検索条...
-
ドロップダウンリストを2列で...
-
エクセルのマクロの使い方
-
バーコードリーダーを使ってフ...
-
エクセルの質問です。 行数の最...
-
[MS-IME]Unicode文字の入力...
-
マクロ 入力規則は残し文字の...
-
バッククォートの入力方法
-
特殊漢字「はし」(橋のつくり...
-
エクセルで半角カナや特殊文字...
-
VBAの日付チェックでオーバーフ...
-
EXCEL VBAの入力規則で小数点桁...
-
excelのInputBoxで日本語入力OF...
-
エクセル 日付超過でポップアッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのリストについて
-
ドロップダウンリスト 自動表...
-
Excelについて
-
autocad 数値が表示されなくな...
-
VBAの日付チェックでオーバーフ...
-
エクセルで半角カナや特殊文字...
-
excelのInputBoxで日本語入力OF...
-
エクセル 日付超過でポップアッ...
-
ドロップダウンリストを2列で...
-
Excelで日報を自動で作成したい...
-
マクロ 入力規則は残し文字の...
-
【スプレッドシート】時間入力...
-
autocadLTで添え字文字
-
エクセルで入力規則(リスト)...
-
アクセス2000 クエリ抽出でBet...
-
エクセルVB ポップアップウィ...
-
pdfの文字入力で一文字ずつしか...
-
エクセル COUNTIF関数 検索条...
-
求人情報で「SAP入力可能な方」...
-
エクセルのマクロの使い方
おすすめ情報