パソコンスキル教科書

パソコンスキルの教科書

東京大学大学院卒。博士課程に進学を志すも、担当教授と折が合わず、無職になる。医者を目指すも結局断念。田舎で派遣社員として働く。「スキルがなければ、仕事ももらえない」と悟り、ビジネススキルを学ぶ。プログラミング、英語を学び、一部上場企業へ転職。年間100時間以上の業務効率化を行い、社内講師に抜擢。海外の案件を担当し、数億円のプロジェクトに携わる。個人の事業でも、月売上100万を達成。現在は、自分の価値を高めるためのスキル向上支援を行う

マクロの自動記録を使い方|初心者のための実行方法から記録できないときの対処方法まで(画像付き)

f:id:gene320:20170514085008p:plain:w120

マクロの自動記録とは、エクセルマクロを使うときの機能の一つです。

マクロの自動記録を使えば、あなたがエクセルマクロの初心者や入門者でも、ルーティンの作業時間を大幅に削減することができます。

この記事を読まれているあなたは、マクロの自動記録を使ってみたいけれど、
「そもそも使い方が分からない…」「印刷を自動記録の使い方って、どうやるの?」「どんなときに使うと効果があるの?」なんてギモンに思っていませんか?

実は、マクロの自動記録は、コツさえ分かれば、カンタンに扱うことができます。一度、理解してしまえば、作業をラクにすること自体、そんなに難しいことではないのです。

この記事では、エクセルマクロを企業で教えた経験がある私が、マクロの自動記録の使い方を、わかりやすくお伝えします。また、自動記録の「使いどころ」を知りたいあなたのために、自動記録の具体的な事例についても解説します。

後半には、初心者や入門者の方が、自動記録を使うときの4つのコツが分かるヒントも書きましたので、楽しみにしてくださいね。

エクセルマクロの自動記録とは?使い方から実行方法まで

マクロの自動記録とは、「あなたの操作したエクセルをそっくりそのまま繰り返し行う」ための機能です。

この機能を使うと、自分ではとても書けないようなマクロを「エクセル」が代わりに書いてくれます。

ただ、書かれたマクロの中身を解析して、あなたの作業用にカスタマイズするとなるとそれなりにスキルが必要ですが、カンタンな操作をくり返すだけなら十分です。

使い方1|マクロの自動記録を開始する

自動記録を開始する方法は以下の通りです。

①「開発」をクリック
②「マクロの記録」をクリック
③「マクロ名」を変更(必要であれば)
④「OK」をクリック

④「OK」をクリックすると、マクロの自動記録の開始です。

詳しくは下の画像のとおり。

f:id:gene320:20170514085051p:plain

使い方2|自動記録したい「繰り返し」作業を行う

エクセルを操作します。その操作をエクセルが記録して、コードをが代筆してくれます。操作をするたびに、下のように、コードが出てくる。

シートの「A1」~「A15」に1~15の値を入れ込みます操作を行うとします。

f:id:gene320:20170514085414p:plain

後半で、もっと具体的な事例を紹介しているので、ぜひこのまま読み進めていってください。

使い方3|マクロの自動記録を終了する

エクセルの操作が終了したら、自動記録を終了します。その方法は以下の通りです。

①「記録終了」をクリック

f:id:gene320:20170514085431p:plain

使い方4|コードを実行してチェックする

マクロの自動記録が、コードが正しいかどうかを確認します。

4-1|マクロのコードを開く
①「マクロ」をクリック
②「設定したマクロ名(M)」をクリック
③「編集(E)」をクリック

f:id:gene320:20170514085459p:plain

4-2|コードを確認する

マクロが想定した通りに動くかどうかを検証します。

①「Module 1」をクリック
②「コード」を編集
③「▶」(実行)をクリックして検証

f:id:gene320:20170514085520p:plain

これで、あなたが作った自動記録のマクロを正しく動くかどうかをチェックします。

チェックするときは、間違えてもいいファイルを使うことをオススメします。というのも、間違えたとき、修正するのに時間がかかるからです。

補足|もし「開発」が見当たらないとき

もし、「開発」がタブにない場合は
「ファイル」→「オプション」→「リボンのユーザー設定」まで進んで、コマンドの選択©で「メイン タブ」から「開発」を入れ込みましょう。

「開発」をタブに入れ込むことで、とくに不具合は生じませんので、ぜひ設定してみください

