みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

ExcelでVBAで選択範囲の値のみを挿入

始めて質問いたします。よろしくお願いします。

Excel2010にて作成された選択範囲(Sheet1)のセルを同じブックの別シート(Sheet2"A1:AB20")で参照しています。その参照部分をVBAにてコピーして、そのすぐ下("A21:AB40")に挿入していきます。自分で作成したコードでは、数式もコピーするので当然参照しているセルからずれてしまいます。(Sheet1)の数値はその度に変わりますので絶対参照にすることもできません。
作成したVBAに値のみをコピーするコードを追加したいので教えて下さい。

Private Sub CommandButton1_Click()
Sheets("Sheet2").Range("A1:AB20").Copy
Sheets("Sheet2").Range("A21:AB40").Insert Shift:=xlDown
Application.CutCopyMode = False
End Sub

このコードだと、参照している "A1:AB20" がテキストなどの場合はうまくいきます。数式が入っていると当然ですが、数式をコピーしてしまいます。

いろいろなサイトを見ていると

Paste:=xlPasteValues  が、値のみペーストだと書いてありますが、適応の仕方がわかりません。
Insert の場合はどうなるのかもわかりません。

同じような質問も探しましたが見つからなくて困っています。

よろしくお願いいたします。

投稿日時 - 2014-01-17 14:42:19

QNo.8433835

困ってます

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

>値のみをコピー

private sub CommandButton1_Click()
 worksheets("Sheet2").range("21:40").insert shift:=xlshiftdown
 worksheets("Sheet2").range("A21:AB40").value = worksheets("Sheet2").range("A1:AB20").value
end sub

ぐらいでいいです。

投稿日時 - 2014-01-17 15:08:24

補足

ご回答誠にありがとうございます。
早速試してみました。
値のみの複写も問題無く出来ています。そして続けてボタンを押しても問題無く出来ています。
ただ、もう一つだけお願いがあります。
最初のコードでセル範囲と同じだけのセルを挿入するからでしょうか、書式が反映されません。
参照範囲に一部書式を変更(セルの結合など)した部分があります。これも一緒に複写することは出来ないでしょうか?
値のみとか言っておきながら申し訳ありません。
ご伝授お願いいたします。

投稿日時 - 2014-01-17 16:57:51

お礼

出来ました。ご回答いただいたお二人のコードを交ぜて使ったらうまくいきました。
本当にありがとうございました。
また、よろしくお願いいたします。

投稿日時 - 2014-01-17 17:10:47

ANo.1

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

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

回答(2)

こちらでのコードの形ではいかがでしょうか?

Private Sub CommandButton1_Click()
 Sheets("Sheet2").Range("A1:AB20").Copy
 Sheets("Sheet2").Range("A21:AB40").PasteSpecial Paste:=xlPasteValues
 Application.CutCopyMode = False
End Sub

投稿日時 - 2014-01-17 16:06:42

補足

早速のご回答ありがとうございます。
試してみました。セル範囲のペーストはうまくいき、値のみが複写されますが、続けての挿入が出来ません。私の説明不足だと思いますが、ボタンを押す毎に挿入を続けたいのです。
でも、PasteSpecialの記述の仕方がわかりました。
あと、挿入(Paste)を続ける方法はありますか?

今回のご回答感謝いたします。

投稿日時 - 2014-01-17 16:49:08

お礼

出来ました。ご回答いただいたお二人のコードを交ぜて使ったらうまくいきました。
本当にありがとうございました。
また、よろしくお願いいたします。

投稿日時 - 2014-01-17 17:10:34

あなたにオススメの質問