👌

GoogleSpreadSheetでスネークケースをキャメルケースに変換する方法

に公開

はじめに

スネークケースで書いていたスプレッドシートの書類をキャメルケースに変換するように指示を受けました。
うーん・・・そういうメニューありそう・・・と思いましたが見当たらず。
が、ないなら作れば良い話。
というわけでやり方を公開します。

やりかた

スプレッドシートのメニューからAppScriptを選びます。

ソースコード編集画面が開いたら

左上のファイルのところにある+ボタンをクリックして、新規ファイルを作成。
名前はなんでもいいですが、snakeToCamel.gs とかつけて保存します。

ソースコードに以下を貼り付けます。

snakeToCamel.gs
function replaceSnakeToCamel() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getActiveRange(); // 選択中のセル範囲
  const values = range.getValues();

  const converted = values.map(row => 
    row.map(cell => {
      if (typeof cell !== 'string') return cell;
      return cell.replace(/_([a-z])/g, (_, char) => char.toUpperCase());
    })
  );

  range.setValues(converted);
}

ついでなので、逆にキャメルケースをスネークケースに戻すコードも書いておきます。

camelToSnake.gs
function replaceCamelToSnake() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const range = sheet.getActiveRange(); // 選択中のセル範囲
  const values = range.getValues();

  const converted = values.map(row =>
    row.map(cell => {
      if (typeof cell !== 'string') return cell;
      return cell.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
    })
  );

  range.setValues(converted);
}

メニューに上記コードを起動する紐付けを行います。

addMenu.gs
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('文字列変換')
    .addItem('スネーク → キャメル', 'replaceSnakeToCamel')
    .addItem('キャメル → スネーク', 'replaceCamelToSnake')
    .addToUi();
}

このようになっていればOK。

ソースコードを保存して、画面を閉じます。

一度、スプレッドシート画面を更新します。
ブラウザは閉じなくても普通にリロードするだけで大丈夫です。

そうすると写真のように新しいメニューが追加されています。

そうしたら変換したい範囲を選択してメニューを実行すると置換されます。

おわりに

デフォルトで使えない変換も自由に組み込めるのは便利ですね。
今回は自作スクリプトですのでセキュリティのリスクも低いのもメリットだと思います。

株式会社ONE WEDGE

【Serverlessで世の中をもっと楽しく】 ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
https://onewedge.co.jp

Discussion