ボタンにマクロを設定して表示する方法

ここでは、ボタンを押すだけで、自動記録マクロが作動するように設定します

ボタン表示1|ボタンを設置する

①「挿入」をクリック
②「フォームコントロール」をクリック

f:id:gene320:20170514085544p:plain

エクセル上で、あなたが設置したい箇所にボタンを配置したら、

ボタン表示2|ボタンにマクロを登録する

①ボタンを右クリックして、「マクロの登録(N)」をクリック

f:id:gene320:20170514085637p:plain

最後に、どのマクロを登録するかを決めます

ボタン表示3|どのマクロを入れ込むか決める

①「Macro1」を選択
②「OK」をクリック

f:id:gene320:20170514085652p:plain

これで設定は終了です。

あとは、ボタンを押すだけで、自動記録したマクロが起動します。

自動記録でデキること(事例付き)|保存から追加まで

マクロの自動記録は、いろんなことができますが、その中で代表的なものを紹介します。よくやってしまいがちな間違えやすいこともあわせて紹介しますので、参考にしてみてください。

自動記録の例1|自動で保存先を指定する(変更する)

保存のマクロの自動記録のコードを取得するときは、

[1] 「ファイル」をクリック
[2] 「上書き保存」or「名前をつけて保存」をクリック
[3] 必要であれば、「設定」をクリックして、印刷の条件を設定

自動記録で出力されるコードは以下

「上書き保存」の場合はコチラ

    ActiveWorkbook.Save

「名前をつけて保存」の場合はコチラ

    ActiveWorkbook.SaveAs Filename:="C:\Users\ユーザー名\Desktop\Book1.xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False

ユーザー名には、あなたのnameが入ります。

保存先を変更したい場合は、こちらの無料動画をご覧になることをオススメします。

自動記録の例2|自動で印刷する

印刷のマクロの自動記録のコードを取得するときは、

[1] 「ファイル」をクリック
[2] 「印刷」をクリック
[3] 必要であれば、「設定」をクリックして、印刷の条件を設定

自動記録で出力されるコードは以下

    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False

設定を変更すると、上のコードに変更分が追加されます。

自動記録の例3|ワークシートの追加

ワークシート保存のマクロの自動記録のコードを取得するときは、

保存のマクロの自動記録のコードを取得するときは、

[1] 「ワークシートの追加」ボタンをクリック

自動記録で出力されるコードは以下

    Sheets.Add After:=ActiveSheet

自動記録で作成したマクロをショートカット登録する方法

もし、自動記録で作成したマクロにショートカットキーを割り当てたい場合は、こちらの記事で詳しく記載しています。

[Ctrl] + [Shift] + [y] を押すと、「セルを黄色にする」方法などを紹介していますので、ぜひあわせてよんでみてください。

www.fastclassinfo.com

マクロVBAの自動記録ができない、記録されないときの対処法

「マクロの自動記録ができません…」

このように、コードが記録されないときがありますよね?

たとえば、「指定したフォルダから、他のブックを開く」というマクロを自動記録で使ったけど、自動記録ができない

その理由は、フォルダ上でファイルをダブルクリックしてCSVファイルを開いてもコードを生成できないかもしれないということです。

もし確実にコードを生成したいなら、

エクセルのタブの「ファイル」→「開く」→「AAAA.xls」 というカンジで、エクセルの画面を操作して、ファイル選択ダイアログ内でファイルを見つけて開くようにすると解消される場合があります。

自動記録でマクロを組む4つのコツ

自動記録でマクロを組むコツも含め、プログラムを書く人がとるべき、基本となる4つのコツを紹介します

「プログラムを書く」と表現しましたが、自動記録を使ってマクロを生成するときでも、同じです。ですので、このまま読み進めていってください。

自動記録のコツ1|小分けにして作る

まず、最も大切なこととして、プログラムを書く人がとるべき、基本なスタンスとして

「短いプログラムを作って、すぐ動作を確認、ということをくり返す」ということです。

逆に、自動記録でマクロを作るとき、うまくいかない人のパターンは

すべての操作を実現する長いプログラムを一気に作って、それから動作確認をするということです。

ついつい「カンペキなものを作りたい」、「一気にプログラムを作成したい」という気持ちばかり優先してしまいがちです。

しかし、マクロを自動記録で作るとき、とくに複数の操作を行うマクロを作るなら、それぞれのを実現するマクロを自動記録で作る。その後で、それらを連続実行できるように加工していきます。

