ここから本文です

Excelでのバーコード入力を行った後、照合結果のマクロについて質問します。

このエントリーをはてなブックマークに追加

アバター

質問者

ID非公開さん

2013/1/1612:14:44

Excelでのバーコード入力を行った後、照合結果のマクロについて質問します。

添付ファイルのExcelでセルA1、B1、C1、D1、E1とバーコードで入力し、F1(結果)でA1からE1の行のデータが全て同じならば、F1に「OK」と表示され、尚且つA1からF1の行が青色で塗りつぶされ、A2のセルに自動的に移動し、その作業を繰り返します。
また、A3、A4の行のように違うデータがあった場合、結果に「NG」と表示され、その行が赤色に塗りつぶされるようにしたいです。



Excelマクロが初心者の為、宜しくお願いします。

補足早速の回答ありがとうございます。ryouko47さんので、うまく動作しましたが、はじめからデータを1つ入れたらすぐに赤で塗りつぶしになりました。希望としてはA~Eまで入力したあとに結果の判定同時に塗りつぶしになればよいのですが、再度お願いできないでしょうか?

投稿画像

閲覧数:
1,764
回答数:
1

違反報告

ベストアンサーに選ばれた回答

ryouko47さん

編集あり2013/1/1615:58:22

CountBlankで5列1行が空白セルを1つも含まない場合に処理を行えるようにしました。

あるセル範囲の値がすべて同じであるかを確認する場合、Rangeオブジェクトの「Text」プロパティを使用すると便利です。このプロパティは通常、セルに表示されている文字列を取得するためのものですが、対象セル範囲のTextの値がすべて同じになっていない場合、「Null」を返却する性質を持っていますので、これを活用します。

■使用方法
該当シートのシートモジュールに下記サンプルコードを組み込んで下さい。

■サンプルコード
Private Sub Worksheet_Change(ByVal Target As Range)
Dim m_Target As Range

Set m_Target = Intersect(Target.EntireRow, Me.Range("A:E"))
If Not m_Target Is Nothing Then
If WorksheetFunction.CountBlank(m_Target) = 0 Then
Application.EnableEvents = False
If IsNull(m_Target.Text) Then
m_Target.Cells(1, 6).Value = "NG"
m_Target.Resize(, 6).Interior.ColorIndex = 3
Else
m_Target.Cells(1, 6).Value = "OK"
m_Target.Resize(, 6).Interior.ColorIndex = 34
m_Target.Cells(2, 1).Activate
End If
Application.EnableEvents = True
End If
End If
End Sub

アバター

質問した人からのコメント

2013/1/21 12:28:21

成功 完璧です。ありがとうございました。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル
  • このエントリーをはてなブックマークに追加

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する