ITスペシャリストが語る芸術

-The Kay Notes-
SE、プログラマー、AI開発者、教育研究家、潜在意識活用研究者、引きこもり支援講師Kayのブログ。

Excel

当ブログは、第一期ライブドア奨学生ブログです。
◇お知らせ
[2019/12/28]AI&教育問題専用ブログ、メディアの風を公開しました。
[2017/03/01]「通りすがり」「名無し」「読者」「A」等のハンドル名のコメントは原則削除します。

VBAはコスパが最高

必ずしもエンジニアになりたいわけではないが、コンピュータープログラミングをしたい。
そして、それは、単なる趣味ではなく、実益を得たい。
それであれば、私が勧めるものは、Excel VBA一択である。
なぜかというと、Excdel VBAは十分、本格的で、中程度レベルのプログラミングは全て出来る上、Excelの素晴らしい機能を自在に使えるからだ。
一般の人なら、プログラミングは中程度レベルが出来れば十分で、はっきり言って、職業プログラマーでも、中程度までちゃんとプログラミングが出来る人は多くない。よって、Excel VBAがしっかり出来れば、日本に限れば、職業プログラマの半分は抜ける。
そして、Excelの、長年に渡って世界中で使われることで徹底的に磨き抜かれた機能は、他のプログラミング言語で実現しようと思ったら、出来るとしても、複雑になってしまうが、Excel VBAなら、シンプルに出来てしまう。
そういえば、プログラミングに「オブジェクト指向」という、何だか専門っぽくて格好良い(笑)言葉があるだろう。
しかし、それが何か、本当に分かっている人は、職業プログラマでも、あまりいない。
だが、Excelの機能をVBAで使うことは、それだけでオブジェクト指向プログラミングなのである。
つまり、VBAプログラミングの中で、Excelの機能を封じ込めたオブジェクト(実に沢山ある)を使えば(簡単に使える)、もうオブジェクト指向でプログラミングしているのである。

「VBAはプロが使うものじゃない」と言う人がいるようだ。
嘘である。私が使っているし、VBAを好んで使うプロもいる。
能力が高いプロが使えば、JavaもVBAも優れた処理を行うソフトウェアを構成させることが出来る。
プロが好んでVBAを使う場合には、それが、ユーザーに最大の利益を与えるからであることが多い。他のプログラミング言語では望めないことが沢山あるのだ。
例えば、ユーザーが慣れたExcel上で、高度なデータ処理プログラムを使えるメリットは実に大きい。
私は、ユーザーのシステムを見て、JavaではなくVBAを使っていれば、ユーザーの利益は十倍だったのにと思うことは多い(その逆も確かにあるが)。

そして、エンジニアでない人がVBA以外を使っても、ほぼ利益はない。
HTMLすら、ほとんどの場合、素人が使っても、ロクなものは作れないが、VBAなら、素晴らしい利益が得られることも多い。

だから、特にITエンジニアになりたいというわけではない人には、迷うことなくVBAをお勧めする。
また、コンサルティングや業務分析、業務企画等の能力と組み合わせれば、プロで通用する。
VBAは古い?
確かに最新ではない。しかし、それで何か困ることは、まずない。むしろ、最新のプログラミング言語の奇妙な特性で困ることの方が多い気がする。
それに、COBOLやFortran等に比べればはるかに新しいが、COBOLやFortranだって、現在も実用に何の問題もない。

このようなわけで、私は、普通は、Excel + VBAを勧めるが、Acccess + VBAはさらに良いと思うのだ。
データ処理の規模や適応性が飛躍的に上がるからだ。
Accessのデータベース機能だけでも、Excelの数十倍の能力があると思うが、Accessと、マイクロソフトの大規模データベースシステムであるSQL Serverの相性は良く、簡単にくっつけて使えるが、それであれば、大きな規模のシステムも、Accessで出来てしまう。
しかも、無償のSQL ServerであるExpress版でも、相当なことが出来てしまうのである。
私は、ある企業の、年商30憶円規模の部門の主要システム(ネットワークシステム)をSQL Server Expressに入れたことがあるが、余裕で入ってしまった。
また、AIの機械学習のデータを作るのに、Accessほど効率の良いツールはないと思うし、個人的な考え方では、Accessは使いこなしさえすれば、BIツールとしても最強であると思う。
ただ、Accessを効果的に使うには、データベースに関する理解とセンスが必要になるので、少しは勉強しなければならないが、そのメリットは大きいだろう。

ExcelやAccessの機能から考え、値段の安さは奇跡的だ。
共に、2万円以下で永久ライセンスが買える。
恐ろしい(笑)。ライバルは絶対に現れない。真似が出来るはずがない。
Accessなら、100万円(あるいは、月10万円)でもおかしくはないと思う。実行版(いわゆるランタイム)は無料なのだから、もっと高く見積もっても良いと思う。
実際、Accessのランタイムを100台以上のPCにインストールして使っている中規模の会社を知っているが、もし1台のランタイムが年5万円なら、毎年500万円以上必要だが、これが無料なのだ。

ご参考に。








Excelは確固たる世界標準

何でも、世界標準とは凄いものだ。
日本人は、スマートフォンでは、アップルのアイフォンを持っている人が多いが、アイフォンは世界で最初のスマートフォンで、アイフォンが出てしばらくは、他にスマートフォンはなかった。
今では考え難いが、当時は、スマートフォンが一般に普及するとは思っていない人が圧倒的だったので、ライバルが出なかったのだ。
当時は、圧倒的なIT企業だったマイクロソフトのトップ・・・ビル・ゲイツや、ゲイツの後継者のスティーブ・バルマーもそうだったので、マイクロソフトはスマートフォンに関わろうとしなかった。
スマートフォンはコンピューターだ。
大衆が、コンピューターを電話として持ち歩くなんて、誰も思わなかったのである。
(スティーブ・ジョブズの先見性は改めて凄いと思う)
ところが、スマートフォンの可能性に気付いたのがグーグルで、グーグルは、アイフォンのOSであるiOSに似たAndrpidという、スマートフォン用OSを作ったが、スマートフォンそのものは自社で作らず、沢山の会社に作ってもらうことにした。一方、アイフォンは、OSもスマートフォンも、アップルしか作れない。
結果、現在、シェアでは、Androidスマートフォンが、アイフォン(iOSスマートフォン)よりはるかに多い。しかし、アイフォンのブランド力は強く、アイフォンのファンの多くは、Androidに乗り換えようとしない。
もし、マイクロソフトのビル・ゲイツやスティーブ・バルマーが、グーグルより先に、スマートフォンの重要さに気付いていたら、マイクロソフトは、パソコンに続き、スマートフォンのOS市場も奪い、マイクロソフトは現在でも時価総額世界一(2021年10月)であるが、もっとはるかに大きな会社になっていたはずだ。
ただ、マイクロソフトはかつて、圧倒的なナンバー1だった時代に、大き過ぎることから分割されそうになったことがあり、同じ苦労をせずに済んだのかもしれない。とはいえ、マイクロソフトも2度目となると、昔と違い、もっとうまくやったに違いない。まあ、これはそれはあくまで「もしも、マイクロソフトがスマートフォン市場を奪っていたら」の話で、あまり意味はないが。
そして、やはりグーグルは、かつてのマイクロソフトのように、市場支配力が大き過ぎるということで、アメリカ政府(正しくはアメリカ司法省だが)に訴えられ、今後、長きに渡って、アメリカ国家を相手に裁判で戦わないといけない。

そんなわけで、スマートフォンの世界標準は、アイフォンとAndroidスマートフォンの2つがある。
これは、たとえて言えば、自動車に、運転方法等がやや異なる2つのタイプがあり、免許証も2種類存在するようなものなのである。
まあ、自動車が空を飛ぶ時代になれば、本当にそんなことが起こるかもしれないが、当分、自動車は空を飛びそうにないし、もし、本当にそうなったら、国際会議で統一を目指すことになると思う。

パソコンでは、1980年代から、マイクロソフトのMS-DOSやWindowsが、事実上、世界標準だ。
ところが、アイフォン同様、アップルだけがハードとOSを作るマッキントッシュというパソコンがあり、シェアは小さいのに、確固たる存在感を保ち続けているのは凄いことだと思う。
グーグルも、Chrome OSという、パソコン用OSを作り、普及を目指しているが、こちらは、いまひとつ流行らない。
ところが、Windowsは圧倒的シェアなのだが、そもそも、大衆が、パソコンの代わりにスマートフォンを使うようになり、パソコン自体の出荷数が伸びないので、いっそう、Windowsの存在感が弱くなっている。
今や、日本でも、新卒の新入社員がパソコンを使えないので研修しないといけないという、ちょっと信じられないことが起こっている。

世界標準と言えるものが少なくなる中で、「これは世界標準」と言い切れるのが、マイクロソフトオフィスというビジネスソフトで、その中でも、ワープロソフトのWord、表計算ソフトのExcelがそうで、特に、Excelを使わない会社は世界中にないと言えるほどである。
Excelの牙城を崩そうと、サイボウズやジャストシステムが、Kintonやジャストユニットを作り、それぞれ優れた製品であるが、企業がExcelを使わなくなることはないだろう。
よって、座って働きたいなら、Excelは絶対に使えるようにならないといけないし、Excelが上手いほど、特に若い間は有利になる。
(その前に、スマートフォンばかり触ってないで、パソコンを使うことだ)
Excelが使え、そして、Excelでマクロが組める(VBA言語でプログラミング出来る)なら、貴重な存在である。
よって、特に専門プログラマーを目指すのでなければ(実際は専門でも有りだが)、Ecxcelでマクロを組めるようになると良い。
尚、私もだが、Accessで大きなシステムが組めるほどなら、Excelは使わないということもある。
そんな人は、さらに貴重なのだが、そこまで出来るようになる人は少ない。








社会と仕事の現実と希望の光

就職難と言われるが、高度経済成長期やバブル景気の時期ですら、そう言われていた。
一方で、いつでも、大なり小なり、人手不足があった。
今もまた、就職難と同時に、深刻な人手不足、労働力不足なのだ。
難しい話ではなく、皆が、楽で給料が高い仕事、さらに、保証が手厚い会社を望んで、そんな「美味しい」職場の就職の競争率が高く、一方、いわゆる3K(きつい、きたない、きけん)現場(プラス安月給)は、誰もやりたがらないので、働く人が足りない。
要するに、選ばないなら仕事はいくらでもある。
とはいえ、ある程度はちゃんと選ばないと、ブラック企業も多くなっているので、仕事が厳しいだけでなく、詳しくは書かないが、うっかり、やってはいけない仕事に就いてしまいかねない。
今の時代、就職なんかしなくて良いと言う者達も増えてきたが、「では、具体的に私はどうすれば就職せずに稼げますか?」と尋ねても、曖昧な概念を示されるだけで、何の問題解決にもならない。
「今は、アドセンスやアフィリエイトで稼げるのです」なんて言うのは、冗談か嘘である。少なくとも、普通の人に対しては。
ジェームス・スキナーの『寝ながら稼ぐ』なんて本があり、「あなたにも出来る」とあるが、書いてあることは、「ブログを開き、そこにアフィリエイトの広告を貼れば、自動的にお金が入ってくるのです」という夢物語だ。そりゃ、スキナーのように、大きな会社の経営に携わり、自分でも沢山の会社を立ち上げて成功し、ベストセラーを何十冊も書いた凄い人なら、ブログに広告を貼れば儲かるのかもしれないが、普通の人がブログを開いても、収益が月に5千円になれば大成功の部類だ。
「いや、俺はブログで月百万円以上稼いでいる」と言う者もいるが、それが本当か嘘かとか、やり方が違法か合法かという以前に、99%の人には無理だ。
「普通のサラリーマンだった僕がブログで生計立ててます」なんて本もあるが、見れば、そんな人は、とてもじゃないが普通の人でない。
また、中高生がネットで高収益を上げて話題になることがあるが、ネットがない時代ですら、そんな人(稼ぐ学生)はいた。しかし、それは、長くは続かないのだ。
絵や音楽で生きていきたい人も多いと思うが、人気イラストレーターや人気ボカロPですら、それだけでは食べられない人の方が多く、少し稼げていても、それはほんの一瞬だ。

何とも夢のない話である(笑)。
誤解を恐れず言えば、誰でも就職出来る職場に、介護と警備がある。給料は安く、ほとんど座っていることが出来ず、夏は暑く、冬は寒いところにいることが多く、とてもではないが楽は出来ない。ただ重労働というだけでなく、不意に辞めたり、休んだりする人も多く、管理者の苦労もだが、そのしわ寄せで、本当に何やらされるか分からないらしい。
私も、ブラックな仕事にはかなり就いたと思うが、私程度では、それほど黒くないかもしれない。
私のように、若いうちにブラックな状況にあったとしても、それが良い経験になるのだから、若さとは素晴らしい・・・とはいえ、職場によっては、若いうちに、歪められたり腐ったりしてしまう。
まして、いい歳をしてブラックな仕事についたら、かなりヤバい。
安倍政権が、大中企業の収益を向上させたことは確かで、それは立派な業績であるとは思うが、小・零細企業に関してはほとんど手付かずだ。

だが、「特技は何?」と聞かれて、「これです」と自信を持って即答出来る人なら、自分で状況を良くしていける。少なくとも、その方法が見つかる。
20数年、教師やってましたという人がいたが、事情は知らぬが、とにかく、教職をやめたら、特技なんて何もないし、歳も歳なので、楽な仕事に就けない。
そんな訳で、私としては、ExcelやAccessを、マクロ(VBAプログラミング)まで出来るようになっておくことをお薦めする。
JavaやPythonやRuby、PHP、C/C++、C#等は、周辺技術がないと、まともに仕事が出来ず、いわば、牧童のようなもので、若いうちから経験を積んでいないと、いきなりやって出来るものではない(無理ではないが)。
それなら、比較的、それだけで仕事になり、うまくいけば、楽で良い思いが出来るExcelマクロやAccessマクロをマスターして損はないと思う。
また、これらは、まかり間違って、かなり飛躍出来た場合にこそ、強力な武器になってくれる。
そして、案外に、SE、プログラマーとしての需要も多く、それは、3Kが多い開発会社ではなく、今後主流になるべき(アメリカでは主流)社内開発要員としてである。
どうやって覚えれば良いかというと、昨日も書いたが、どの本も同じなので、1冊覚えれば良い。
ちなみに言っておくと、Excel、Accessマクロを、生半可に覚えて3Kに陥っている者も、高度にマスターして仕事もせずに楽をしている人も、両方、よく見る。








これからの時代のExcel、Accessの使い方

プログラミングの練習をするには、昔はかなりの費用がかかったが、今は無料で大抵のことが出来る。
今、一番人気があるプログラミング言語は、JavaScriptとPythonだ。
プロと全く同じ開発環境を無料でインストール出来るが、その手順が複雑で、しかも、ちょっとしたことでうまく動かないことがある。そんな時は、Webで調べて自分で解決していくことで力がつくのだが、PCやインターネットや、プログラム開発に関することに不慣れな人には、なかなかハードルが高く、実際は、全くの素人がプログラミングの勉強を始めるということは、あまりない。
だが、高校生や、時には、中学生が、恐れ知らずで飛び込み、いろいろありながらも、プログラミングが出来るようになることもある。
しかし、そんな人達だって、一足飛びに出来るようになる訳ではなく、かなりの時間をかけ、相当な苦労をして成し遂げたのだ。

将来、開発環境の構築が、誰でも出来るレベルになるかというと、少なくとも、当面・・・10年やそこらは難しいのではと思う。
もし、それほどシンプルになってしまえば、別の問題があるといった事情もある。
ところが、ExcelやAccessでVBAを使うなら、そんなに難しいことはない。
これらは無料ではないが、見返りを考えると、極めて安い投資と言えるのではないかと思う。
私の場合で言えば、購入したものと値段で言えば、

Microsoft Office 2019 Personal (永続ライセンス/2台) 約3万円。※Word、Excel、Outlook
Microsoft Access 2019(永続ライセンス/2台) 約1万5千円。

で、合計4万5千円だ(Amazonで購入。オンライン版)。
高いと言えばそうかもしれないが、私は、これらの価値が解るので、その安さに、今だに仰天しているほどだ。
昔、やはり、Accessを自分で買ったが、その頃は、3万円くらいしたと思う(それでもやっぱり驚くほど安い)。
まあ、ダウンロード版を買う手続きやインストールだけで難しいと思う人も少なくないと思うが、それでも、インストールは昔と比べれば簡単になったし、注意深くやれば大丈夫と思う。
とはいえ、スマートフォンアプリのインストールと比べれば、やや複雑だし、困るのは、うまくいかない場合や、インストール後のトラブルで、それがまた結構ある・・・などと言えば、やる気が萎えるかもしれないが、私もあったし(笑)、サポートの利用の仕方がなかなか分からなかったりする。
だが、なんとかなると信じよう(笑)。

VBAは有償のExcelやAccessが必要だが、「ExcelやAccessを利用出来る」というメリットの大きさはとんでもないものだ。
ExcelやAccessの高度で洗練された機能が、VBAで簡単に利用出来るというのは、他のプログラミング言語では望めない圧倒的利点だ。
では、ExcelとAccessの違いは何かというと、扱えるデータの量と処理の高度さということになる。
Excelでは、そこそこ(数万から数十万)のデータ量で、1つのデータを扱うなら、かなりの数学計算も可能だが、104万レコード程度が限界だし、また、複数のデータを複雑に組み合わせて使うのはやや難しい。
Accessは、Excelよりずっと多くのデータが扱えるし、簡単に複数のデータを組み合わせて使える。
また、Accessは、SQL Serverという高機能なデータベースと一体化して使えるので、相当高度な用途に使える。SQL Serverも、無料のSQL Server Expressで、そこそこの企業の基幹システムで十分使えるほどだ。
私の場合は、本格的な処理では、Access内部のデータベースは、ほとんど処理の途中で一時的に使うだけで、データベースはSQL Serverになる。もちろん、これをAccessで使う。
大きな企業のシステムだって、本当はAccessで作るメリットは多いのだが、ブラウザで使えるWeb形式の方が面倒が起こり難いので、Visual Studioで、C#あたりで作ることが多いが(VisualBasic.Netが使われることも多いと思う)、開発に時間がかかるものである。

個人で使う範囲であれば、ExcelやAccessで十分だし、それが、業務効率を向上させるし、場合によっては、極端に業務効率が上がる。
そして、ExcelやAccessは、うまく使えば、最強のBI(ビジネス・インテリジェンス)ツールになる。
本当によく、BIツールの宣伝や説明を見るが、「そんなの全部、ExcelやAccessで出来るじゃない」と思う。要は、高価なBIツールは、ExcelやAccessが使えなくても出来るのが良いのであるが、どんなことでも自由自在とはいかない。
また、今後は、ディープラーニング型AIを実際に使う機会が増えるが、ディープラーニング自体はツールがやってくれるので、それほど難しくないが、ディープラーニングのためのデータを整えることは、出来ない者には絶望的なほど出来ない。
だが、ExcelやAccessをうまく使えば、それが出来る。
ディープラーニングの本には、画像データをサンプルに使うものが多いが、実際に使うのは数値データではあるまいか?
しかし、画像データの方が、データを集める苦労を隠せるので、本では、そうするのではないかという面もあるのではと思う。
私が4月に出版する予定(数学講師との共著)のAI書籍では、数値データでディープラーニングする面白いテーマを選んだ。
データを作成するVBAプログラム組み込みのExcelファイルもダウンロード出来るようにする予定なので、実際に自分で試せる。
自分でやるということが、習得への一番の近道である。








社会で生き抜く武器を選択する

社会と戦場が似ているのは、実力がモノを言うところだ。
戦場で、どこかの部隊に所属しないと生きていけない場合、出来るだけ強くて待遇の良い部隊に入ろうとするだろう。
そして入隊したい部隊があれば、入れてもらえるよう自己アピールをする。
そんな時、「○○大卒です」だの、「理論物理学を学びました」、「教職20年です」と言えば、笑われる。
採用したい部隊が尋ねたいのは、「銃はうまいか?」、「ヘリの操縦は出来るか?」、「バーベルは何キロ上げられるか?」などだろう。
社会も同じだ。
よほど若い時なら、他に判断材料がないので、学歴とか資格、あるいは、趣味なんかも問われるかもしれない。
しかし、30歳にもなれば、「経理は出来るか?」、「取り引きに関わる法律に詳しいか?」、「プログラミングは出来るか?」、「モノを売る経験や自信はあるか?」などが問われる。
40も過ぎたオッサン、オバサンに出身校や学校の専攻なんか聞いたって仕方がない。
だから、社会で通用する武器を持たなければならない。
ただ、ソバを打つなんて能力では、ソバを打つ以外では通用しないので、ある程度の歳であれば、高い腕前でなければならないし、多少の腕があっても、仕事をする場所があるとは限らない。
つまり、出来るなら、広い場所で通用する武器を持っている方が良い。
軍隊の場合は、射撃の名人なら採用される可能性が高いが、アーチェリー国体3位とかで優遇されるかどうかは分からない。

そこで、現代では、プログラミングが出来ることは有利なのだが、それも、選択を誤ってはならない。
Webアプリ開発の専門家になる場合は、サーバーOS、Web OS、ネットワーク、データベース、HTML、CSS、プログラミング言語とそれに対応したフレームワークといったことが、全て、ある程度は出来なければならない。
それに、サーバーOSと言っても、Linux系、Windows系があるし、それらは刻々バージョンアップされるので、それについていかなければならない。
データベースにしたって、1つのサーバーOS・・・例えば、Windowsにしたって、SQL Server、Oracleが代表的だが、他にも沢山ある。
全部勉強してからやる訳にはいかないので、何が現れても、要点を掴み取る能力が必要になる。
早い話が、好きで、若くて、向いていることが必要だ。
スマートフォン用アプリ開発では、「OLが作ったアプリがヒット」だの「小学生が作ったアプリが話題」だのと騒がれこともあるが、それでそんなに儲かった訳でもなく(あるいは全く儲かっていない)、その1つだけで終りである場合がほとんどだ。スマホアプリは、Webアプリよりも厄介なことが多くあるのだ。

だが、ExcelとVBAなら、Excelさえインストールしていれば出来るので、ExcelとVBAさえ磨いておけば、後は、日々の仕事を通して、業務の流れを掴み、それをどう、VBAで合理化するかを考えれば良い。そこで試行錯誤し、失敗を重ねることで能力がつく。
AccessとVBAの場合は、多少のデータベースの知識やテクニックが必要になるが、手に負えない範囲ではないと思う。さらに、SQL Serverを扱えるようになれば、かなりの人材と認められる。一流大卒で実務的なことが何も出来ない者とは比較にならないほど有利である。
そして、ExcelとVBAが出来る者でも、そんなに多い訳ではない・・・それどころか、滅多にいないので、これは武器になると思う。
AccessとVBAの場合は、実力が高ければ、更に有利だろう。
「ExcelやAccessは古い、今は○○の時代(○○は、kintoneやUnitBase等)」という宣伝メールが、それらのメーカーから毎日のように届くが、それらは、極めてローカルに使われているに過ぎず、ExcelやAccessの圧倒的シェアにはまるで及ばない。
FileMakerは良いかもしれないが、やはり、ユーザーが少ない。
MAGICは確実に良いが、これはユーザーが少な過ぎると思う。
もちろん、これらも、よほどの腕前なら仕事は得られるだろうが、仕事は選べない。

そんな訳で、生きる武器を持ちたい場合、現在、特にITの技術を持たない場合、Excel+VBAや、Access+VBAをお薦めする。
習得のコツは、「時間をかける」これだけである。
他の人より進歩が遅くても問題ない。最終的には、多くの時間をかけた者が勝つのである。半端無い時間をかけることだ。それで生きるための武器が得られるなら楽なことである。

さらに朗報を言うなら、現在のディープラーニング型AIは、ツールで作る時代であり、ExcelやAccessでデータを収集・加工出来れば、AI開発への道も開かれると思う。








プロフィール
名前:Kay(ケイ)
・SE、プログラマー
・初音ミクさんのファン
◆AI&教育blog:メディアの風
◆著書『楽しいAI体験から始める機械学習』(技術評論社)


当ブログは第1期ライブドア奨学生ブログです。
Kay Twitter Home

執筆のご依頼




最新コメント


月別アーカイブ
記事検索
ブログバナー&Mail


メールはこちらへ

PV since 2010/09/08
  • 今日:
  • 昨日:
  • 累計:

人気ランキング参加中
にほんブログ村 哲学・思想ブログ 人生・成功哲学へ
にほんブログ村 メンタルヘルスブログ ひきこもりへ


タグクラウド
QRコード
QRコード