top of page
- Script Code -

dofile(reaper.AZ_GetLuaInitPath())

require("reaper_AZSTOKE_BRONZE")

require("reaper_AZSTOKE_SILVER")

require("reaper_AZSTOKE_GOLD")


retval, inputList = reaper.AZ_GetUserInputList("", 2, "Source Path,Excel Path", ",")


if retval then


    sourceParentPath = inputList[1]

    

    excelPath = inputList[2]

    

    track = reaper.AZ_InsertTrackSearchUniqueOnly(0, "work")

    

    sourcePathList = reaper.AZ_GetFilePathList(sourceParentPath, "wav")

    

    items = reaper.AZ_InsertMediaItems(track, sourcePathList, 0, 1)

    

    excel = reaper.AZ_Excel_OpenFile(excelPath)

    

    worksheet = reaper.AZ_Excel_OpenWorksheet(excel, "items")

    

    for i, item in pairs(items)do

    

      itemName = reaper.AZ_GetMediaItemName(item)

      

      itemLength = reaper.AZ_GetMediaItemLength(item)

    

      searchResult = reaper.AZ_Excel_SearchRowsInWorksheet(worksheet, itemName, "A")

      

      resultRow = ""

      

      for k, v in pairs(searchResult["Cells"]) do

      

          resultRow = k

      end

      

      if resultRow == "" then

      

          searchResult = reaper.AZ_Excel_SearchRowsInWorksheet(worksheet, ".+", "A", ",A", true)

          

          newRow = 1

          

          for k, v in pairs(searchResult["Cells"]) do newRow = newRow + 1 end

          

          reaper.AZ_Excel_SetCellValue_ByNumber(worksheet, newRow, 1, itemName)

          

          reaper.AZ_Excel_SetCellValue_ByNumber(worksheet, newRow, 2, itemLength) 

          

      else

      

          cell = "B" .. resultRow

          

          reaper.AZ_Excel_SetCellValue(worksheet, cell, itemLength) 

      end

      

    end

    

    reaper.AZ_Excel_SaveDocument(excel)

    

    reaper.AZ_Excel_CloseFile(excel)

  

end

- Warm Up -

  • Excelファイルを用意する

  • インポートする音声ファイルを用意する

- Script Detail -

dofile(reaper.AZ_GetLuaInitPath())

require("reaper_AZSTOKE_BRONZE")

require("reaper_AZSTOKE_SILVER")

require("reaper_AZSTOKE_GOLD")


・RIGDOCKSをインポート


retval, inputList = reaper.AZ_GetUserInputList("", 2, "Source Path,Excel Path", ",")


・必要事項の入力を要求


if retval then


    sourceParentPath = inputList[1]

    

・入力値から音声ファイルの親フォルダのパスを取得


    excelPath = inputList[2]


・入力値からExcelファイルのパスを取得


    track = reaper.AZ_InsertTrackSearchUniqueOnly(0, "work")

    

・「work」という名前のトラックを作成


    sourcePathList = reaper.AZ_GetFilePathList(sourceParentPath, "wav")

    

・親フォルダの配下にある音声ファイルのパスを全て取得


    items = reaper.AZ_InsertMediaItems(track, sourcePathList, 0, 1)

    

・音声ファイルを「work」トラックに挿入


    excel = reaper.AZ_Excel_OpenFile(excelPath)

    

・エクセルファイルを開く


    worksheet = reaper.AZ_Excel_OpenWorksheet(excel, "items")

    

・エクセルファイルの「items」ワークシートを開く


    for i, item in pairs(items)do

    

      itemName = reaper.AZ_GetMediaItemName(item)

      

      itemLength = reaper.AZ_GetMediaItemLength(item)

    

・メディアアイテムの名前と長さを取得


      searchResult = reaper.AZ_Excel_SearchRowsInWorksheet(worksheet, itemName, "A")

    

・ワークシート内にメディアアイテム名に対応する行があるか検索


      resultRow = ""

      

      for k, v in pairs(searchResult["Cells"]) do

      

          resultRow = k

      end

    

・検索結果の行番号を取得


      if resultRow == "" then

    

・検索結果の行番号がない→対応する行がない場合


          searchResult = reaper.AZ_Excel_SearchRowsInWorksheet(worksheet, ".+", "A", ",A", true)

    

・A列が空欄でない行を取得


          newRow = 1

          

          for k, v in pairs(searchResult["Cells"]) do newRow = newRow + 1 end

    

・A列が空欄の行の行番号を取得


          reaper.AZ_Excel_SetCellValue_ByNumber(worksheet, newRow, 1, itemName)

          

          reaper.AZ_Excel_SetCellValue_ByNumber(worksheet, newRow, 2, itemLength) 

    

・新しい行として、メディアアイテム名と長さを記載


      else

    

・対応する行がある場合


          cell = "B" .. resultRow

          

          reaper.AZ_Excel_SetCellValue(worksheet, cell, itemLength) 

    

・B列に長さを記載


      end

      

    end

    

    reaper.AZ_Excel_SaveDocument(excel)

    

・Excelファイルを保存


    reaper.AZ_Excel_CloseFile(excel)

    

・Excelファイルを閉じる


end

- API LINK -

Excel

AZSTOKE_Excel_InsertLength_1

音声ファイルをReaperにインポートし、その長さをExcelに記録する

01_BRONZE_ss_edited.png
01_SILVER_edited_edited.png
03_GOLD_edited_edited.png
bottom of page