- ベストアンサー
列に番号を打つ
セルA3から1から順番に番号を付けようと思います。(A3=1,A4=2,A5=3,・・・・・・・)条件はこんな条件です。B列に何かデーターが入った時に(データーがない時は隣のA列は空白です)隣のA列に番号が付く。最初にデーターが入るのはセルB3から順番に下に入っていきます。データーはどこまで入るか決まっていません。A3のセル(=if(B3="","",A2+1))に関数を書くことが出来ません。(A列のセルにデーターがあるとB列にデーターがうまくコピーされません)つまりB3にデーターが入ってからA3に番号を打つようにVBAでよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の意味が1点捉えにくくて。 (1)入力前当初はB列は全て空白ですよね。 (2)B列にデータが入力されると、その瞬間に その同行(ぎょう)A列に番号が現われる ようにするのですよね。 (3)例えばB5に、B列では2番目に、データ入力があった としてA5セルに入れる番号は、3ですか2ですか か。 3のタイプならA5セルに=if(b5="","",row()-3+1) ではどうですか。(row()の()内は何も入れない こと)
お礼
やっぱり、A列のセルにデーターがあるとB列にデーターがうまくコピーされません。(=if(b5="","",row()-3+1))VBAで問題が解決しました。どうもありがとうがざいました。
お礼
いつもいつも、ありがとうございます。思ったとおり出来ていました。また、よろしくお願いします。・・・カズミ