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

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

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

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

よろしくお願いします。

A 回答 (13件中1~10件)

No.10 の追補



書式設定の「0」の数ですが、必ず14桁と決まっているなら足りない分を「0」で埋めるので14個で良いのですが、「0」で詰めたくない時は1個でも「○E+○」のような表示にはなりません。
    • good
    • 0
この回答へのお礼

やりたい動きが出来ました。これで大幅に入力時間が短縮されそうです。
頂いたBVAをかみ砕くのに時間がかかりそうですが、理解したいと思います。
在庫数入力の列を変更するなどトライしてみます。

丁寧なご対応ありがとうございました。

お礼日時:2017/12/18 19:30

No.3・5・6です。



>全体を文字列としてEXCELに取り込むのも難があります。

一案ですが、どこか使っていない列全体のセルの表示形式をユーザー定義から
00000000000000
のように必要桁数だけ「0」を並べ、B列すべてをコピー → 先ほどの列の1行目を選択 → 右クリック → 形式を選択して貼り付け → 「値」を選択しOK
次にその列全体を選択 → コピー → そのままB列に貼り付け

これでおそらくそのままの桁表示になりますので、前回のコードでお望みの動きにならないでしょうか?

※ A1セルの表示形式もユーザー定義から必要桁数分だけ「0」を並べておいてください。m(_ _)m
    • good
    • 0
この回答へのお礼

CSV取込の所まで教授いただき、ありがとうございました。
望みの動きが出来ました。

丁寧に対応していただき、感謝します。
ありがとうございました。

お礼日時:2017/12/18 19:32

No.9・10 の補足



No.10 のようにしておくと
No.9 の「If Format(Cells(1, 1).Value, "@") = Format(Cells(行, 2).Value, "@") Then」は
「If Cells(1, 1).Value = Cells(行, 2).Value Then」でも済むようになります。
    • good
    • 0

セルの表示も14桁の数字の方が良いですよね


--------------------------------------------------------
Private Sub Worksheet_Activate()
Range("A1,B:B").NumberFormatLocal = "0"
End Sub
--------------------------------------------------------
これを組み込むと対象のシートがアクティブになると勝手に書式を変えてくれるので使いやすいと思います。
    • good
    • 0

それでは以下のようなものではダメですか?


--------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim 行 As Long
Select Case Target.Column
Case 1
If Target.Row = 1 Then
For 行 = 7 To Cells(Rows.Count, 2).End(xlUp).Row
If Format(Cells(1, 1).Value, "@") = Format(Cells(行, 2).Value, "@") Then
Cells(行, 3).Select
Exit Sub
End If
Next
End If
MsgBox ("該当が有りませんでした")
Application.EnableEvents = False
Cells(1, 1).Select
Selection.ClearContents
Application.EnableEvents = True
Case 3
Application.EnableEvents = False
Cells(1, 1).Select
Selection.ClearContents
Application.EnableEvents = True
End Select
End Sub
--------------------------------------------------------
    • good
    • 0

A1セルとB列の書式設定は次のどれでしょうか?


①「@」(文字列)
②「00000000000000」(「0」を14個)
③ その他(具体的に提示してください)
    • good
    • 0
この回答へのお礼

CSVファイルをEXCELにそのまま取り込んだため、A列、B列ともE表示の数値です。表示形式を文字列に変えてみましたがE表示されます。

検索ボックスにてバーコードスキャナーでGS1コード入力すると、E表示のままのセルを検索することはできました。

A1はバーコードスキャナーでGS1コード入力するのでセル内は”1.49874E+13”のように表示されます(右寄りなので数値だと思います)
B列はやはり1.49871E+13で右寄りに表示されます
いずれも上部の表示は14桁の数字で表示されます。

お礼日時:2017/12/18 01:06

すみません。

No.5へのお礼について疑問があります。
JANコードは標準で13桁、短縮で8桁のはずですが、事例では14桁の物が提示されています。JANコードではないのでは?
    • good
    • 0
この回答へのお礼

失礼しました、GS1コードでした

お礼日時:2017/12/18 00:14

No.3・5です。



セルの表示はどのようになっていますか?
仮に実データが「14987233008665」だと「1.49872E+13」のようになっていませんか?

数式バーではちゃんと表示されていてもExcel的には別物とみなしてしまうと思います。

試しにセルの表示形式を「文字列」にし、
「E」なしのすべての桁数表示にしてみたらどうなりますか?m(_ _)m
    • good
    • 0
この回答へのお礼

表示形式を文字列にしましたがE表示になります。
仮に実データを123と入力し、A1に123と入れたら うまくいきました。
B列のみE表示されないように考えます。
実際のデータシートかCSVからEXCELに取り込んだもので、他の列には価格などもあるため、全体を文字列としてEXCELに取り込むのも難があります。
本題からずれてしまいましたが、データ形式を解決すればお示しのVBAは機能することが確認できました。

お礼日時:2017/12/18 01:22

No.3です。



単純にシートモジュールだけで大丈夫だと思います。

画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
前回のコードをコピー&ペースト(Private Sub・・・~End Subまで)

Excel画面に戻り(VBE画面を閉じて)A1セルにデータを入力してみてください。
C列に飛びますので、C列に何らかのデータを入力するとA1セルに戻ります。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。
A1にB列にあるJANコードを入力しても”該当なし”となります。

私の質問の仕方がよくなっかったのかもしれません。

具体的には
B6にタイトル”商品コード”
B7~下にB2559まで、JANコードがあります。
それぞれのJANコードの横(C列)に在庫数を入力することが目的です。

例えば
A1にJANコード”14987233008665”を入力した場合
”14987233008665”がB10にあった場合はC10のセルが選択され、入力待ちになり、
C10に在庫数の3を入力したら、A1にアクティブセルがもどり、次の入力まちになる

教えていただいたVBAを理解しようと頑張っていますが、時間がかかりそうで、先ずはお礼まで。

お礼日時:2017/12/17 22:43

念の為に確認ですが


① B列には重複は無いと考えて良いのでしょうか?
② B列の最後は2000の固定の方が良いのでしょうか?
③ B列にタイトル行は無いと考えて良いのでしょうか?
④ A1セルに戻った時はA1セルを自動クリアした方が良いのでしょうか?
⑤ C列に書き込んだら未確認でA1セルを選択するで良いでしょうか?(毎回確認だと作業化されてしまって習慣で結局確認ボタンを押してしまう事になってしまって手間なだけになる事が多いので…)
    • good
    • 0
この回答へのお礼

①重複はありません
②現在B7からB2559までにデータがあります。今後増えますが最大4000までです
③B6に”商品コード”というタイトルがあります。(B1~B5は空白)
④A1は自動クリアした方がよいです
⑤未確認でA1を選択することでよいです

よろしくお願いします

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

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

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


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