キーボードで1行をコピーして挿入
「マウスで行選択 → コピー → 右クリック → コピーしたセルの挿入」をなんとかキーボードで出来ないか試してみた。
まずコピーからの一連の流れは「メニューキー → C → メニューキー → E」でOK。行選択が分からないと同僚と試行錯誤・検索して「Shift+スペース」で一行選択出来る事を発見(Office XPだと出来ないのかも・・・)。
これでキーボードマクロでオッケーとマクロを記録して実行してみると、現在選択しているセル関係なしにマクロを記録したセルでしか処理が行われない。何この腐れマクロ機能。でも、テキストエディタとは違うのだからしょうがないのかも知れない。
出来ないものはしょうがないので、記録したマクロを編集することにする。VBAなんて触ったこともないのに。でも、まぁgoogle先生とhttp://salv.miscnotes.com/2002/03/05.phpを参考にしてなんとかする。
Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2007/10/23 ユーザー名 : XXXX ' ' Keyboard Shortcut: Ctrl+p ' '追加 Rows(Selection.Row).Select '削除 ' Rows("93:93").Select ' Range("C93").Activate Application.CutCopyMode = False Selection.Copy Selection.Insert Shift:=xlDown End Sub
これでめでたく「Ctrl + P」でカレント行をコピーすることが出来るようになった・・・んだけど、この後にマクロを記録するツールバーに「相対参照」ボタンがあるのに気づく。これはもしやと押してマクロを記録してみると・・・
編集したマクロと同じことが出来ました・・・ガクリ。
とりあえず、相対参照を押して記録したマクロのソースも載せておく。
Sub Macro4() ' ' Macro4 Macro ' マクロ記録日 : 2007/10/23 ユーザー名 : XXXX ' ' ActiveCell.Rows("1:1").EntireRow.Select ActiveCell.Activate Selection.Copy Selection.Insert Shift:=xlDown End Sub
Application.CutCopyMode = Falseは直前のコピー・カットの内容を取り消す指定らしいので、今回はなくても問題なし。