これでどうでしょうか。
#target indesign
#targetengine "session"
function getChangedStories(document) { var changedStories = []; var stories = document.stories; for (var i = 0, length = stories.length; i < length; i++) { var story = stories[i]; if (story.trackChanges && story.changes.length > 1) { changedStories.push(story); } } return changedStories;}
function selectChangeItem (story, zoom) { var change = story.changes.lastItem(); app.activeWindow.activePage = change.storyOffset.parentTextFrames[0].parentPage; app.activeDocument.select(change.storyOffset); if (zoom) app.activeWindow.zoomPercentage = parseInt(zoom.replace("%", ""));}
(function () { var stories = getChangedStories(app.activeDocument); if (stories.length === 0) { alert("変更が見つかりません"); return; } var index = -1; window = new Window("window", ""); stext = window.add("StaticText", [0, 0, 100, 20], ""); stext.justify = "center"; var group1 = window.add("Group"); group1.orientation = "row"; var prevButton = group1.add("Button", undefined, "前の変更箇所"); var nextButton = group1.add("Button", undefined, "次の変更箇所"); var group2 = window.add("Group"); group2.orientation = "row"; var zoomCheck = group2.add("CheckBox", undefined, "ズーム表示"); var zoomList = group2.add("DropDownList", [0, 0, 100, 20]); zoomList.enabled = false; zoomList.add("item", "50%"); zoomList.add("item", "100%"); zoomList.add("item", "200%"); zoomList.add("item", "500%"); zoomList.selection = 3; zoomCheck.onClick = function () { if (zoomCheck.value) zoomList.enabled = true; else zoomList.enabled = false; }; prevButton.onClick = function () { index -= 1; if (index === -1 || index < 0) index = stories.length - 1; stext.text = (index + 1) + " / " + stories.length; var zoom = (zoomCheck.value) ? zoomList.selection.text : false; selectChangeItem(stories[index], zoom); }; nextButton.onClick = function () { index += 1; if (index === -1 || index >= stories.length) index = 0; stext.text = (index + 1) + " / " + stories.length; var zoom = (zoomCheck.value) ? zoomList.selection.text : false; selectChangeItem(stories[index], zoom); }; window.show();}());