作成したマクロのコピーと編集
マクロ講座5回
マクロのコピー、編集
前回の復習とマクロの応用例として、生成されたコードを編集して実務に役立つ一行マクロを作成しましょう。。選択範囲をコピーし新規シートに貼り付けるマクロに変更します。
(サンプルファイルは、こちらから マクロ講座5回サンプルデータ)
■前回の復習■
前回、マクロの構文は、大きく2つだけと言いました。
内容をおさらいすると、
実は、マクロのコードは、たった2つの構文で成り立っているからです。
その1つが、
「対象.属性=値」構文です。
つまり対象(選ばれた物)の属性を○○にする
もう一つは、
「対象.動作」構文です。
意味は、対象を動作する
マクロのコードは、この2つの構文しかないのですから、
たとえ、英語で書かれているからといっても、恐れることはないんです。
そして、次ののマクロを作成しましたね。
選択範囲をコピーして新規ブックに貼り付けマクロ
思い出しましたか?
マクロを保存してない人は、前回のサンプルをダウンロードしてください。
マクロの有効活用 選択範囲をコピーし新規シートに貼り付けるマクロ
(1) それでは、前回のマクロの中身を表示させてください。
コードは以下のようになっています。
(2)マクロ本文の意味は、
Operation:=xlNone 貼り付けで演算は「行わない」
SkipBlanks:=False「空白を 無視する」はオフ
Transpose:=False 行と列を入れ替えない
このコードで使われている動作は、Copyメソッド、 Pasteメソッド、 PasteSpecialメソッドといいます。
Sub Macro10() '選択範囲をコピーして新規ブックに貼り付け Selection.Copy '選択したものをコピー Workbooks.Add 'ワークブックを追加 ActiveSheet.Paste 'アクティヴシートに貼り付ける Selection.PasteSpecial Paste:=xlPasteColumnWidths, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False End SubSelection.PasteSpecial Paste:=xlPasteColumnWidths で列幅を貼り付けています。
Operation:=xlNone 貼り付けで演算は「行わない」
SkipBlanks:=False「空白を 無視する」はオフ
Transpose:=False 行と列を入れ替えない
このコードで使われている動作は、Copyメソッド、 Pasteメソッド、 PasteSpecialメソッドといいます。
その Workbooksをシートを追加に変更してみましょう。
コードの変更 新規ブックを新規シートに変更する
(3)コードを選択し、コピーします。
コードの左上端にマウスポインタを合わせ、
マウスポインタが右向きに変わったら、左端を下にドラッグしてコードを選択します。
マウスの右ボタンをクリックして、表示されるメニューからコピーを選択します。ショートカット Ctrl + C でもOK
コードの左上端にマウスポインタを合わせ、
マウスポインタが右向きに変わったら、左端を下にドラッグしてコードを選択します。
マウスの右ボタンをクリックして、表示されるメニューからコピーを選択します。ショートカット Ctrl + C でもOK
貼り付けます。
コードの一番下にカーソルを置き、マウスの右ボタンをクリックして、 メニューから[貼り付け]を選択します。ショートカットの Ctrl + V
コードの一番下にカーソルを置き、マウスの右ボタンをクリックして、 メニューから[貼り付け]を選択します。ショートカットの Ctrl + V
選択範囲をコピーし新規シートに貼り付ける列幅も
コピーしたコードをその真下に貼り付けたところです。
このままでは、同じ名前のマクロが2つあることになりエラーが起きてしまいます。すぐに名前を変更しましょう。
(4)マクロ名を変更して編集
このままでは、同じ名前のマクロが2つあることになりエラーが起きてしまいます。すぐに名前を変更しましょう。
(4)マクロ名を変更して編集
(5)マクロ本文の編集
Workbooks を Sheets に書き換えます。
('の部分は説明の邪魔なので省略します)
そして現在のシートの後ろに追加にします。
変更前
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を閉じます。
編集したマクロはブックの保存と同時に保存されるので、
ここでは保存せすに閉じてしまっても大丈夫です。
どうしても心配なら、先に保存アイコンをクリックしてください。
編集したマクロはブックの保存と同時に保存されるので、
ここでは保存せすに閉じてしまっても大丈夫です。
どうしても心配なら、先に保存アイコンをクリックしてください。