![見出し画像](https://assets.st-note.com/production/uploads/images/130147581/rectangle_large_type_2_bf530c1d96036b860c933fb1786ef3eb.png?width=800)
Photo by
akiyohox
#2/7 サクラエディタのマクロを作った
何ができる?
Cみたいに1からプログラミングをするのと、VBAのようにオブジェクトがあってそれをうまく操作していくのとどっち側なのだろうと思ったのだが、どうやら両方のいいとこどりをしているみたいだ。
サクラエディタのマクロはJavaScriptで書くことができ、JSの機能とサクラエディタ独自の機能をどちらも使うことができる。サクラエディタで"やりたいこと"というのも、よく行う置換操作の自動化とかgrepしてどうのこうのとか文字列操作が基本となるだろう。JSを使ったことはあまりないが、正規表現と文字列に対するメソッドは知っておくと便利だろう。
何がしたい?
今回は、「対象となる複数のID」をExcelから取得して、それをキーにDBから値を取得することを考える。そういった際に、WHERE句にIN句を使って、IN (対象となるIDたち);とすると楽だろう。そこで、Excelから取得したID列をIN句に使えるように自動化したい。
要件はこうだ。
改行、もしくはタブ区切りの値を入力(選択して実行)すると、
カンマ区切りで値がシングルクォートに囲われ、全体がカッコで括られて末尾にセミコロンが入ったものが出力される。
('a', 'b', 'c'); ←こんな形
また、入力が少し雑で、末尾に改行を複数選択していたとしても同様の結果を返すようにしたい。
眠いので詳細は省くが、下記の通りに書いたらちゃんと動いた。
やったね。
![](https://assets.st-note.com/img/1707312408211-jzq03TKweT.png?width=800)
サクラエディタ独自の関数やオブジェクトは下記に乗っております。
こんな機能があったら便利だなと思ったら作るのは楽しいのですが、そもそも「あったら便利だな」をあんまり思いつかないのでそういった視線を大切に生きていきたいですね。
この記事が気に入ったらサポートをしてみませんか?