« 列番号を英文字に変換してRangeプロパティに使う | トップページ | ワイルドカードで検索してファイル名を取得 »

2010年3月 3日 (水)

コピーしてコピーしたセルを挿入する

コピーしたセルをペーストするとき
既存のデータの後(下)に追加する場合は
そのままペーストすればいいのですが
既存のデータの前にコピーしたセルを入れたい時
セルを挿入してペーストします。

例えば、時系列のデータを順次コピペするような場合を想定すると
上から下へ古いのから新しいのまで並べる方法と
下から上へ古いのから新しいのまで並べる方法が
あると思います。

後者の方で新しいデータを上へ追加していくときに
コピー、セルを挿入、ペーストを使います。

手動でこの操作を行うには
まず、ある範囲を選択して、コピーします。
次に適当なセルで右クリックすると次のようなメニューが現れます。

Vba20100303a

[コピーしたセルを挿入]を選ぶと
セルを挿入してペーストするのを一気にできます。

コピーしたセルを挿入するサンプルコード:
Sub macro100303a()
'コピーしてコピーしたセルを挿入する例
   
    '1行5列の範囲をコピー
    Sheets("Sheet1").Range("AA1:AE1").Copy
    'シフト方向は、下へずれるならxlDown
    '右へずれるならxlToRight
    Sheets("Sheet2").Range("A1").Insert Shift:=xlDown
    Application.CutCopyMode = False
End Sub

データを下に下に追加していく場合は
最終行を求めるための手間が掛かり、
またペーストの位置を指定するために
変数を使用しなければいけないですが、

データを上に上に追加していく場合は
コピーする範囲の形が同じ(例えば、1行6列とか)なら
変数を使って範囲を指定する必要がないので
簡単です。

|

« 列番号を英文字に変換してRangeプロパティに使う | トップページ | ワイルドカードで検索してファイル名を取得 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: コピーしてコピーしたセルを挿入する:

« 列番号を英文字に変換してRangeプロパティに使う | トップページ | ワイルドカードで検索してファイル名を取得 »