こんにちは、五足のわらじです。

エクセルとスプレッドシートってほとんど同じ感覚で使えるんですが、VBAとGASは全然違うんですよね。

関数だったら主要なものはほぼそのまま動きますが、VBAのコードをそのまま貼り付けてもまったく動きません。

どっちかというとVBAのほうが特殊なんだと思いますが、同じセルを扱うプログラムなのにこんなに違うかなってくらい違いますね。

で、先日、クライアントから提供されているエクセルのテンプレファイルのマクロをスプレッドシート上で実行したくて、VBAからGASに移植しました。

エクセルだとみんなで同時に作業ができない(作業する行を分けるなどして後でマージすればできますが、作業によって行挿入などがあった場合ちょっとややこしくなります)ので、エクセルで一度マクロを走らせてからスプレッドシートに貼り付け、作業後にまた結果をエクセルに貼り付けるということをしています。

なので、最初からスプレッドシートに貼り付けてそこでマクロを走らせれば、エクセルを開くのが一度だけで済むというわけです。

そんな長いコードじゃないんですが、ほとんど書き直しって感じでわりと大変でした。

しかし、それよりも問題だったのは実行速度で、クライアントのマクロがFor文の入れ子で回していて数千行を見るロジックなので、エクセルではほとんど一瞬で済むものの、スプレッドシートでは時間がかかりすぎて結局あきらめました。

ロジックを変更すればもうちょっと速くはなりますが、スプレッドシートはみんなで一斉に編集できるというメリットと引き換えにこういうデメリットもあるんだなあと改めて感じました。

なので、VBAのコードをGASに移植するというのはあまりおすすめではなく、GASにはGASに向いた仕事をさせるというのが大切ですね。

著者

五足のわらじ
五足のわらじ
在宅ワークを4つと、サラリーマンを1つ、合計五足のわらじを履いて走り回ってます⇒2017年7月より在宅ワークで独立しました

在宅ワークは、アフィリエイト、アプリ制作、LINEスタンプ・着せかえ制作、ライターの4つをやっていて、サラリーマンは辞めましたが、それに替えて法人化を目指して新規事業を立ち上げ中です。

自宅では、デザイン、コーディング、プログラミング、ライティング、写真、イラスト、アニメーション、音楽、マーケティングなど、ひとりですべて行っているマルチクリエイターです。
事務所では、単純作業からマネージャー職といった包括的な業務まで、幅広い分野の受託業務を行ってます。

もともと在宅ワークは副業でしたが、収入を普通のサラリーマン並みに増加させることができたので、いまは在宅ワークと事務所での受託業務のみで生活しています。

在宅ワークはすべて独学でやってきましたので、これから独学で在宅ワークを始めようと思っている方の参考になればと思ってブログを始めました。

いいことばかりじゃなくて、辛いことや失敗したことなども正直に書いていきますので、これから始めたいと思っている人もぜひ参考にしてください!