不器用(TOT) エンジニアの気ままにプログラミング

~考え、作って、また考える~

RubyでExcel操作メモ_008_シートのコピー

Rubyから「win32ole」というのを使って、

色々と操作できるようなので、
使ってみたときのメモを残していく。

今回はシートのコピー。

 

Rubyのソース>

#! ruby -Ks
require 'win32ole'

class FileCls
    INFILENAME    =  'C:\\rb\\in.xlsx'
    SHTNAME       =  'test'
end

app     = WIN32OLE.new('Excel.Application')
app.DisplayAlerts = false
inpath  = FileCls::INFILENAME
inbook  = app.Workbooks.Open(inpath)

for num in 1..3
    inbook.sheets(FileCls::SHTNAME).Copy(nil,inbook.sheets(inbook.sheets.count))
    inbook.activesheet.name = num
end

inbook.save
inbook.close(true)
app.quit

 

対象のシートを3回コピーするように作っています。

シートの末尾に1,2,3と順に"test"というシートがコピーされます。

 

Rubyの各構文を色々試しに使ってみているけど、

オブジェクトのeachメソッドの後の

do |~|

という構文やfor分の

in 1..3

などの構文は、違和感あるなぁ。

けど、Ruby自体はコーディングするの楽しいかも。