プログラマ、テスター、SE、PMなど、いろいろやってるオヤジです。

Excelで100年に1人の逸材になれるのか? -技術のノウハウの前に思想を理解せよ

»

困ったときのOffice Tanaka 頼み

 Excel VBA でプログラミングしているとき、コマンドの使い方などが分からなかったらあなたはどうしますか?

 私はいつも、Office TANAKAのサイトを見に行ってコマンドを探します。たいがいのことはそこを見れば解決してしまいます。

 そのサイトを作っているのは田中亨先生。Excel の日本の第一人者です。その田中先生が書いたExcel の本を読んでみました。

100年に1人の逸材になるエクセル講座

 まず、このタイトルを聞くと突っ込みたくなりませんか? 「フムフム、これを読んでマスターすれば100年に1人の逸材になれるのか」とは思わないですよね。

 100年に1冊しか売らない秘伝の書ならともかく、多くの読者がこの本を読んで100年に1人の逸材になったら、それは100年にたくさんの逸材になってしまいます。そもそも100年に1人の逸材になるには著者の田中先生を超えなくてはいけません。突っ込みたくなるタイトルでした(笑)。

excel_100year.jpg
100年に1人の逸材になるエクセル講座

「できる」と「やるべき」は違う

 そしてこの本には、エクセルの裏技的な役立つノウハウももちろん書かれているのですが、その前にエクセルに対する思想が書かれているのです。

 エクセルは表計算ソフトです。その範疇を越えたことをVBAなどでやろうとするのはそもそも考え方が間違っています。というのがまず1つめの思想です。

 このサイトでもたまに話が出てくるエクセル方眼紙の作り方が丁寧に説明してあります。作り方を説明した上で、エクセル方眼紙はデータの再利用ができないから「やるべき」ではない。「できる」と「やるべき」は違う、と書かれています。

 私は、エクセル方眼紙は使わないものの、エクセルのVBAを使ってエクセル以外のことまでやってしまったこともあります。エクセルVBAを使うといろいろなことができてしまうけれど、調子に乗って余計なことまでやってしまうと、あとで誰もメンテナンスできなくなるとか、困ったことが起こることが多いそうです。気をつけなくては。

機能と関数とVBAをバランス良く知ろう

 エクセルには表操作の機能関数VBAの3つの要素があります。関数が大好きな人はVBAが嫌いなことが多く、何でも関数でやろうとします。反対にVBAが大好きな人は関数が嫌いで何でもVBAでやろうとします。そこに無理が生じます。機能と関数とVBAのそれぞれの適したところを上手に使うべきです。とも書かれていました。VBAばかり使う人は、自動車の運転に例えると、右折が苦手だから左折を3回して右方向に行くようなものだ、と。

 たしかに、私はVBA派で関数は苦手なので何でもVBAでやろうとしてしまいます。機能と関数もちゃんと把握しておかないといけませんね。

技術のノウハウよりもまずは思想を理解しよう

 この本はエクセルのノウハウよりも思想を重視して書かれている、という点で面白く感じました。田中先生のエクセル論が少し分かってきました。技術のノウハウを覚える前に、まずは思想を理解しておくことが本当は必要なんですよね。

 私は何年も前から、この田中先生の講座を受けてみたいなあ、思っていました。そしてこの前、長年の夢(?)を叶えるべく、ついに受けに行きました。あなたも、ずっとやりたいと思っていながら結局やっていないことってありませんか? 

 講座を受けた感想は次回に書きます。

 あべっかんでした。

 ※「100年に1人の逸材になるエクセル講座-Excel教の思想が分かる本」

Comment(6)

コメント

h

>機能と関数とVBAのそれぞれの適したところを上手に使うべきです。
私はこれに大反対です。
自分だけしか使わない保証があるのであればその方がいいのでしょうけど、
他人が作ったファイルを修正するときはどっちかに統一してくれていた方がまだ修正しやすいので。

仲澤@失業者

で、そもそもエクセルは「計算させるもの」なのであって、
「ドキュメント」はそれなりのソフトを、「データの蓄積」はDBを使いましょう。
ってな基本的な事は書いてあったのかどうかが気になって気になって
・・・かっ痒いところに手がぁぁぁぁ。

abekkan

>hさん

コメントありがとうございます。

実は、職場によってどういう作りにするのが最適かは変わってくるとも書いてあります。
エクセルで作ったものはいずれは誰かに引き継がれるものなので、関数が得意な人が自分ひとりしかいなかったら自分がいなくなったあと困るし、マクロを禁止している部署もあります。

なので、引き継がれたあとのことを考えて、後任者に分かるようにつくりましょう、と書いてありました。

abekkan

>仲澤さん
コメントありがとうございます。

「インターネットの情報をVBAで取得するにはどうすればいいですか?」
という質問に対して、エクセルは表計算ソフトなのだからそんなことに使うんじゃねぇ
と言っていますね!

匿名

ワークシート関数とマクロ、どっちがいいかというのはケースバイケース。
一般論としてはユーザー企業ではマクロ禁止なんてことはあったりするし、
概してプログラムスキルを要さないワークシート関数が好まれる傾向にはあるが、
過度に複雑なワークシート関数の重ね書きは下手なマクロのロジックより理解しづらかったりするときもある。
かえってマクロで書いた方がシンプルになるということもあったりはする。

また細かい話だが、同じ名前のRound関数が、ワークシート関数では四捨五入だが、VBAはいわゆる丸めと関数の仕様自体が異なっていることもある。
ユーザーが金融だったり、他業種でも経理だったりすると、明確なわかりやすい基準という観点から四捨五入の方が好まれたりもする。
そうなるといやおうなしにワークシート関数の方が現実的となる。
VBAで正確な四捨五入をしようとするとわざわざ作らないとまずい。

要するに、どっちの方が絶対にいいなんてことは存在しない。

abekkan

>匿名さん

コメントありがとうございます。
「ケースバイケース」というのは筆者も言っていました。
ケースに応じられるように、いろいろな作り方を知っておくといいですよ、と。

もし何の制限もないとしたら、機能と関数とVBAのそれぞれの長所を使って処理を作るのが無理のない作り方だ、ということだと思います。

コメントを投稿する