- 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に記録する














