• ベストアンサー

エクセルで連番を自動入力させるマクロ

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

質問者が選んだベストアンサー

  • ベストアンサー
noname#4564
noname#4564
回答No.2

  もっとよい方法があるかもしれないが、「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  

miluke
質問者

お礼

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

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

  • Traja
  • ベストアンサー率19% (107/546)
回答No.1

マクロじゃなきゃダメですか? その連番のセルに =IF(商品名のセル="","",自分の1個上のセル+1) でも良いかなって思いますが

miluke
質問者

お礼

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

関連するQ&A