win32ole で Excel のシートコピー
win32ole でExcelのシートコピーをするには以下のようにする。
require 'win32ole' xl = WIN32OLE.new('Excel.Application') fso = WIN32OLE.new('Scripting.FileSystemObject') book = xl.Workbooks.Open(fso.GetAbsolutePathName("./Book1.xls")) sheet = book.Worksheets("Sheet1") # Sheet1 の後ろへコピー sheet.Copy "after" => sheet # コピー先のシート名を変更 xl.ActiveSheet.Name = "New Sheet"
コピー先の場所は、VBマクロでは名前付き引数で指定するが、win32oleではハッシュで指定する。
WorksheetのCopyで指定できるのは、"after" と "before"。
コピーした後のシートがアクティブシートになる。
※以前の記事
まるぼ〜の日記 - win32ole で Excel を使う(1)
まるぼ〜の日記 - win32ole で Excel を使う(2)
まるぼ〜の日記 - win32ole で Excel を使う(3)
まるぼ〜の日記 - win32ole で Excel を使う(4)
まるぼ〜の日記 - win32ole で Excel を使う(5)
まるぼ〜の日記 - win32ole で Excel を使う(6)