ボロボロ皇帝のボロ切れと塊

ボロボロ皇帝が悪態、嫌み、好み、何でも己の視点だけで自由に吐く「偏」な場所。たまにExcel、家電、音楽等についても好きに吐いてる。

ボロボロ皇帝が悪態、嫌み、好み、何でも己の視点だけで自由に吐く「偏」な場所。
Excel、家電、音楽、ゲームイラスト小説映画、性癖について等、何でも好きに吐いてる。

どうでも良いかもしれんが背景色変わっていくの見てくれ。
更にどうでも良いかもしれんがアイコンが息してるの見てくれ。


我輩は何にも制約されない身、
「耐えぬ」事を恐れないと決めたのだ!
我輩は好きなときに悪態をつく!
妬み僻み嫉みを背負い、
マイナーだろうが邪道だろうが
我輩は我輩の道を行く!
好きなものは懸命で不器用な諸君,
嫌いなものは器用で完璧を気取った奴らだ。
         

VBAをGASに変換する公式アドオンMacroConverter使ってみたが…

 

連日GASの話でスマンが、今日もGASの話である。

~~~~~

慣れないGASを触っては試行錯誤を繰り返し、全然うまくいかなかったとき。

あ~楽にVBAをGAS化してぇ~(^o^)

そう思うってもんだ。

 

これはとても単純なVBA

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 3 And Target.Row > 3 And Target = "" Then
Target = "電話番号入力"
End If

End Sub

Sheet1のC列4行以降空白になった瞬間、その空白になったセルに"電話番号入力"自動で入力されるだけのコードである。

※ちなみに上記は範囲選択してDeleteしたらバグる。

 

つまりこんな感じ↓

 

f:id:wornoutemperor:20220217170714j:plain

 

用途としては、電話番号入力漏れ防止、だな。入力しろよ、と催促しつつ、入力されずただの空欄にされたときには電話番号入力しろよと再度しつこく促す、といった意味で…

なんでこんなことしているかと言うと、我が課のメンバーの年齢層が高めなためだ。ここまでせんと漏れるんよマジで。

 

んで、これは本来スプレッドシートで離れた店と見やすいように共有しているデータ(社内ポータル用であるGoogleのSiteに埋め込んでいる)なため、VBAではなくGASでこの動きを可能にしたいのである。

 

だが、結果全然書けず、もうなんやねんコイツと思っていた頃。

VBAぐらい人間の言葉で書かせてもらいたいんだが、そうはいかんので初心者にはしんどい。相性悪すぎて今まで学んだことを応用しているつもりでも全然できないしな。

 

ハッとして思いついたのだ。

 

コンバーターとかあるんじゃないの!?!!?

と。

 

そして、さっそく検索である。

VBA GAS 変換*1

 

するとあるじゃないか!!!

しかも公式で!!!!

  Macro Converter - Google Workspace Marketplace 

 

あるのは素晴らしいことだが、ドケチなことに、GoogleWorkspaceのいいプラン利用者限定でしか使えないらしい(Google Workspace Enterprise PlusとG-Suite Enterprise for Education)。

だが、うちの会社結構デカいし、そこそこいいプラン加入してるんじゃね?

と思い、試してみたところ。

 

なんと使えるじゃないか!!さすがだぜ!!!

 

まあさっそく使ってみた感じはこれ↓

 

コンバートすると、

 

f:id:wornoutemperor:20220129012545j:plain

こんな感じでフォルダが作られ、

 

フォルダの中には、

f:id:wornoutemperor:20220129012557j:plain

こういったドキュメントファイルと一緒にGAS入りスプレッドシートがある。

 

 

で、さっそくファイルを開き、スクリプトがどんな感じになっているか確認をしてみたところ…

 

ひとつ、

f:id:wornoutemperor:20220129012613j:plain

 

ふたつ、

f:id:wornoutemperor:20220129012627j:plain

 

みっつ、

f:id:wornoutemperor:20220129012638j:plain

 

よっつ、

f:id:wornoutemperor:20220129012652j:plain

 

ヤバすぎだろ!!たったあれだけのコードのためにこんなに色々書き出されるの!?!??

なんか怖いんだが!!

 

Libraryとか作られているあたりでなんとなくわかるが、

f:id:wornoutemperor:20220129012704j:plain

VBAコード用にAPIが作られた、っぽい。

だからってLibraryがあんな長文である必要はあるのか疑問である。絶対不要部分あるやろと、じっと見つめてみるもどこ消していいか全然わからん。

というわけで、なんとなく試しにLibraryまるごと消してみた。

当然のように動かなかった。

そりゃそうだな。4つセットなんだから。

 

 

にしても、

あんな単純なコードのためにこんな大がかりなことをして、さらに動作が重くなったりしてしまうんじゃなかろうか。

普通ならわざわざAPI使うまでも無いはずの動きである。

これはコンバーターなんかに頼らず、しっかり自分で書いた方がよさそうだ。

そんなわけで我輩はこれの使用をひとまずやめた

コンバート後のスプレッドシートともおさらばした。

 

せっかく会社の恩恵(お高めの有料プラン)に与ったアドオンであるが、もっと長いVBAコードをGASに変換する必要が出てきたとき、本気で自力じゃ絶対無理となったときに、いつか使おうと思う(今も一応自力で出来てはいないが必須ではないのでひとまず諦めた。また気が向いたら挑戦する)

 

 

余談だが、もし非対応プランでMacroConverterを使おうとすると…

f:id:wornoutemperor:20220130010555j:plain

こうなる。

*1:ちなみに一番頭あたりに出てきた動画、まんま使えるVBAをGASに変換する方法みたいなタイトルの奴、裏技でも教えてくれるのかと思いきや、ご丁寧な書き方説明だった。そうじゃないねん。ぺっぺと単純操作でやりたいんよ。