LoginSignup
0
0

More than 1 year has passed since last update.

スプレッドシートに貼り付けたCSVを列展開

Posted at

スプレッドシートに貼り付ける内容をSlackに通知してユーザに貼り付けてもらう運用をしたかった。
しかし、API経由でSlackに通知するとタブがスペースに変換されてしまう。参考

ユーザそれぞれにJavaScriptを入れてもらうのは現実的ではなかったので、
通知はカンマ区切りにし、貼り付けた後にGAS実行してもらうこととした。

// シートが開かれたときにメニューに追加
function onOpen() {
  SpreadsheetApp.getUi()
  .createMenu('GAS実行') // メニュー項目名
  .addItem('選択範囲のカンマを右に展開', 'commaExpand') // 項目の追加
  .addToUi();
}

// 選択列の内容をカンマ区切りで右列に展開する
function commaExpand(){
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let activeRange = sheet.getActiveRange();
  let paste = activeRange.getValues().map((val) =>{
    target = val
    if(Array.isArray(val)){
      target = val[0].toString()
    }
    return target.split(',')
  })
  let pasteRange = sheet.getRange(activeRange.getRow(), activeRange.getColumn(), paste.length, paste[0].length)
  pasteRange.setValues(paste)
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0