- ベストアンサー
オートフィルをVBAで実行したいのです。
オートフィルをVBAで実行したいのです。 表(例:B2:E○)があります。○は毎回数字が変化します。 (商品仕入があれば”行”が増え、売上れば減るため) その表のA列に、A2から列方向に1から連番の数値をオートフィルで最終行まで数値を入れたいのですが、コードを教えていただけませんでしょうか? 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >A2から列方向に1から連番の数値を A2、A3、A4 … と連番を入れていくんですよね? でしたら、それは 「列方向」 ではなく 「行方向」 です。 いずれにしても、そういうことでしたら わざわざ VBAを使わなくても関数でできますよ。 A2 に↓ ---------------------- =IF(B2="","",ROW()-1) ---------------------- と入れて、これ以上はデータは増えないだろうという行まで オートフィルで数式をコピーしてください。 B列にデータが入っている行のみ、A列に連番が入ります。 途中の行を削除しても連番が飛ぶことはありません。 行を削除したり、追加した時点で、 瞬時に(!)連番が振り直されます。 ぜひお試しください。 どうしても VBAでやりたい、ということであれば ↓な感じでしょうか? (該当するシートのコードウィンドウに貼り付けてください) ------------------------------------------ Sub test() Dim i As Long Dim myLastRow As Long 'B列の最終行を取得 myLastRow = Range("B65536").End(xlUp).Row If myLastRow > 1 Then For i = 2 To myLastRow Cells(i, "A").Value = i - 1 Next i End If End Sub ------------------------------------------
お礼
AloneAgain 様 早速のご回答ありがとうございました。 1).反省 > A2、A3、A4 … と連番を入れていくんですよね? そうです。それを「行方向」と呼ぶとは、全く 知らずに失礼しました。今後はもう、間違えません。 2).VBAを使わなくても関数でできますよ。 驚きました。大変スマートな方法で、ここに質問したりすること事態、恥ずかしいことだったかもしれませんが、私はその便利さを実感して目がパチクリしました。 2).VBAで行うコード 期待どおりに動きました。コードの意味は理解できました。自作の在庫管理マクロは、2)のやり方でOKとします。 時間を割いていただき、ありがとうございました。 感謝、感謝です。