こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA

アクティブ「セル」のある「行」をコピーし、そのアクティブセルの下へ挿入するマクロに、複数「セル」を選択している場合は、複数行を挿入するように追記するには、どうしたらいいでしょうか?

Sub Macro1()
Rows(1).Copy
ActiveCell.EntireRow.Insert Shift:=xlDown
Application.CutCopyMode = False
ActiveCell.EntireRow.Hidden = False
End Sub

よろしくお願いします。m(_ _)m

投稿日時 - 2014-01-08 10:16:18

QNo.8420107

困ってます

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

ご相談のマクロはご質問の「言葉の説明」とやってることが食い違ってますが,どっちを信じればいいのでしょうね。
 ご説明:アクティブセルの行をコピー
 マクロ:アクティブセルと関係なく1行目をコピー

 ご説明:アクティブセルの下に挿入
 マクロ:アクティブセルの行を下げて,元あった場所に挿入


また,もっと肝心なポイントとして,
>複数「セル」を選択している場合は、複数行を挿入する

これも言葉の説明が曖昧ですが,選択された複数セルに対して(選択されたセル範囲の一番下に行数分纏めてじゃなく)「その1つ1つのセルについてその行に挿入する」と言いたいのだとします。
だとしても,同じ行で例えばB3,D3とかのセルが選ばれてたら,それは「3行目のセルが選択されてる」として「1行挿入」すれば良いのか,それともご相談の言葉尻を信じて「2行挿入」したいのか,どっちでしょう。



とりあえず,失礼ですが「あなたの言葉のご説明がいずれも間違ってる」モノとして,次のようなマクロにしてみます。

sub macro2()
 dim h as range
 for each h in application.intersect(selection.entirerow, range("A:A"))
  rows(1).copy
  h.insert
 next
 application.cutcopymode = false
end sub



それとも「やっぱりホントはこういう事がしたかった」場合は,このご相談は解決で一回閉じる操作を行ってから,改めて(今度はちゃんとご自分のご説明を読み返してから)正しい内容で新しいご相談として投稿し直してみてください。

投稿日時 - 2014-01-08 13:58:03

お礼

回答ありがとうございました。
アドバイスいただいたように、質問の仕方をもう少し補足して投稿しなおします。

投稿日時 - 2014-01-08 15:40:05

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問