表に行追加するスクリプトについて

[7936]表に行追加するスクリプトについて 投稿者:masuo 投稿日:2005/12/22(Thu) 09:59
はじめまして。Win2000でCSを使用しています。
既存の表の途中にスクリプトで行を追加したいのですが、うまくいきません。
表の先頭、末尾では問題なく行追加できます。
表の途中の場合は、パラメータが必要なのですが、それがわからなくて悩んでいます。
ちなみに2.0では途中でもうまくいっています。
なにかご存じの方がいらっしゃいましたら教えて頂けると助かります。
以下、サンプルスクリプトです。よろしくお願いします。

test3.wsf ==InDesign3.01J(win2k)用サンプル==
<JOB ID="test">
<REFERENCE GUID="{6926C15F-E97E-4b13-8658-A97D8C616945}"/>
<SCRIPT LANGUAGE="VBScript">
Set myInDesign = Wscript.CreateObject("InDesign.Application.3.0J")
Set myDocument = myInDesign.Documents.Add
Set myTextFrame = myDocument.Pages.Item(1).TextFrames.Add
myTextFrame.GeometricBounds = Array("25mm", "25mm", "225mm", "175mm")
Set myTable = myTextFrame.Tables.Add
myTable.ColumnCount = 2
myTable.BodyRowCount = 5
myTable.Columns.Item(1).Width = "60mm"
myTable.Columns.Item(2).Width = "40mm"
myTable.Rows.Item(1).Height = "20mm"
myTable.Rows.Item(2).Height = "15mm"
myTable.Rows.Item(3).Height = "15mm"
myTable.Rows.Item(4).Height = "10mm"
myTable.Rows.Item(5).Height = "10mm"

For i=1 To 2
For j=1 To 5
myTable.Rows.Item(j).Cells.Item(i).Contents = CStr(j * 100 + i)
Next
Next

'Set newRow = myTable.Rows.Add(idAtBeginning) '先頭に行追加=OK
'Set newRow = myTable.Rows.Add(idAtEnd) '末尾 〃 =OK
Set newRow = myTable.Rows.Add(idAfter, myTable.Rows.Item(2)) '途中 〃 =NG(パラメータ不正?)

newRow.Cells.Item(1).Contents = "Add1"
newRow.Cells.Item(2).Contents = "Add2"
</SCRIPT>
</JOB>

test2.wsf ==InDesign2.02(win2k)用サンプル==
<JOB ID="test">
<REFERENCE GUID="{0FE80759-A114-4D6D-A0CE-15EADB074478}"/>
<SCRIPT LANGUAGE="VBScript">
Set myInDesign = Wscript.CreateObject("InDesign.Application.2.0J")
Set myDocument = myInDesign.Documents.Add
Set myTextFrame = myDocument.Pages.Item(1).TextFrames.Add
myTextFrame.GeometricBounds = Array("25mm", "25mm", "225mm", "175mm")
Set myTable = myTextFrame.Tables.Add
myTable.ColumnCount = 2
myTable.RowCount = 5
myTable.Columns.Item(1).Width = "60mm"
myTable.Columns.Item(2).Width = "40mm"
myTable.Rows.Item(1).Height = "20mm"
myTable.Rows.Item(2).Height = "15mm"
myTable.Rows.Item(3).Height = "15mm"
myTable.Rows.Item(4).Height = "10mm"
myTable.Rows.Item(5).Height = "10mm"

For i=1 To 2
For j=1 To 5
myTable.Rows.Item(j).Cells.Item(i).TextContents = CStr(j * 100 + i)
Next
Next

'Set newRow = myTable.Rows.Add(idAtBeginning) '先頭に行追加=OK
'Set newRow = myTable.Rows.Add(idAtEnd) '末尾 〃 =OK
Set newRow = myTable.Rows.Add(idAfter, myTable.Rows.Item(2)) '途中 〃 =OK

newRow.Cells.Item(1).TextContents = "Add1"
newRow.Cells.Item(2).TextContents = "Add2"
</SCRIPT>
</JOB>
» 1
[7936へのレス]Re: 表に行追加するスクリプトについて 投稿者:お~まち 投稿日:2005/12/22(Thu) 13:42
やってみました。確かにCS(3.0.1CS2互換アップデート)では「パラメータが不正です」のエラーが出ます。

しかしCS2(4.0.2)では、2.0.2と同様に途中に行を挿入できました!

CSだけ構文が異なるということは考えにくいので、どうもバグくさいです。ちなみにCSで列の挿入でも同じ結果(パラメータ不正)でした。
» 2
[7936へのレス]Re: 表に行追加するスクリプトについて 投稿者:masuo 投稿日:2005/12/22(Thu) 15:09
>お~まち さん
ありがとうございました。CS2への変更を前向きに検討しようと思います。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア