プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。Excelのことで教えてください。特定のセルへの入力時に、ある特定の文字の入力ができないように制御するということは可能でしょうか。
例えば、「あ」という文字を入れようとしたら入力できませんというコーションのようなものを出せればなお良いのですが。ご教示いただきますよう、お願いします。

A 回答 (7件)

1)禁則 という名前のシートを作ります。


2)禁則シートのA1セルから下へ入力できない文字を入れます。
3)禁則シートのB1セルに「特定のセル」の範囲を入力します。
4)入力するシートに戻って、シート名を右クリック→[コードの表示]
5)右側のエディタエリアに下記コードを貼りつけ。

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Cells(Target.Row, Target.Column), Range(Sheets("禁則").Cells(1, 2).Value)) Is Nothing Then
Exit Sub
End If
Dim kRow As Integer
kRow = 0
Do Until Sheets("禁則").Cells(kRow + 1, 1).Value = ""
kRow = kRow + 1
If InStr(Target.Value, Sheets("禁則").Cells(kRow, 1).Value) > 0 Then
MsgBox "[" & Sheets("禁則").Cells(kRow, 1).Value & "] は入力できない文字です", Buttons:=vbExclamation
Target.Value = ""
Exit Sub
End If
Loop
End Sub
「こんにちは。Excelのことで教えてくだ」の回答画像2
    • good
    • 1

No.2~No.6です。


添付図の反映が遅かったのでなんども同じ回答を入れてしまいました。
申し訳ありません。
    • good
    • 1

1)禁則 という名前のシートを作ります


2)禁則シートのA1セルから下へ入力してはいけない文字を入力します。
3)禁則シートのB1セルへ「特定のセル」の範囲を設定します。
4)入力するシートに戻り、シート名タブを右クリック→[コードの表示]
5)右側のエディタエリアに下記コードを貼りつけます。

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Cells(Target.Row, Target.Column), Range(Sheets("禁則").Cells(1, 2).Value)) Is Nothing Then
Exit Sub
End If
Dim kRow As Integer
kRow = 0
Do Until Sheets("禁則").Cells(kRow + 1, 1).Value = ""
kRow = kRow + 1
If InStr(Target.Value, Sheets("禁則").Cells(kRow, 1).Value) > 0 Then
MsgBox "[" & Sheets("禁則").Cells(kRow, 1).Value & "] は入力できない文字です", Buttons:=vbExclamation
Target.Value = ""
Exit Sub
End If
Loop
End Sub
「こんにちは。Excelのことで教えてくだ」の回答画像6
    • good
    • 1

1)禁則 という名前のシートを作ります


2)禁則シートのA1セルから下へ入力してはいけない文字を入力します。
3)禁則シートのB1セルへ「特定のセル」の範囲を設定します。
4)入力するシートに戻り、シート名タブを右クリック→[コードの表示]
5)右側のエディタエリアに下記コードを貼りつけます。

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Cells(Target.Row, Target.Column), Range(Sheets("禁則").Cells(1, 2).Value)) Is Nothing Then
Exit Sub
End If
Dim kRow As Integer
kRow = 0
Do Until Sheets("禁則").Cells(kRow + 1, 1).Value = ""
kRow = kRow + 1
If InStr(Target.Value, Sheets("禁則").Cells(kRow, 1).Value) > 0 Then
MsgBox "[" & Sheets("禁則").Cells(kRow, 1).Value & "] は入力できない文字です", Buttons:=vbExclamation
Target.Value = ""
Exit Sub
End If
Loop
End Sub
「こんにちは。Excelのことで教えてくだ」の回答画像5
    • good
    • 1

1)禁則 という名前のシートを作ります


2)禁則シートのA1セルから下へ入力してはいけない文字を入力します。
3)禁則シートのB1セルへ「特定のセル」の範囲を設定します。
4)入力するシートに戻り、シート名タブを右クリック→[コードの表示]
5)右側のエディタエリアに下記コードを貼りつけます。

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Cells(Target.Row, Target.Column), Range(Sheets("禁則").Cells(1, 2).Value)) Is Nothing Then
Exit Sub
End If
Dim kRow As Integer
kRow = 0
Do Until Sheets("禁則").Cells(kRow + 1, 1).Value = ""
kRow = kRow + 1
If InStr(Target.Value, Sheets("禁則").Cells(kRow, 1).Value) > 0 Then
MsgBox "[" & Sheets("禁則").Cells(kRow, 1).Value & "] は入力できない文字です", Buttons:=vbExclamation
Target.Value = ""
Exit Sub
End If
Loop
End Sub
「こんにちは。Excelのことで教えてくだ」の回答画像4
    • good
    • 1

1)禁則 という名前のシートを作ります


2)禁則シートのA1セルから下へ入力してはいけない文字を入力します。
3)禁則シートのB1セルへ「特定のセル」の範囲を設定します。
4)入力するシートに戻り、シート名タブを右クリック→[コードの表示]
5)右側のエディタエリアに下記コードを貼りつけます。

Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Cells(Target.Row, Target.Column), Range(Sheets("禁則").Cells(1, 2).Value)) Is Nothing Then
Exit Sub
End If
Dim kRow As Integer
kRow = 0
Do Until Sheets("禁則").Cells(kRow + 1, 1).Value = ""
kRow = kRow + 1
If InStr(Target.Value, Sheets("禁則").Cells(kRow, 1).Value) > 0 Then
MsgBox "[" & Sheets("禁則").Cells(kRow, 1).Value & "] は入力できない文字です", Buttons:=vbExclamation
Target.Value = ""
Exit Sub
End If
Loop
End Sub
「こんにちは。Excelのことで教えてくだ」の回答画像3
    • good
    • 1

メニューのデータの所からデータの入力規則で設定できますね。

    • good
    • 1

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

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


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