TOPページ > Excel・IT開発 > Excel実務のノウハウ > マクロの記録をする時に気を付けること

マクロの記録をする時に気を付けること|Excel実務のノウハウのお勉強

このエントリーをはてなブックマークに追加

マクロの利用は業務効率を飛躍的にアップさせるけど・・

マクロを使うと作業の一部や全部を(半)自動的に行うことができるため、非常に「高速」な業務効率化が図れます(VBAを使うと更に「超高速」にもなり得ます)。

マクロの記録は、作成者の操作をほぼ一挙手一投足Excelへ記録していき、「マクロの記録で作ったマクロ」は、まさしく文字通りに命令通り動きます。しかしこの「命令通り」というのが、時としてエラーになったり、おかしな結果になったりしたことはないでしょうか?
ここでは、そういった点について説明します。 マクロの記録でエラーが出たとき

なお、マクロの技術的な点(VBA)については、別途サイトで説明していますので下記にある関連ページを確認してください。


マクロの記録とは

マクロの記録とは、言い換えると「Excel操作の記録」です。「開始」から、「終了」までのExcelの操作をExcel自身に覚えさせる機能です。
一般的に、「Excelいつも同じ作業を繰り返している・・」と言う部分でマクロの記録が登場します。
なお、実際に活用するのは、マクロの記録で作った「マクロ」の方です。言い換えると、「マクロの記録でマクロを作る」とも言えます。
このため、マクロの記録作業自体は通常は1回きりで、以降は、その「作ったマクロ」を実行して使い(回し)ます。

マクロを(マクロの記録で)作れば、下記の用に作業の一部分、全体の作業で精度を保持したまま時間を短縮できます。 マクロで作業短縮化

マクロの記録をする前に意識しておく点

マクロを記録を開始する前に押さえておいた方が良いこともありますが、それらは厳密にはマクロの記録をしたい操作や業務内容などにより変わってきます。
ここでは一般的な点について説明しているので、皆さんの作業に当てはまる点があれば参考にしてください。



マクロの記録時のポイントと特徴

上記でも説明していますが、そもそも、マクロの記録は、「マクロの記録(でマクロを作成する)」、「(作成した)マクロを実行」という2つの流れのうちの前者になります。
大事な点としては、「(作成した)マクロを実行」した時に問題(エラー)が無いようにすることであります。
ポイントとしては、「マクロ記録時」と「マクロ実行時」のファイル、シート、セル等の状態を同じにしておく必要があります。
これは、異なる状態であると、「マクロの記録時はうまくいったけど、実際に使う場面でうまくいかない」と言ったことが起こり得るとほぼ同義です。


そして、その上で特徴とは、基本的にマクロの記録で作成される操作内容はベタ打ちとして記録されるということです。
決め打ちというか、「シート名が○○」とか「A1のセル」と言う形で固定された状態(コードで記録される)になります。
マクロの記録で規則される内容は固定文字

そのため、「マクロ実行時」に、この決め打ちから外れる場合、「このシート名が違っているよ」などと教えてくれるわけではないので注意が必要です。



マクロの記録対象になっているExcelファイルやシートの「名前」を意識する

上記で説明したように、マクロの記録では、操作(マクロの記録)対象になっているExcelファイルやシートあるいは、セルに対して固定の情報が記録されます。
簡単に言うと、とある「シート」を対象とした操作では、マクロの記録時のシート名とマクロ実行時のシート名が同じになってないといけません。
下記の様に異なる場合には、(シート名が異なる、「住所一覧が無い」)エラーとなります。
マクロの記録時とシート名が異なる場合

(マクロの記録で)作成したマクロを実行すると、「インデックスが有効範囲にありません」という実行時エラーが表示されます。
シート名が異なる際に表示されるエラー
(このエラーは、シート名が「住所一覧」であるべきところが、「住所リスト」だったために発生しています)



外部にあるExcelファイルの読み込み

マクロの記録で外部のExcelファイルを開くときも同じです。
マクロでファイルを開く

上記の「指定したファイルを開く」という操作は、マクロの記録では、このように記録されます。
ファイルを指定して開いたときのマクロコード

さらに、この状態で「該当ファイルを削除」した後にマクロを実行するとこんな実行時エラーが発生します。
ファイルを指定して開いたときのマクロコード
このような場合、残念ながらマクロの記録では対処の方法がありません(VBAのコードを触る必要があります)。



マクロの記録は「ベタ打ち」を考慮する

ここで説明した内容のように、「マクロの記録」で記録される操作はベタ打ちの値です。
よくある質問で、「常時追加(削除)される行がある表で、末尾行の下に合計値を入れたい」というのがあります(行や列位置等が確定できないことをプログラム的には動的データなどと言ったりします)。
これもやはり「ベタ打ち(セルの位置が固定)」状態で記録されるため、解決ができません。
(ただし、ショートカットを使う方法で解決できることもあります)

固定されたベタの内容に対しては、ベタ打ちとして記録されないような(ショートカットで)操作を行ったり、データ管理をする前に知っておくと便利なことについてページでも紹介しているように、そもそもとして、集計用シートを別に用意するなどで対策も考える必要があります。 そして最終的に解決できない場合は、マクロの記録で作ったマクロのコードを修正する必要なども出てきます。ただ、この辺りになると専門的領域に入ってくるため簡単に直すというレベルではなさそうです。
また、「実行時エラー」画面で表示されるエラーの内容と、エラー対象になっている(実際の)マクロコードでは、想像もつかないようなエラーメッセージもあるため、ある種の慣れのようなものも必要になってきます。興味ある方はご自身でトライするか、弊社へのお問い合わせも考慮してみてください。

このエントリーをはてなブックマークに追加

Excel実務のノウハウ 関連ページ


グローウィン 関連サイトページ


グローウィン有限会社
東京都三鷹市下連雀3-27-1 三協ビル2階-B 地図を見る
トップページ
入力代行関連
Excel・IT開発
中国アテンド
会社概要
プレスリリース
お問い合わせ
お問い合わせ内容一覧

英文ページ(English)
中文ページ
プレスリリース お問い合わせフォーム