VBAをはじめて一か月です。 今回、初めて作成していますがなかなかうまくいきません。
禁止文字をチェックするマクロを作成中ですが、下記のプログラムでエラーがあればメッセージは出せるんですが、そこのセルに色付けをするにはどうしたらいいのかわからず、相談しました。
Sub ボタン1_Click()
Dim check_cell
Dim dcount As Integer
For i = 1 To 5
dcount = 0
check_cell = Cells(i, 4).Value
cell_check (check_cell)
Next i
End Sub
Function cell_check(check_cell)
MsgBox "入力されている文字は" & check_cell
If check_cell Like "*[\]*" Then
dcount = dcount + 1
MsgBox "文字に\が入っています"
ElseIf check_cell Like "*[#]*" Then
dcount = dcount + 1
MsgBox "文字に#が入っています"
End If
If dcount > 0 Then
MsgBox "エラーがあります"
Else
MsgBox "エラーはありませんでした"
End If
End Function
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No.2さんの回答で、ご質問者の訴える
>すみません。早速、やってみましたが、エラーでもないのに塗りつぶされま>した。(全て真っ赤になりました。)
という症状は再現されませんでした。
No.2さんの回答のままでも、希望の結果となる動作はするはずですが、構文チェックするとエラーが出る箇所もあるので、作り直してみました。
ただし、「禁止文字○があります」と「エラーがあります」は重複しているので、「エラーがあります」の表示は割愛し、禁止文字のないときは「禁止文字はありません」と表示するようにしました。
Option Explicit
Sub ボタン1_Click()
Dim target As Range
Dim i As Integer
For i = 1 To 5
Set target = ActiveSheet.Cells(i, 4)
target.Interior.Pattern = xlNone
MsgBox target.Address & "に入力されている文字は '" & target.Value & "' です"
If exist_bad_char(target) Then
target.Interior.Color = vbRed
Else
MsgBox "禁止文字はありません"
End If
Next i
End Sub
Function exist_bad_char(ByVal target As Range) As Boolean
exist_bad_char = False
If target.Value Like "*[\]*" Then
exist_bad_char = True
MsgBox "禁止文字\があります"
End If
If target.Value Like "*[#]*" Then
exist_bad_char = True
MsgBox "禁止文字#があります"
End If
End Function
No.2
- 回答日時:
ヒマだったから。
'=======================================
Sub ボタン1_Click()
Dim check_cell
Dim dcount As Integer
For i = 1 To 5
dcount = 0
Cells(i, 4).Interior.Pattern = xlNone
check_cell = Cells(i, 4).Value
If cell_check(check_cell) = False Then
Cells(i, 4).Interior.Color = vbRed
End If
Next i
End Sub
'=======================================
Function cell_check(check_cell) As Boolean
'MsgBox "入力されている文字は" & check_cell
If check_cell Like "*[\]*" Then
dcount = dcount + 1
' MsgBox "文字に\が入っています"
ElseIf check_cell Like "*[#]*" Then
dcount = dcount + 1
' MsgBox "文字に#が入っています"
End If
If dcount > 0 Then
' MsgBox "エラーがあります"
cell_check = False
Else
' MsgBox "エラーはありませんでした"
cell_check = True
End If
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelでVBAを使用した際に、『...
-
SUM関数の範囲に#N/Aが...
-
もしセルが"#N/A"なら~をする...
-
Excelでエラー(#N/Aなど)値を...
-
自動改札のエラーって…
-
Eエクセルの計算方法で空欄を0...
-
送信エラー時、レポートメール...
-
VLOOKUPで求めた数値をさらにVL...
-
VLOOKUP関数についての質問です...
-
APEXをやっていたらこんなエラ...
-
VBAで「致命的なエラー」が出ま...
-
ACCESS VBA でのエラー解決の根...
-
改札エラーについて
-
■□■読み方■□■ #N/A, #VALUE!, ...
-
DoEvents
-
MDプレーヤーで"UTOC ERROR"...
-
EXCELマクロで☓400とでます
-
普段から使っている乗車券が改...
-
ナショナル 炊飯器 エラーH02
-
積立エラーのため、注文できま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでエラー(#N/Aなど)値を...
-
SUM関数の範囲に#N/Aが...
-
自動改札のエラーって…
-
VBAで「致命的なエラー」が出ま...
-
もしセルが"#N/A"なら~をする...
-
ExcelでVBAを使用した際に、『...
-
Eエクセルの計算方法で空欄を0...
-
VLOOKUP関数についての質問です...
-
送信エラー時、レポートメール...
-
VLOOKUPで求めた数値をさらにVL...
-
ACCESS VBA でのエラー解決の根...
-
システムエラーです:&H80004005...
-
EXCELマクロで☓400とでます
-
エクセルのエラー文について
-
改札エラーについて
-
相手のエラーによる出塁でも出...
-
APEXをやっていたらこんなエラ...
-
Suicaのモバイル決済で、 バス...
-
■□■読み方■□■ #N/A, #VALUE!, ...
-
Excel関数について
おすすめ情報
すみません。早速、やってみましたが、エラーでもないのに塗りつぶされました。(全て真っ赤になりました。)
エラーの場所を塗りつぶすようにしたいです。
よろしくお願いします。