人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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


●質問者: リリー
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER

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

違う文字の場合は、別のセルに

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

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


リリーさんのコメント
どの文字が違うかまでわかるようにできるでしょうか? IF関数を使うのが頭にありませんでした、難しく考えすぎてました。。。 ありがとうございます!

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

リリーさんのコメント
VBAも利用可能なので教えていただけませんか?

2 ● eiji_hate

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

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

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


リリーさんのコメント
名簿なので毎回打ち込むことが違うので。。。 ご回答ありがとうございました!

3 ● SALINGER
ベストアンサー

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

リリーさんのコメント
これはすごいです!これで行数を数えて1行づつ処理していこうと思います。 本当に感謝します。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