プロが教えるわが家の防犯対策術!

商品名を入力すると連番が自動的に付与される
マクロを作成したいのですが。
よろしくお願いします。

連番商品名
1ABC
2DEF

A 回答 (3件)

 


もっとよい方法があるかもしれないが、「2列め(B列)に商品名を入力すると1列め(A列)に自動連番を振る」マクロの一例。↓

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Len(Target.Value) <> 0 Then
If Target.Row <> 1 Then
Cells(Target.Row, 1).Value = Cells(Target.Row - 1, 1).Value + 1
Else
Cells(Target.Row, 1).Value = 1
End If
End If
End Sub
 
    • good
    • 0
この回答へのお礼

お礼が遅くなってすみません。
試してみたところ、上手くいきました♪
でも、データを消去するときに、
「実行時エラー13:型が一致しません。」
というのが表示されてしまいます。
どうにかならないでしょうか??

お礼日時:2003/05/02 09:26

私に言わせれば問題のポイントが捉え難いです。


(A)商品名を入力すると---商品名と連番は予め決まっていてそれを索引して表示するのでしょうか。
それなら連番は大きな意味を持ちません。
マクロに拘らず、関数式のVLOOKUP関数で出きるでしょう。
VBA(マクロ)でも
Sub test03()
Cells(1,2) = WorksheetFunction.VLookup(Range("a1"), Range("c1:d3"), 2)
End Sub
が使えました。
(B)連番が---単純に最終番号に1加えたものを振って
表示するのでしょうか。即ち番号はシステムに商品名が入力された順に任せて振って良いのでしょうか。
また同じ商品名はB列に入力されることはないのですか。もし同じ商品名がB列に入力されるのなら、当然、前に振った番号と同じ番号を当行にも表示するのでしょうね。
(C)商品名を入力すると---商品名が入力されると、「即座に」A列に番号を振る必要があるのでしょうか。
    • good
    • 1

マクロじゃなきゃダメですか?



その連番のセルに
=IF(商品名のセル="","",自分の1個上のセル+1)
でも良いかなって思いますが
    • good
    • 0
この回答へのお礼

お礼が遅くなりましてすみません。。。
ありがとうございました。参考になりました。
でもやっぱりマクロでという上司からのお達しが。。

お礼日時:2003/05/01 14:37

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