Excel のすべての行をループして、各行でコマンドを実行しようとしていますが、方法がわかりません。
最初は rb-appscript (AppleScript の Ruby ラッパー) で試してみましたが、別の DSL を追加する前に Applescript で最初に動作させる方がよいと判断しました。任意のヒント?(必須ではありませんが、rb-appscript バージョンもいいでしょう)。
ありがとう!
Excel のすべての行をループして、各行でコマンドを実行しようとしていますが、方法がわかりません。
最初は rb-appscript (AppleScript の Ruby ラッパー) で試してみましたが、別の DSL を追加する前に Applescript で最初に動作させる方がよいと判断しました。任意のヒント?(必須ではありませんが、rb-appscript バージョンもいいでしょう)。
ありがとう!
範囲の座標は、動的に作成できる文字列です。行をループする最も簡単な方法は次のようになります。
repeat with thisRow from 1 to 10
tell application "Microsoft Excel"
set theRange to "A:" & thisRow & "Z:" & thisRow
set theValue to (get value of range theRange) as list
-- do something with the row's data
end tell
end repeat
コメントごとに更新:計算が必要な行数を取得するために、これを支援するために何年も前にサブルーチンを作成しました。一貫してデータが入力されるある種の「キー」列があることを確認してください (つまり、スキップされたセルがありません)。すべてのスプレッドシートにヘッダー行があるため、これは現在ヘッダー行を考慮しています。
on GetItemCount(KeyColumn)
set RowNumber to 1
set theText to "cSyoyodylg" -- dummy value
tell application "Microsoft Excel"
repeat until theText is ""
set RowNumber to RowNumber + 1
set theRange to KeyColumn & RowNumber & ":" & KeyColumn & RowNumber
set dataRange to range theRange of sheet 1
set theText to (get value of range theRange)
end repeat
end tell
set rowCount to RowNumber - 1
return rowCount
end GetItemCount
使用するには、次のようにします: lastRow を GetItemCount("A") of me に設定します。
repeat with thisRow from 2 to lastRow + 1
-- go attack Excel
end repeat