【GAS】選択した範囲をCSV出力する方法(Gスプレッドシート)

コピペでできるGAS

GAS応用の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】CSVファイルをローカル(パソコン)に出力する方法(Gスプレッドシート)
  • ワンクリックでCSVファイルをローカル(パソコン)にダウンロードすることができます。
  • さらにダウンロードしたファイルをExcelで開いても文字化けしていません。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    • スプレッドシートで選択した範囲をCSVファイルに出力できます。
    • 特定の範囲をCSVファイルにワンクリックで出力できます。

    なので、サクッとマスターして

    と答えてあげてください。

    動画はこちら

    シートはこちら


    *クリックすることでシートが開きます。(コピーしてお使いください)

    スクリプト

    【GAS】CSVファイルをローカル(パソコン)に出力する方法(Gスプレッドシート)
  • ワンクリックでCSVファイルをローカル(パソコン)にダウンロードすることができます。
  • さらにダウンロードしたファイルをExcelで開いても文字化けしていません。
  • のスクリプトから変更箇所

    getData()関数を入れ替えてください

    選択した範囲の場合
    // データの取得
    function getData() {
     
      // スプレッドシート上の値を二次元配列の形で取得
      const sheet = SpreadsheetApp.getActiveSheet()
      // const range = sheet.getDataRange()    //シート全体
      const range = sheet.getActiveRange()    //選択した範囲
      // const range = sheet.getRange("A2:A5")    //指定した範囲
      const values = range.getDisplayValues()
      console.log(values)
    
    
    
      // 二次元配列をCSV形式のテキストデータに変換
      let dataArray = []
      for (let i = 0; i < values.length; i++) {
        dataArray.push(values[i].join(","))
      }
      return dataArray.join("\r\n");  // 改行コード
    }
    指定の範囲

    以下のように const range = sheet.getRange("A2:A5")    //指定した範囲

    のコメントを外せばOKです。

    範囲(以下の例ではA2:A5)はあなたの環境に合わせて変更してください。

      const sheet = SpreadsheetApp.getActiveSheet()
      // const range = sheet.getDataRange()    //シート全体
      // const range = sheet.getActiveRange()    //選択した範囲
      const range = sheet.getRange("A2:A5")    //指定した範囲
      const values = range.getDisplayValues()
      console.log(values)
    

     

     

     

     

    ポイント

    範囲を指定するには、それぞれ

    シート全体
    sheet.getDataRange()
    選択した範囲
    sheet.getActiveRange()
    指定した範囲
    sheet.getRange(“A2:A5”)

    を指定します。

     

     

     

     

     

     

    では、もう少し使いやすくしてみましょう。

    チェックボックスで切り替える

    指定範囲と選択範囲をチェックボックスで切り替えられるようにします。

     

    function getData() {
      const CKPOS = "A1"
      const RGPOS = "C1"
    
    
      const sh = SpreadsheetApp.getActiveSheet()
    
    
      let range
    
    
      if (sh.getRange(CKPOS).getValue()) {  //チェックされている場合
        const strrange = sh.getRange(RGPOS).getValue()  //読み取る範囲を取得する
        console.log(strrange)
        range = sh.getRange(strrange)
      }
      else {
        range = sh.getActiveRange()    //選択した範囲
      }
      const values = range.getDisplayValues()
      console.log(values)
    
    
      // 二次元配列をCSV形式のテキストデータに変換
      let dataArray = []
      for (let i = 0; i < values.length; i++) {
        dataArray.push(values[i].join(","))
      }
      return dataArray.join("\r\n");  // 改行コード
    }

     

     

     

     

     

     

     

     

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【GAS】Googleドライブ・フォルダ内のすべてのCSVファイルを読み込む
  • Googleドライブのフォルダ内のファイル名を取得する方法がわかります。
  • CSVファイルを読み込む方法がわかります。
  • GAS応用の一覧

    コメント

    タイトルとURLをコピーしました