● 「Excelの”マクロの記録”は役に立たない」のウソ(僕自身、「専門バカ」にならないように気をつけたいです。)
よくQ&Aサイトなどで、「Excelの”マクロの記録”は役に立たないから、最初からVBAやっとけ!」などという乱暴な回答を見かけますが、それはウソです。
たしかに、VBAをちゃんと覚えるほうが良いには決まっていますが、でも、「Excelの”マクロの記録”」が役に立たないことはまったくありません。
ウソです。
特に「Excelの”マクロの記録”」の機能は、「メニュー」周りの繰り返し操作が多いときに私たち素人にもとても力強い味方となってくれます。
VBAがわからなくても、「Excelの”マクロの記録”」でメニュバーを行ったり来たりする面倒な操作を簡略化できます。
※関連記事
『用語:ExcelやWordにおける「マクロ」とは?VBAと何が違う?(「ExcelやWord自身」は「マクロ」をどう判別・区別しているか?)Accessの場合は?』
『「マクロ」のリボンへのメニューボタン化・関連の記事5つ』→1、2、3、4、5
例えばピボットテーブルの作成時なら、ソースとなる表の体裁を整えたあとに、毎回・・・、
(01)ソースの表に「=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1))」で名付けをして、行と列の増減を可変にする(どのシートも全部この式でOK。)。
(02)そのソース表をもとに、ピボットを新しいシートに作成する。(あとで行と列が増減してもデータ範囲の再設定が不要なピボットです。)
(03)できたピボットのオプション設定で、更新時に列幅が勝手に自動調整されないようにする。
(04)2003までのピボットの操作画面にするか・しないかを決める。
(05)特定の場所(列名の下のセルなど)で「ウィンドウ枠の固定」をする。
・・・という操作をするので、これをマクロにするとすごく便利です。
で、これが「VBAが分からないと自動化できない」かというとまったくそんなことはありません。
「Excelの”マクロの記録”」の機能にて、クリック操作と簡単な入力操作だけでやれるので本当に便利だと思います。
また、「マクロの記録」を使ってプログラム化(Subプロシージャ化)したものは、それを・・・、
「クイックツールバーの中にボタン登録。」
「リボンの ”アドインタブ” の中にボタン登録。(階層構造ボタン化も可能) 」
「シートの自作のコマンドボタンに登録。」
ができます。
それによって、ワンクリックで呼び出すことが可能となります。
「リボンの ”アドインタブ” の中にボタン登録。(階層構造ボタン化も可能) 」のケースなんて、Excel2003のコマンドバー(ツールバー登録・削除・ボタン編集など)をいじるコードが「まんまで使えます」からね。
(あくまで32bitのExcelでしかしたことないですけど)
「マクロの記録」で作ったマクロは、セルの値をいじらないなら、例えば定期的かつ複雑なレイアウト変更の繰り返しや、横書きテキストボックスや矢印などの挿入、それにともなう色や境界線の設定、等々、そういうったものの頻繁な繰り返しなどなら「とても便利にボタン化、自動プログラム化が可能」です。
僕のようなExcelVBAど素人には本当に便利です。
だってプログラムコード書かなくていいんだもん。同じことするだけだし。
なんでもかんでも・いつでも「汎用化」、が偉いわけじゃない。
TPOってもんがあるでしょう?
この「マクロの記録」機能を、「ExcelVBAのオブジェクト調査」にしか使わないなんて、「 ”専門バカ” の何ものでもないのでは?」と思ってしまいます。
「相対参照で記録」なんてボタンもありますしね。
ある自動化について「本当に汎用化するかどうかを決めるまで、マクロの記録で作ったやつでいいじゃん」という使い方だってできます。
「マクロの記録」といいますと・・・・「哀れなExcelVBAの専門バカ」になられてしまった人は、「役立たず」とか「VBAのオブジェクトについて調べることくらいしか役に立たない」とか言い出します。
実際・役に立たなくてコスパのことを考えない、仕事の邪魔をしてくるのはそのような「専門バカ」の人たちで、「マクロの記録」は使い方・使いどころをしっかり考えれば、ちゃんとお仕事のコスパアップに結び付きます。
(逆を言えば、『なんでもかんでも最初から全て「汎用プログラム」をつくれば絶対にコスパアップできる』とは『限りません』。自分で使うだけなら勝手にすればいいのですが、そうではなく、例えば「組織内で、他人に使わせる・彼らの習熟度によって変える必要性がある」という場合、「自動記録で作ったマクロを汎用的になるように即座に部分的に修正できる」、「作ったマクロをメニュー化できるよう教育する」、「汎用化するかどうかを判断するまでのテストプログラムという位置づけで、自動記録のマクロをそのまま使ったり、一部修正したものを活用」ということもコスパアップに十分つながります。)
そもそも、「自分は営業との兼任社内SEなので、いちいち、考えて作ってるヒマなんかない。」とか、「汎用マクロ作ったところで ”使いこなせない” ユーザー、マクロの記録機能で作ったこぢんまりしたプログラムのほうが、”ミスが少ない” ユーザーだっている」とかうケースだってあるわけですから・・・。
特にお若い方々は、そういう「専門バカ」になってしまわれないように、どうか、どうか、十分にお気を付けくださいませ。
※関連記事
『用語:ExcelやWordにおける「マクロ」とは?VBAと何が違う?(「ExcelやWord自身」は「マクロ」をどう判別・区別しているか?)Accessの場合は?』
『「マクロ」のリボンへのメニューボタン化・関連の記事5つ』→1、2、3、4、5
汎用化するかしないかを判断もせず、いきなり汎用化プログラムを作ろうとして、「マクロの記録でなら10分で終わる自動化を、2時間も3時間もかけて、下手したら1日以上かけて」、Subプロシージャ作成をするなんてアホなことにもなりかねません。
バカ以外の何物でもないと思います。
もったいないなあ、と思います。
「マクロの記録」で作ったマクロは、ほんと、「セルの値をいじらない」とか「レイアウトの変更が多い処理」なら、本当に、意外にも役に立ちます。
マイクロソフトさんのOfficeソフトは、「リボン」になってから本当に操作性が悪く(少なくとも2~3ステップは効率が悪く)なったので、思い通りのリボンメニューを2003の時のコードがまんまで使えて自作できるのはすごくすっきりします。(あくまでも32bitでしかわかりませんけど)
パソコンをたくさんやる人って、(自戒を込めて)僕を含めてですけど、とにかく極端なんですよね。
ちょっとでも「自分が使わない」と感じると、徹底的にその使わないほうを叩く。
「俺はこんなことも知ってんだぞ!」とマウントする。
「そんな機能、そのソフトのことをよく知ってたら使わねーよ!」とマウントする。
「どこかで活用できないだろうか?」とは考えません。
「どう活用したらいいだろうか?」とは考えません。
思考停止。
(再度・自戒を込めて)僕を含めてですけど、人間性が低いといいますか、TPOごとに使い分けたりコーディネイトバランスを考えたりする能力が著しく欠如しているといいますか・・・
そしてその思い込み・決めつけが かえって、不効率、データ管理のムリ・ムダ・ムラ、ひいてはコスパの悪化、を産んでいることに気づきもしない。
完全に「専門バカ」になってしまわれているので・・・。
そもそも「ExcelでのSQL(Microsoft Query=QueryTableオブジェクト)やピボット、SQLでのリレーション、システムテーブル、ADO、DAOなどが使えない人・知らない人」・・・、イコール「Excelを紙と電卓の延長としてだけにしか使えない人」がいくらVBAや多段的な関数処理を覚えたって、そして「”汎用”と威張ったところで」、無駄でコスパを悪化させるプログラム書くに決まってますもんね。(これも自戒を込めて。僕自身今でもちょくちょくやってしまいます。決めつけその他・・・。)
そういう人たちは、「これさえあればあとはいらない」というのが、どーも、好きみたいですね。
そんなものこの地球上にあるわけがないのに・・・。
特にQ&Aのサイトでは、そんな人の回答を真に受けてはいけません。
人間性が低いので、必ず、ドツボにはまります。
ご注意ください。
「どんな ”汎用” プログラムでも、必ず、3分以内に作ってみせる」という、「超」が3つ付くくらいのエキスパートなら別なのかもしれませんけど・・・
いずれにしましても、そういう決めつけをする人って、「お客様」に対しても、そういう「変な決めつけ」をする人であることが少なくありません。
怖いです。
とかなんとか、偉そうなこと言ってる僕自身だってそう。
そもそも、VBAができたって、それができるだけじゃ偉くもなんともないです。
いろんな人間関係その他の問題解決ができる人のほうが100倍偉いに決まってるのですから。
VBAができることはもちろん武器にはなりますし、人間関係その他の問題解決にももちろん役には立ちますが、が、あくまでも武器のひとつであって(一応お給料アップにも結び付きますものの)、でも、それができるからといって天下とったような態度をとってはいけませんし、VBAができるからといって人間性が上がって尊敬されるわけでもありません。
いずれにしましても、「Excelの”マクロの記録”」も、もちろん、TPOを選べば、私たちド素人にはすごく力強い味方になってくれます。
そして、ど素人でも扱え、作業効率を2倍、3倍、とすることができます。
VBAがわかるようになってからでも、「いちいちプログラム書くの面倒くせえべ?マクロの記録でもいいや!」というときにラクできます。
それに、マクロの記録の機能を使うほうがVBAで書くより速いビジネスシーンだって結構あるんですから。
僕はExcelVBA、得意じゃないんで、ちょいちょい、マクロの記録の機能を使わせて頂いています。
便利ですよ。
やっぱり。
「Excelの”マクロの記録”」は、全部が全部、自動化できなくても、部分的だけでも自動化すればかなり手間を減らして作業時間を短縮できますので。
- 投稿タグ
- 「本物」に近づくために, Excelの独学, マクロ, 自動化