- ベストアンサー
エクセルで連番を崩さずに入力、削除
DVD録画したものを「DVD映画・ドラマ一覧」と自分の持っている「書籍一覧(種類別分類)」をエクセルで管理しています。Aセルに番号、Bセルに題名 カタカナ半角(ソートするのに楽なので)、Cセルに題名、Dセルに年、Eセルに国名・・・としています。そのために、作品が増えたり減ったりするたびに、番号が崩れてしまいます。番号を崩さずに、入力及び削除したいのですが。。。いい方法はありますか??
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
連番が A 列とするなら、A1 セルに次の数式を入力して最終データまで フィルでコピー。 =ROW() 見出し行などがあって、 ・2行目からデータが始まる =ROW()-1 ・3行目からデータが始まる =ROW()-2 といった感じで。
その他の回答 (2)
- kawajisan
- ベストアンサー率30% (53/171)
A1=ROW() 下にフィル。こうすればA列の番号は連番になる。 行を削除しても連番、挿入したら空きになるが式をフィルすれば連番。
お礼
回答、有り難うございました。 ANo.1の方と同じでうまく出来ました。有り難うございました。
<A> 1__1 2__2 3__3 4__4 5__6 6__7 7__8 例えば、5行目が削除されると、このように連番が崩れると思います。 この場合、Renumber というマクロを走らせると効率よく修正できます。 次のマクロは開始行以外は、非連番のみを修正します。 もちろん、初期値、開始行は実情に合わせて設定する必要があります。 Option Explicit Const 初期値 = 1 Const 開始行 = 1 Public Sub ReNumber(ByVal S As Integer, ByVal E As Integer) Dim I As Integer Dim N As Integer If S = 開始行 Then Me.Cells(1, 1) = 初期値 S = S + 1 End If For I = S To E N = Me.Cells(I - 1, 1) + 1 If Me.Cells(I, 1) <> N Then Me.Cells(I, 1) = N End If Next I End Sub Private Sub CommandButton1_Click() ReNumber 1, 7 End Sub 問題は、自動的にマクロを起動すること。 その際に、修正開始位置と修正終了位置の引数の与え方が課題。 Private Sub Worksheet_Change(ByVal Target As Range) End Sub 自動的にマクロを起動は、Worksheet_Changeイベントを利用すれば良いと思います。 修正開始位置と修正終了位置の引数の与え方は、割愛します。
お礼
早速の回答、有り難うございました。遅くなってしまって済みません。私にはちょっと難しくて、理解が出来ませんでした。折角回答いただいたのに、申し訳ありませんでした。
お礼
早速の回答有り難うございました。お礼が遅くなってしまって、申し訳ありませんでした。 見出し行などがあって、 ・2行目からデータが始まる =ROW()-1 でやったところ、うまく出来ました。有り難うございました。