ノートパソコンでExcelを使う際、面倒な操作の筆頭は、シートのコピーだと感じています。
マウスを使っているときには、[Ctrl]キーを押しながらドラッグアンドドロップが、やっぱり便利だと思うのですけれど、ノートパソコンでマウスを使っていない場合に、これがなかなか面倒です。
シートをコピーしようとして、[Ctrl]キーを押しっぱなしにしてシートのドラッグを開始したものの、うっかり[Ctrl]キーから指を先に離してしまって、単なるシートの移動になってしまったという経験をした方は、結構いらっしゃるのではないかと思っています。
イミディエイトウィンドウからアクティブシートをコピーする
そんな経験のある方で、VBA(Visual Basic for Applications)を使えるという方は、イミディエイトウィンドウからのシートコピーを試してみてはいかがでしょうか。イミディエイトウィンドウで、
activesheet.copy activesheet
と入力後[Enter]キーを押す
上記の操作を行うと、アクティブなシートが、アクティブなシートの前・左側にコピーされます。
Sub samp()
ActiveSheet.Copy ActiveSheet
End Sub
というSubプロシージャで、アクティブなシートを、アクティブなシートの前・左側にコピーできます。
この「ActiveSheet.Copy ActiveSheet」というオブジェクト式を、イミディエイトウィンドウから実行しているだけです。
ショートカットキーCtrl+スペースを使ってActiveSheetを簡単に入力
「activesheet」を入力するところが面倒かもしれませんが、VBE(Visual Basic Editor)のショートカットキー[Ctrl]+[スペース]を利用すると楽に入力できます。
「ac」まで入力して、ショートカットキー[Ctrl]+[スペース]を押せば「ac」で始まる入力候補が表示されますから、
[↓]キーを数回押して「ActiveSheet」をアクティブにして[Tab]キーで確定するのが一つの方法。
もう一つが、「actives」まで入力してショートカットキー[Ctrl]+[スペース]を押して「ActiveSheet」を入力する方法です。
アクティブシートの後・右側にコピーするには
アクティブシートの後ろ・右側にコピーしたい場合は、
「activesheet.copy , activesheet」
と、「activesheet.copy」と「activesheet」の間に「,」(カンマ)を入力しましょう。
この「,」は、Worksheet.Copyメソッドの、第1引数と第2引数の間の区切りです。
Subプロシージャとして残す場合には、名前付き引数を使うべきでしょうけれど、イミディエイトウィンドウからコードを実行する場合は、標準引数のほうが楽です。
- Newer:Byte配列で文字コードを取得する
- Older:Word VBAでTextFrame2・TextRange2を利用する
Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » シートのコピーをイミディエイトウィンドウから