OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

関数入りの行挿入。。。上書きではなく挿入でした。。。

  • 暇なときにでも
  • 質問No.114211
  • 閲覧数104
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 67% (35/52)

コピー用に、関数入りの行を一番下(65535行)にとってあります。
これについて。。。
関数入りの行を挿入したいときは?の質問に、
下記のようなマクロを作成してくださった方がいらっしゃるのですが、
間に挿入されるのではなく、上書きされて、前のデータが消えてしまいます。
例えば、3行目と4行目の間…5行目と6行目の間…として、
挿入で使いたいときは、
どこをどのように直したら良いか、教えてください。
空白行がたくさんあって、その行は詰めていただいて良いです。
うーん…もしかして…意味不明ですか?


'一番下の行コピー
Rows(65535).Copy

'現在のカーソル位置の一番左のA列へ移動
Cells(ActiveCell.Row, 1).Select

'そこに貼り付け
ActiveSheet.Paste

'コピーモード解除
Application.CutCopyMode = False
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル8

ベストアンサー率 37% (13/35)

貼り付けと挿入のソース上の違いは
貼り付けが Paste なのに対して
挿入は Insert なだけです。

下を読んで解らない時はもう一度聞いてください。

最終行に値が有る状態で行の挿入を行うとエラーが出てしまいます。
そこで、挿入の前に一行削除する必要があります。

例1)挿入する行を選択している事が前提です。
sub 例1()
Dim del_row As Long
'↓削除できる行の検索(A列を必須入力列としています。)
del_row = Range("A65536").End(xlUp).Row + 1
'↓不要行の削除(Shift:=xlupは削除後上に詰めるを意味します。)
Rows(del_row).Delete Shift:=xlUp
'↓最終行のコピー
Rows(65535).Copy
'↓コピー内容の挿入(挿入する列が選択されている事が前提です)
Selection.Insert Shift:=xlDown
'↓コピーモードの終了
Application.CutCopyMode = False
end sub

例2)例1と似ていますが、選択行の下に挿入します。
Sub 例1()
Dim del_row As Long
del_row = Range("A65536").End(xlUp).Row + 1
Rows(del_row).Delete Shift:=xlUp
Rows(65535).Copy
'↓コピー内容の挿入(Offset(1,0)で選択行の1行下に設定)
Selection.Offset(1, 0).Insert Shift:=xlDown
Application.CutCopyMode = False
End Sub
お礼コメント
iillyy

お礼率 67% (35/52)

例1の方が、イメージにピッタリでした。
うまく動いてくれて、感激。
ご丁寧なコメントも助かりました。
ありがとうございました。
また機会がありましたらお世話してください。
投稿日時 - 2001-08-05 16:13:54
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