作成したマクロのコピーと編集

マクロ講座5回

マクロのコピー、編集

前回の復習とマクロの応用例として、生成されたコードを編集して実務に役立つ一行マクロを作成しましょう。。選択範囲をコピーし新規シートに貼り付けるマクロに変更します。
(サンプルファイルは、こちらから マクロ講座5回サンプルデータ

■前回の復習■

 前回、マクロの構文は、大きく2つだけと言いました。
 内容をおさらいすると、

  実は、マクロのコードは、たった2つの構文で成り立っているからです。

  その1つが、


  「対象.属性=値」構文です。
    
  つまり対象(選ばれた物)の属性を○○にする

  もう一つは、


   「対象.動作」構文です。
   
   意味は、対象を動作する
   
  マクロのコードは、この2つの構文しかないのですから、
  たとえ、英語で書かれているからといっても、恐れることはないんです。

 そして、次ののマクロを作成しましたね。 

選択範囲をコピーして新規ブックに貼り付けマクロ

 思い出しましたか?


マクロを保存してない人は、前回のサンプルをダウンロードしてください。

マクロの有効活用 選択範囲をコピーし新規シートに貼り付けるマクロ 

(1) それでは、前回のマクロの中身を表示させてください。
コードは以下のようになっています。
(2)マクロ本文の意味は、

Sub Macro10()
'選択範囲をコピーして新規ブックに貼り付け
    Selection.Copy '選択したものをコピー
    Workbooks.Add 'ワークブックを追加
    ActiveSheet.Paste 'アクティヴシートに貼り付ける
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, _
        Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 End Sub
Selection.PasteSpecial Paste:=xlPasteColumnWidths で列幅を貼り付けています。
Operation:=xlNone 貼り付けで演算は「行わない」
SkipBlanks:=False「空白を 無視する」はオフ
Transpose:=False 行と列を入れ替えない
このコードで使われている動作は、Copyメソッド、 Pasteメソッド、 PasteSpecialメソッドといいます。
その Workbooksをシートを追加に変更してみましょう。

コードの変更 新規ブックを新規シートに変更する 

(3)コードを選択し、コピーします。

コードの左上端にマウスポインタを合わせ、
マウスポインタが右向きに変わったら、左端を下にドラッグしてコードを選択します。
マウスの右ボタンをクリックして、表示されるメニューからコピーを選択します。ショートカット Ctrl + C でもOK
貼り付けます。
コードの一番下にカーソルを置き、マウスの右ボタンをクリックして、 メニューから[貼り付け]を選択します。ショートカットの Ctrl  V 

選択範囲をコピーし新規シートに貼り付ける列幅も 

コピーしたコードをその真下に貼り付けたところです。
このままでは、同じ名前のマクロが2つあることになりエラーが起きてしまいます。すぐに名前を変更しましょう。
(4)マクロ名を変更して編集
(5)マクロ本文の編集
 Workbooks を Sheets に書き換えます。
('の部分は説明の邪魔なので省略します)
そして現在のシートの後ろに追加にします。
変更前
Sub 選択範囲をコピーし新規ブックに貼り付ける列幅も()
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteColumnWidths
End Sub
    
変更後
Sub 選択範囲をコピーし新規シートに貼り付け列幅も()
    Selection.Copy
    Sheets.Add
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteColumnWidths
End Sub
(6)右上隅の「閉じる」ボタンをクリックして、VisualBasicEditorを閉じます。

編集したマクロはブックの保存と同時に保存されるので、
ここでは保存せすに閉じてしまっても大丈夫です。
どうしても心配なら、先に保存アイコンをクリックしてください。

こちらもおすすめ