エクセルマクロの挫折しない勉強法や仕事で使いこなすコツを徹底解説!
講師の寺澤さんはこれまでの20年間マクロを使って様々な業務を効率化させるなど、数多くの社内表彰を受けてきました。例えば、数十万行の元データから分析用データを毎週作成する作業。人の手だと1週間かけても終わらない作業ですが、マクロを使うと30分程で完成してしまいます。さらに自ら社内講座も主催、全くマクロを触ったことがない数百人を指導し、満足度98%と人気を博しています。近著『4時間のエクセル仕事は20秒で終わる』では、そのエッセンスを余すところなく紹介しています。
本連載では、エクセルマクロを仕事で使うための本当に必要な知識だけを、できるだけわかりやすく説明していきます。

初心者でもわかるExcelマクロ入門! エクセルのコピペが超効率化するマクロの秘訣Photo: Adobe Stock

「シートごとコピー」でコピペが超効率化する

複数のエクセルファイルを開き、その間でデータをコピペする機会は多いのではないでしょうか。他のエクセルファイルを開き、データを持ってくるマクロを学びます。

2つ以上のエクセルファイルを使って作業をするときは、シートごとコピーするのが効率的です。後の作業がすべて1つのエクセルファイル内で完結するからです。処理のたびにマクロでファイルを指定する必要がなくなります。

まず他のエクセルファイルからシートをコピーするにはどうしたらよいか考えてみましょう。やりたいことを図にまとめます。

初心者でもわかるExcelマクロ入門! エクセルのコピペが超効率化するマクロの秘訣

マクロで他のエクセルファイルを開くには、次のような手順で処理を行います。

① コピー元のファイル(コピーしたいデータがあるファイル)を選択
② 選択したファイルを開く
③ コピー元ファイルのシートをコピーし、コピー先ファイル(データをコピーして持っていく先のファイル)にペースト
④ コピー元ファイルを閉じる

マクロが組まれているコピー先ファイルにシートごとデータが来てしまえば、1つのファイル内だけで動くマクロで対応できます。

必要な変数

変数は3つ準備しておく必要があります。それぞれa、b_path、bとしましょう。

aにはマクロが作ってあるコピー先のファイル名を入れます。コピーしたシートのペースト先を指定する③で使います。

b_pathにはコピー元ファイルの「パス」を入れます。パスとは「どのフォルダに入っている何というファイルか」を示すファイルの住所のようなものです。ファイルの階層を表します。(例: C:¥Users¥UserName¥Desktop¥コピー元.xlsm)これは元ファイルを開く①で使います。

初心者でもわかるExcelマクロ入門! エクセルのコピペが超効率化するマクロの秘訣

bにはコピー元ファイルの名前を入れます。ファイルを閉じる④の作業で使います。

「コピー元ファイルの情報がなぜパスとファイル名の2つ必要なのか?」と思った方もいるでしょう。それにはパソコンでファイルを保存したり開いたりするときのルールが関係しています。

1つ目のルールは「違うフォルダであれば、同じ名前のファイルを複数作れる」です。これによって、マクロはファイル名だけではどのファイルを開くか確定できません。ファイルを開く場合は「○○というフォルダにある」という情報を含んだパスから指定する必要があります。

2つ目のルールは「同じ名前のファイルは、別フォルダにあったとしても同時に開けない」です。

ですから一度ファイルを開いた後はファイル名を利用して操作するファイルを切り替えます。

(本稿は、寺澤伸洋著『4時間のエクセル仕事は20秒で終わる』を抜粋、再構成したものです)