イメージとしては、

[1] 実行したい操作ごとにマクロを作る
[2] 連続実行するプログラムに少し変える

[1]で作成したそれぞれのマクロを動作確認する。たとえば、「印刷設定をする」というマクロで、エラーが出てしまうのであれば、まずは、そこを解消する。

そのようにして動くようになったら、すべての[1]を連続実行する[2]というマクロを作ります。

作成の事例については、後半で記載していますので、ぜひあわせてよんでみてくださいね。

自動記録のコツ2|失敗したら、コレを決めておく

マクロの自動記録は、あなたのエクセルの操作を記録します。

しかし、エクセルの操作に失敗してしまうと、

・自動記録を最初からやり直し…
・どのコードが、どの操作を意味しているのか分からない…

こんなことになりがちです。

ですので、「操作を間違えたら、この操作」と決めておくことをオススメします。

たとえば、誤った操作をしたとき、A1のセルに「ここからやりなおし」という言葉を入力すると決めておきます。

そうしておくと、操作に失敗しても、以下のコードが出てきたら、仕切りなおしの合図とわかります。

   Range("A1").Select
    ActiveCell.FormulaR1C1 = "ここからやりなおし"

このように、工夫しておくと、自動記録を作るスピードが上がります。

自動記録のコツ3|マクロの記録開始時にA1を指定する

記録するときに注意するのは、

[1] マクロを記録したときのセルの位置
[2] 自動記録で作成したマクロを起動するときのセルの位置

が異なると、挙動が異なる可能性があります。

たとえば

   ActiveCell.FormulaR1C1 ==SUM(R[3]C:R[1]C)

と設定した場合、

[1] マクロの自動記録で作成したとき、ActivecellがA1の場合

「A2-A4」までの合計を処理します

[2] 自動記録で作成したマクロを起動するとき、ActivecellがA2の場合

「A3-A5」までの合計を処理します

このように、「マクロを自動記録で作成したとき」と「自動記録で作成したマクロを起動させるとき」で、Activecellの位置が異なると、ほしい結果を得ることができません。

対処法としては、マクロの記録を開始する前にセルを「A1」に移動させることです。たとえば、以下のようなコードにしておくと、間違いを減らすことができます。

   Range("A1").Select
    ActiveCell.FormulaR1C1 ==SUM(R[3]C:R[1]C)

マクロを起動するときに、A1にActivecellを戻すような、コードを記録を取るようにしておくことをおすすめします

自動記録のコツ4|どんどんテストする

とくに初心者、入門者のうちは、どんどんテストすることをオススメします。

テストとは、作って、動作をチェックして、思い通りの結果が得られるか、ということです。

とにかく、このサイクルを早く回せば回すほど、自動記録が完成するまでのスピードが上がります。

以下に、具体的な事例を紹介しますので、このまま読みすすめていってください。

実務でのマクロの記録の使い方|outlookメールのcsvファイルを加工/印刷

では、ここから実務の事例を紹介します。ここでは、他部署からメールでくるcsvファイルから資料を処理するマクロについて考えます。実例で紹介するのは、以下の作業です。

実務の事例「outlookメールのcsvファイルを加工/印刷」

1.他部署からoutlookメールでくるcsvファイルを開く
2.A列のデータが記載されている行をコピーしてB列に貼り付け
3.B列の金額の合計(1行目からB列の1番最後のデータまで)を合計金額を最終行に出力する。
4.データの記載されているセルの列幅を最適化する
5.印刷の設定を行う。設定は以下
―ヘッダーの右上:日付と時刻
―ヘッダーの左下:パス
―上の余白:3センチ
―左右の余白:無し
―設定が完了したら「シートを1ページに印刷する」を選択して印刷
6.選択しているデータを「別のブック」に出力

それでは、具体的に、やり方を解説していきます。

ステップ1|他部署からoutlookメールでくるcsvファイルを開く

自動記録しながらCSVファイルを開くとコードを生成できます。

ただし、気をつけるべきことがひとつあります。それは、フォルダ上でファイルをダブルクリックしてCSVファイルを開いてもコードを生成できないかもしれないということです。

確実にコードを生成するには、エクセルの画面を操作して、ファイル選択ダイアログ内でファイルを見つけて開くようにするといいです。(上で紹介しています)

