
エクセルVBAで売上帳を作っています。
シートを2つ使い、sheet1を入力用、sheet2を売上帳保存版として作っています。
今sheet2では、
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'イベント発生を一時止める
On Error GoTo line 'エラーが発生したらline:へ飛ぶ
If Not Intersect(Target, Range("売上帳最終行").Offset(-1, 0)) Is Nothing Then '入力セルが「売上帳最終行」の1行上だったら以下を作動
Range("売上帳最終行").Offset(-1, 0).EntireRow.Insert '入力セルの上に1行挿入
Range("売上帳最終行").Offset(-2, 0).Value = Range("売上帳最終行").Offset(-1, 0).Value '挿入された行に入力値を代入
Range("売上帳最終行").Offset(-1, 0).ClearContents '値が重複する最終行の1行上をクリア
r = Range("売上帳最終行").Row - 1 '売上帳最終行の1行上の行番号取得しrに代入
Range("M4").AutoFill Destination:=Range("M4:M" & r) 'M4セルから最終行の1行上までM4セルの式をAutoFill
End If
line:
Application.EnableEvents = True 'イベント発生を回復
End Sub
というコードで、下から2行目に入力されると自動的に1行増えるという表になっています。
今回入力用のsheet1に複数行入力しsheet2にコピーしようとした場合、sheet2の最終行の2行手前で納まった場合は、問題ないのですが、それをオーバーすると、表からはみだしてコピーされます。
コピーする際に、sheet1での入力行数と同じだけ、sheet2で行挿入させるにはどうすればよいですか?
長文でしかも分かりにくい質問ですみません。
不可解なところは指摘していただけたら捕捉させていただきます。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
非常に単純な方法ですが
>Range("売上帳最終行").Offset(-1, 0).EntireRow.Insert '入力セルの上に1行挿入
この行の後に、sheet2に対し
sheet("sheet2").Range("売上帳最終行").Offset(-1, 0).EntireRow.Insert '入力セルの上に1行挿入
としておけば、sheet1で挿入されたタイミングでsheet2にも挿入が行われて、
sheet2の行数が増えるため、コピーしても収まると思いますが。
(ただし、sheet2に"売上帳最終行"か、それに対応するセルが必要になります)
回答ありがとうございます。
この方法は、sheet1でも自動で行を挿入するようにしたうえで、sheet1での入力時と同時に、sheet2で同じだけの行を挿入させるということですか?
出来れば、コピーの時点での、sheet2の自動挿入の方法が知りたいのです。
わがまま言ってすみません。
でもそういう方法もあるということは、思いつかなかったので、勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel グラフのプロットからデ...
-
EXCELで最後の行を固定
-
エクセル マクロで数値が変っ...
-
エクセルで特定の文字列が入っ...
-
エクセルの列幅以上の文字列を...
-
罫線の斜線を自動で引くマクロ
-
エクセル マクロ オートフィ...
-
【マクロ】book1からbook2への...
-
VBAで色の付いているセルの行削除
-
結合されたセルをプルダウンの...
-
エクセル マクロ等を利用した各...
-
excel 小さすぎて見えないセル...
-
Excel 時刻の並び替え
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルVBA 最終行を選んで並...
-
excel セルの結合を条件付で自...
-
エクセル、全ページ一括編集の方法
-
エクセル 時間の表示形式AM/PM...
-
AのセルとB行を比較して、一致...
-
エクセルで特定の文字から改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 上下で列幅を変えるには
-
【Excel関数】UNIQUE関数で"0"...
-
Excel グラフのプロットからデ...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセル マクロで数値が変っ...
-
excel 小さすぎて見えないセル...
-
結合されたセルをプルダウンの...
-
特定の文字がある行以外を削除...
-
Excelのフィルター後の一番上の...
-
エクセル マクロ オートフィ...
-
Excelで非表示のセルをとばして...
-
エクセルで特定の文字列が入っ...
-
罫線の斜線を自動で引くマクロ
-
A1に入力された文字列と同じ文...
-
エクセルVBA 最終行を選んで並...
-
EXCELで最後の行を固定
-
Excel ウインドウ枠の固定をす...
-
Excel 時刻の並び替え
-
電話番号の入力方式が違うデー...
-
VBAで色の付いているセルの行削除
おすすめ情報