dポイントプレゼントキャンペーン実施中!

A1に文字列を入力します
その文字列を検索して、同じ文字列があるセルへ移動させたい。

具体的には
B1からB2000にデータ(JANコード)があります。
A1にバーコードリーダでJANコードを入力します。
B列から該当JANコードを検索し、そのセルの1つ右のセル(C列)に移動させたいのです。

その選択された”C列セル”にデータを入力し、A1に戻り、再び別のJANコードを入力するという作業を繰り返します。

よろしくお願いします。

A 回答 (13件中11~13件)

こんばんは!



A1セルは手入力ですね?
一例です。
シートモジュールにしてください。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Intersect(Target, Range("A1,C:C")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Column = 1 Then
If .Value <> "" Then
Set c = Range("B:B").Find(what:=.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
c.Offset(, 1).Select
Else
MsgBox "該当なし"
.Select
End If
End If
Else
Range("A1").Select
Range("A1").ClearContents '//★//
End If
End With
End Sub

※ C列入力後、A1セルを選択するようにしていますが、
その時点でA1セルに入っていたデータは消去するようにしています。
そのまま残したい場合はコード内の「★」の行を消してください。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。
シートモジュール、Private Subのところでつまづいていますが、頑張ってみます。

sub call()
call Worksheet_Change(ByVal Target As Range)
End sub

を同じモジュールに書いて、callマクロから実行しようとしたのですが.....

お礼日時:2017/12/17 21:26

>A1にバーコードリーダでJANコードを入力します。


これがA1である必然性はなんですか?
検索ダイアログに入れればそのまま
検索してもらえそうに思いますが。
    • good
    • 0
この回答へのお礼

作業のしやすさなのですが、検索ダイヤログを使用した場合、目的のJANセルに移動し、そこから入力するための隣のセルに移動し、入力後、次の作業のために検索ダイアログをクリックします。その時、検索ダイアログに残った前のデータを消してから、次のJANを入力します(上書きできないので)。
何百回とこの操作を繰り返すので、キータッチ回数を少しでも減らしたいのです。
そこで、任意のセルに(例えばA1)にリーダーで入力し、目的のセルにデータを入力した後、A1に戻る(戻るボタンなどで)ことができれば、気にすることなく次のバーコードリーダー入力(上書き)できるのではないかと考えました。

お礼日時:2017/12/17 16:30

マクロ(VBA)は使っても良いのでしょうか?

    • good
    • 0
この回答へのお礼

VBAを使って、検索された目的のセルでデータを入力後、ボタンでA1に戻るようなイメージです。

お礼日時:2017/12/17 16:34

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

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


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