Re: VBAで一連番号の書き込み
鴻池です。
"沙門" <gomi@ca2.so-net.ne.jp> wrote in message
news:bd5e71$f68$1@news01cg.so-net.ne.jp...
> 入力行に必要なデータをいれて、マクロを実行すると、
> 入力データを一覧表の一番下にコピーして、入力行をクリアーします。
> これはこれで良いのですが次の点の機能を加えたいのですがよろしく
元のコードを利用するなら,次のようなものでどうでしょうか。
> Sub 入力()
>
> range("B2").select
>
> Dim コピー行, レコード数, ペースト行 As Integer
> コピー行 = Selection.Row
> レコード数 = ActiveCell.Offset(2, 0).CurrentRegion.Rows.Count
> ペースト行 = ActiveCell.Offset(2, 0).Row + レコード数
>
> Range(Selection, Selection.End(xlToRight)).Copy
> Cells(ペースト行, 2).Select
> ActiveSheet.Paste
> Application.CutCopyMode = False
>
'ここに以下を追加
If Not IsNumeric(Cells(ペースト行 - 1, 1)) Then
Cells(ペースト行, 1) = 1
Else
Cells(ペースト行, 1).Value = Cells(ペースト行 - 1, 1) + 1
End If
> For i = 2 To 6
> Cells(コピー行, i).ClearContents
> Next i
>
> range("B2").select
>
> End Sub
ただし,私は上の
Range(Selection, Selection.End(xlToRight)).Copy
ようにEndを使うのは,極力避けています。データを消しても,記録として最終セル
として残るケースがあるので。(入力でEndを使い,クリアで For i = 2 To 6とセル
を指定しているのが,どうしてかなと思いますが。)
このマクロは,入力欄が空白でも追加されてしまうので,入力欄のチェックを追加し
たほうが,使いやすいと思います。
--
******************************
keizi kounoike
******************************
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735