• ベストアンサー

列に番号を打つ

セルA3から1から順番に番号を付けようと思います。(A3=1,A4=2,A5=3,・・・・・・・)条件はこんな条件です。B列に何かデーターが入った時に(データーがない時は隣のA列は空白です)隣のA列に番号が付く。最初にデーターが入るのはセルB3から順番に下に入っていきます。データーはどこまで入るか決まっていません。A3のセル(=if(B3="","",A2+1))に関数を書くことが出来ません。(A列のセルにデーターがあるとB列にデーターがうまくコピーされません)つまりB3にデーターが入ってからA3に番号を打つようにVBAでよろしくお願いします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

Sheet1で行うとして、Sheet1のコードウインドウに貼り付けます。B列の入力は順に連続して行うとしています。 B列に複数セルを貼り付けても機能するはずです。B列のセルを消去すればその横のA列セルも未入力になります。 こういうことだったのでしょうか。ご参考に。 Private Sub Worksheet_Change(ByVal Target As Range)   Dim rg As Range 'セル   On Error GoTo ErrorHandler   Application.EnableEvents = False   For Each rg In Target     'B列、3行目より下     If rg.Column = 2 And rg.Row >= 3 Then       If rg.Text <> "" Then         rg.Offset(0, -1) = rg.Row - 2       Else         rg.Offset(0, -1) = ""       End If     End If   Next   Application.EnableEvents = True   Exit Sub ErrorHandler:   Application.EnableEvents = True End Sub

kkazumi
質問者

お礼

いつもいつも、ありがとうございます。思ったとおり出来ていました。また、よろしくお願いします。・・・カズミ

その他の回答 (1)

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

質問の意味が1点捉えにくくて。 (1)入力前当初はB列は全て空白ですよね。 (2)B列にデータが入力されると、その瞬間に    その同行(ぎょう)A列に番号が現われる    ようにするのですよね。 (3)例えばB5に、B列では2番目に、データ入力があった   としてA5セルに入れる番号は、3ですか2ですか    か。    3のタイプならA5セルに=if(b5="","",row()-3+1)   ではどうですか。(row()の()内は何も入れない    こと)     

kkazumi
質問者

お礼

やっぱり、A列のセルにデーターがあるとB列にデーターがうまくコピーされません。(=if(b5="","",row()-3+1))VBAで問題が解決しました。どうもありがとうがざいました。

関連するQ&A

専門家に質問してみよう