私は映画の脚本を持っています。最初の列はタイムコード、2番目の列はスピーカー、3番目の列はダイアログです。
スクリプト全体をループしたいのですが、3番目の列(ダイアログ)に対してのみ何かを実行します。
3番目の列に対して行うことのマクロはすでにあります。私はそれが必要です:
ただし、空のテーブルセルにヒットすると停止する必要があります。ドキュメントの終わりをさまざまにチェックしているにもかかわらず、タブキーがプログラムでチェックされるため、マクロは無限ループに陥り続け、新しいセルを作成し続けます。そこにあるすべてのソリューションは、それが通常のテーブル化されていないドキュメントであり、次のようなコードであると想定しています。
Do Until ActiveDocument.Bookmarks("\Sel") = ActiveDocument.Bookmarks("\EndOfDoc")
'(Do something)
Loop
失敗します。
各セルにタブを付けることなく、プログラムでテーブルの行とセルを反復処理できます。
Sub ProcessScriptTable()
Dim oTbl As Table
Set oTbl = ActiveDocument.Tables(1)
For Each oRow In oTbl.Rows
Set oCell = oRow.Cells(3)
'Do something with each cell
MsgBox oCell.Range.Text
Next
End Sub