import org.codehaus.groovy.scriptom.*;
import org.codehaus.groovy.scriptom.tlb.office.excel.*;
Scriptom.inApartment
{
ea = new ActiveXObject("Excel.Application")
wb = ea.workbooks.open(new File("test1.xls").canonicalPath)
ea.DisplayAlerts = false
// 1枚目のシートを3枚目のシートの前に移動
wb.sheets(1).move(wb.sheets(3))
wb.saveAs(new File("test3a.xls").canonicalPath)
wb.close
wb = ea.workbooks.open(new File("test1.xls").canonicalPath)
ea.DisplayAlerts = false
// 1枚目のシートをブックのシートの一番後に移動
wb.sheets(1).move(Scriptom.MISSING, wb.sheets(wb.sheets.count))
wb.saveAs(new File("test3b.xls").canonicalPath)
wb.close
}
サンプルExcelブック(test1.xls)
1枚目のシートを(元の)3枚目のシートの前に移動させた結果(test3a.xls)
1枚目のシートをブックの最後に移動させた結果(test3b.xls)
動作環境
JDK 1.6 Update14, groovy1.6.3, Microsoft Office 2007
WSHで同様の処理を行うには、以下のスクリプトを実行します。
Set sh = CreateObject("WScript.Shell")
Set xa = CreateObject("Excel.Application")
xa.DisplayAlerts = false
Set wb = xa.workbooks.open(sh.CurrentDirectory + "\test1.xls")
' 1枚目のシートを3枚目のシートの前に移動
wb.sheets(1).move(wb.sheets(3))
wb.saveAs(sh.CurrentDirectory + "\test3c.xls")
wb.close
' ブックの最後に移動
Set wb = xa.workbooks.open(sh.CurrentDirectory + "\test1.xls")
wb.sheets(1).move ,wb.sheets(wb.sheets.count)
wb.saveAs(sh.CurrentDirectory + "\test3d.xls")
wb.close
関連情報
0 件のコメント:
コメントを投稿