ステップ2|A列のデータが記載されている行をコピーしてB列に貼り付け

自動記録しながら上記の操作をすると必要なコードを生成できます。

ステップ3|B列の金額の合計(1行目からB列の1番最後のデータまで)を合計金額を最終行に出力

ここで紹介するのは、「Sum関数」ではないですが、マクロからエクセルのワークシート関数を呼び出して使う方法です。合計の計算範囲を指定する際の方法をひとつご紹介します。

自動記録をしつつ、合計値を調べたい列のデータ先頭行にカーソルを置き、そこから [Ctrl] + [Shift] + [↓] で合計値を調べたいセル範囲すべてを選択できます。

その操作を行った次の行に、以下のコードを記載します(合計金額の記入先がセルA1の場合)

    Range("A1").Value = WorksheetFunction.Sum(Selection)

理屈はここでは解説しませんが、この方法であれば、sum関数を使わずに、合計値を調べることができます。

ただ、正直に言えば、マクロで処理するのであれば、ワークシート関数(sum関数)を使うことはせず、ここで紹介しているWorksheetFunctionを使うのでもなく、合計値の算出もマクロでやれるようになることをオススメします。

そうすれば、数段カンタンで、しかもアレンジを自分で効かせることも自在にできて、自動化できる範囲が広がります。アレンジをしたいときの勉強方法は、以下の無料講座がオススメです。

ステップ4|データの記載されている部分を選択し、セルの列幅を最適化する

自動記録しながら上記の操作をすると必要なコードを生成できます。

ステップ5|印刷の設定を行う

―ヘッダーの右上:日付と時刻
―ヘッダーの左下:パス
―上の余白:3センチ
―左右の余白:無し
―設定が完了したら「シートを1ページに印刷する」を選択して印刷

自動記録しながら上記の操作をすると必要なコードを生成できます。

しかし、得られるコードの解析に手間がかかります。正直、初心者向きではありません。

それよりも、デフォルトのプリンタ設定のままで、サラサラ印刷するだけなら、 .PrintOut をオススメします。

たとえば、印刷対象がアクティブなシートであれば、以下のとおり。

    ActiveSheet.PrintOut

もし、マクロの記録を使って印刷設定をして、デバック画面が出てしまった場合は、こちらで紹介している無料動画がオススメです。自動記録の使い方を含めた「マクロの概要」を詳しく説明しています。

ステップ6|選択しているデータを「別のブック」に出力

選択しているデータを「別のブック」に該当する月(たとえば2017年6月なら)のシート「201706_金額合計」というシートの最後のデータの一行下に、累積させていく。

これは手作業でもいいかと思います。マクロでできないこともないですが、入門者や初心者に使いこなせるように説明するのは、少しムズカシイです。

仕上がりイメージは、以下のようなカンジです。

   sub メールでくるcsvファイル()
        ステップ1
        ステップ2
        ステップ3
        ステップ4
        ステップ5
        ステップ6
    end sub
   sub ステップ1()
        ...
    end sub
   sub ステップ2()
        ...
    end sub
   sub ステップ3()
        ...
    end sub
   sub ステップ4()
        ...
    end sub
   sub ステップ5()
        ...
    end sub
   sub ステップ6()
        ...
    end sub

自動記録で作成したマクロを修正・アレンジしたいなら

もし、あなたが、自動記録で作成したマクロを修正したいなら、最低限アレンジするだけのスキルが必要になります。

自動記録で作成したマクロを修正したり、独自でアレンジするチカラを高めるためには、マクロを作るトレーニングが練習が必要です。

まずは、自分で試してみたり、ネットで調べることからはじめてみるといいと思います。しかし、練習や実践をはじめたばかりのときには、なかなかうまくいかなくて、時間がかかってしまう、結局できなかった、となってしまうこともあるでしょう。

そんなとき参考になってくれるのが、エクセルマクロVBAの経験者です。もし、周りにエクセルマクロVBAを使える人がいれば、その人に質問しながら練習してみるのがもっともオススメです。

周囲に、使える方がいない場合は、こちらの無料動画で詳しく説明されています。興味がある方は、こちらで紹介している無料動画がおすすめします。

自動記録を使いこなして、あなたのルーティン作業の負担を減らしていただければ幸いです。

もしあなたが、そもそもエクセルマクロVBAとは?とギモンに感じているなら、こちらの記事がオススメです。

www.fastclassinfo.com