エクセルでの入力について質問です。


入力ミスが無いように、別のシートで同じデータ入力を行い、
もし、入力ミスがあった場合に違う文字やセルを色などで
わかりやすいように表示する方法はありますでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/02/29 17:13:03
  • 終了:2012/03/07 17:15:03

ベストアンサー

id:SALINGER No.3

SALINGER回答回数3454ベストアンサー獲得回数9692012/03/01 15:59:33

2つのセルを比較してお互いに相手にない余分な部分を赤字にするマクロです。
ここではA1セルとB1セルを比較するサンプルです。
全て黒字なら同じということです。
1文字ずつのマッチングなので実用的ではない場合もありますがご容赦ください。
 

Sub テキストマッチング()
    Dim cel1 As Range
    Dim cel2 As Range
    Dim i As Long
    Dim j As Long
    Dim p As Long
    
    Set cel1 = Range("A1")
    Set cel2 = Range("B1")
    
    If Len(cel1.Value) = 0 Or Len(cel2.Value) = 0 Then Exit Sub
    
    cel1.Font.ColorIndex = 3
    cel2.Font.ColorIndex = 3
    
    p = 1
    For i = 1 To Len(cel1.Value)
        For j = p To Len(cel2.Value)
            If Mid(cel1.Value, i, 1) = Mid(cel2.Value, j, 1) Then
                cel2.Characters(j, 1).Font.ColorIndex = xlAutomatic
                p = j + 1
                Exit For
            End If
        Next j
    Next i
    
    p = 1
    For i = 1 To Len(cel2.Value)
        For j = p To Len(cel1.Value)
            If Mid(cel2.Value, i, 1) = Mid(cel1.Value, j, 1) Then
                cel1.Characters(j, 1).Font.ColorIndex = xlAutomatic
                p = j + 1
                Exit For
            End If
        Next j
    Next i
End Sub
id:sinkai200

これはすごいです!これで行数を数えて1行づつ処理していこうと思います。
本当に感謝します。

2012/03/02 17:02:16

その他の回答(2件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692012/02/29 17:53:25

セルの色を使う場合は、条件付き書式でできます。
http://www.eurus.dti.ne.jp/yoneyama/Excel/jyo-syo.html
この場合、「セルの値が」「等しい」という設定をして背景色を付けたりすればいいです。
 
違う文字の場合は、別のセルに

=IF(A1=B1,"○","×")

のような数式でセルを比較して結果を表示するようにします。

他1件のコメントを見る
id:SALINGER

どの文字かまでマッチさせるには数式では複雑になるので、
VBAやユーザー定義関数になってしまうと思います。

2012/03/01 08:14:35
id:sinkai200

VBAも利用可能なので教えていただけませんか?

2012/03/01 14:19:55
id:eiji_hate No.2

eiji_hate回答回数7ベストアンサー獲得回数12012/02/29 18:21:04

入力データを別のシートに記入されているのであれば、
入力セル自体をコンボボックスの選択セルにしてしまっては
いかがですか?

[入力規則2 【リスト2】別のシート]
http://www.eurus.dti.ne.jp/yoneyama/Excel/n-kis.htm

コンボボックスにする事により、入力のミスがなくなるはずです。

id:sinkai200

名簿なので毎回打ち込むことが違うので。。。
ご回答ありがとうございました!

2012/03/01 08:03:47
id:SALINGER No.3

SALINGER回答回数3454ベストアンサー獲得回数9692012/03/01 15:59:33ここでベストアンサー

2つのセルを比較してお互いに相手にない余分な部分を赤字にするマクロです。
ここではA1セルとB1セルを比較するサンプルです。
全て黒字なら同じということです。
1文字ずつのマッチングなので実用的ではない場合もありますがご容赦ください。
 

Sub テキストマッチング()
    Dim cel1 As Range
    Dim cel2 As Range
    Dim i As Long
    Dim j As Long
    Dim p As Long
    
    Set cel1 = Range("A1")
    Set cel2 = Range("B1")
    
    If Len(cel1.Value) = 0 Or Len(cel2.Value) = 0 Then Exit Sub
    
    cel1.Font.ColorIndex = 3
    cel2.Font.ColorIndex = 3
    
    p = 1
    For i = 1 To Len(cel1.Value)
        For j = p To Len(cel2.Value)
            If Mid(cel1.Value, i, 1) = Mid(cel2.Value, j, 1) Then
                cel2.Characters(j, 1).Font.ColorIndex = xlAutomatic
                p = j + 1
                Exit For
            End If
        Next j
    Next i
    
    p = 1
    For i = 1 To Len(cel2.Value)
        For j = p To Len(cel1.Value)
            If Mid(cel2.Value, i, 1) = Mid(cel1.Value, j, 1) Then
                cel1.Characters(j, 1).Font.ColorIndex = xlAutomatic
                p = j + 1
                Exit For
            End If
        Next j
    Next i
End Sub
id:sinkai200

これはすごいです!これで行数を数えて1行づつ処理していこうと思います。
本当に感謝します。

2012/03/02 17:02:16

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません