とある友人から、以下のお知らせをいただいた。
今日、Googleスプレッドシートがマクロに対応したようです。
→
https://jp.techcrunch.com/2018/04/12/2018-04-11-google-sheets-gets-macros/
それで、返信をした。
社内で返信の内容をシェアしたところ、
Googleスプレッドシートがマクロに対応した件、
私も社内のマネージャー仲間から話を聞きまして、
非常に関心がありました。ただ、「マクロに対応」という表現にピンと来なくて、
頭の中は、
じゃぁ、Google Apps Scriptは何だったの??
という程度でした。ですので、上記内容は大変勉強になりました。
ありがとうございます!
という反応をもらった。
そこで、ここでも公開することとした。
返信文は、以下のとおり。
– – –
おはようございます。
おお、お知らせありがとうございます。この情報、まだ知りませんでした。
「マクロ」ということですが、…。これを読んだだけだと、実用性としてはまだまだかなというのが正直な感覚です。
というのは…。
以下の理由からです。
[1]Googleスプレッドシート(以下、GSと表記)の最大の欠点である「AppScriptの実行時間制限」は依然として解消されていないから。
[2]今回追加された機能は実際には、「AppScriptを書く/実行するやり方として新しい方法が提供された」というだけに過ぎないから。
– – –
上記についてもう少し詳しく書きます。
そのための前提として…。用語の確認。
○Visual Basic:
エクセルでの処理を自動化するためのプログラムです。
○AppScript:
GSでの処理を自動化するためのプログラムです。
○マクロ:
上記のようなプログラムを書くための簡易なツール。及び、上記のようなプログラムを実行するための簡易なツール。
より簡単な言葉で言い換えると、「プログラムの画面を見ないでもプログラムを作ったり実行したりできる機能」のことです。
– – –
GSでは、以前からAppScriptが提供されていました。
これは、機能的には確かにVisual Basicに匹敵するものがあります。
表計算というだけでしたらVisual Basicを使ってExcelシートを操作するときも、AppScriptを使ってGSを操作するときも、機能的にそんなに違いは感じません。
どちらかの言語が得意であれば、もう片方の言語の習得も比較的簡単にできるでしょう。
– – –
一方、Excel上で動かすVisual Basicと、GS上で動かすAppScriptでは、実行環境の違いから生じるそれぞれの得意不得意があります。
○Excel上で動かすVisual Basic:
Windowsの機能を使った機能拡張や、ファイルフォルダの操作についてはこちらの方が強いです。
○GS上で動かすAppScript:
他のドメインのWEBページから情報を取ってきたり、パソコンからでもスマートフォンからでもリンククリックだけで利用できるフォームと連動させるとかそういったことについては、こちらの方が強いです。
– – –
…と。これだけ見ればどちらも一長一短なのですが。
GSで動くAppScriptには、実は、(僕からみたら)致命的ともいえる弱点があります。
それは何かというと、実は、AppScriptは、一定時間以上処理を続けていると、突然、プログラムが強制終了してしまうのです。
具体的には、一番最新の状況を把握していませんが、僕が調査した段階では、6分間連続し処理をするとプログラムが強制終了してしまうという状況でした。
今、念のため、ささっとWEBを検索してみましたが、この件が解消したという報告は特に見かけませんでした。
さらに言うと、一日当たりの合計実行時間にも制限があるようです。
なので、WEBを検索すると、この制限を回避するための方法についてのディスカッションをいろいろと見かけますwww
– – –
参考までに…。
この機能制限がなぜあるのかというと、それは、GSのプログラムを実行させようとすると、Googleのサーバーが処理をするので、サーバの処理の負荷をGoogleが嫌っているのと思います。
例えば、頻繁にAmazonの商品を検索しに行ってその最新情報を取得するといったプログラムをひたすら連続実行されたらGoogleとしては迷惑なのです。
Visual Basicにそういう制限がないのは、Visual Basicを実行するときに負荷がかかるのは個人個人のパソコンだからです。それであれば、Microsoftはまったく困りません。
GSのAppScriptが今後この機能制限を外すか?というと、少なくとも無料サービスにおいてはそれはないだろうと僕は思います。
サーバの負荷の分を支払えということになれば話は別でしょうが。
– – –
ということで、AppScriptの方には実行時間の制約という問題があります。
これは、「大量のデータを分析したい」「分析して高度なレポートを作成したい」という時には致命的な制約です。
ですので、今のところ、僕は、受講生に、AppScriptの学習を進める気はありません。
– – –
さて、で、今回の「マクロの機能が追加された」ということですが。
すでに述べた通り、「マクロ」というのは、「プログラムの画面は見ないでもプログラムを作ったり実行したりできる機能」のことでしかありません。
ここでいう「プログラムを作る」とは、具体的に言うと、画面上で表計算の作業をいろいろすると、エクセルなりGSなりがその操作に相当するプログラムを自動生成してくれるというものです。
とはいえ、この自動記録機能で生成されるプログラムは、プログラミングに慣れた人が作るプログラミング並べてどうしてもしょぼいものになってしまいます。
ですので、例えばExcelでは僕は「マクロの自動記録」でプログラムを作る事はほとんどありません。
実務で「自動記録」で生成されたプログラムだけを活用して「マクロ使いこなせています」なんて言ってる人を見ると、僕は、「あ~あ」と思います。
この感覚は、自分でプログラムを書ける人からみたら概ね共通でしょう。
– – –
ということで。
長くなりましたが、最初に書いた結論の以下の二点についてはこれでご理解いただけたでしょうか?
[1]GSの最大の欠点である「AppScriptの実行時間制限」は依然として解消されていないから。
[2]今回追加された機能は実際には、「AppScriptを書く/実行するやり方として新しい方法が提供された」というだけに過ぎないから
– – –
Googleスプレッドシートの登場は確かに大きな出来事でしたが、今回の「マクロ搭載」という話は、それに比べたらかなり変革の具合はかなり小さいですね。
– – –
最後に…おまけ。
最近、僕のパソコン環境をアップグレードしました。
具体的に言うと、音声認識ソフト用のスピーチマイクの高いものを購入して、それを使って音声認識ソフトを使って文章書くようにしています。
すでに、そういうの、使われていますか?
もしまだでしたらぜひ使ってみてください。おすすめ商品等ご紹介できます。
実は、この文章も、すべて、音声認識ソフト使って書きました。
この文章中で僕が書いた文字は一文字もありません。
かなり仕事が楽になって生産性も大幅に向上しますよ!