読者です 読者をやめる 読者になる 読者になる

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

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

RubyでExcel操作メモ_005_セルの背景色/文字色の変更

RubyでExcel操作

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

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

ホントにちょっとしたことだけど、

今回はセルの背景色の変更。

 

Rubyのソース>

 require 'win32ole'

class FileCls
    INFILENAME         = 'C:\\rb\\in.xlsx'
    NAME_RED          = 'RED'
    NAME_BLACK      = 'BLACK'
    NAME_WHITE      = 'WHITE'
    NAME_GREEN     = 'GREEN'
    NAME_BLUE        = 'BLUE'
    NAME_YELLOW   = 'YELLOW'
    IDX_BLACK           = 1
    IDX_WHITE           = 2
    IDX_RED               = 3
    IDX_GREEN          = 4
    IDX_BLUE             = 5
    IDX_YELLOW       = 6
 
    def self.getcoloridx(name)
        case name
            when NAME_RED then
                return IDX_RED
            when NAME_WHITE then
                return IDX_WHITE
            when NAME_GREEN then
                return IDX_GREEN
            when NAME_BLUE then
                return IDX_BLUE
            when NAME_YELLOW then
                return IDX_YELLOW
           else
               return IDX_BLACK
          end
    end
end

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

in.sheets(1).Cells(1,1).Interior.ColorIndex = FileCls::getcoloridx(FileCls::NAME_YELLOW)
in.sheets(1).Cells(1,1).Font.ColorIndex = FileCls::getcoloridx(FileCls::NAME_YELLOW)
inbook.save
inbook.close(true)
app.quit

 

背景色:CellsのInterior.ColorIndex

文字色:CellsのFont.ColorIndex

で変更できる。

 

また、 ColorIndexのプロパティに関しては、

ColorIndex Property

 に載せられている下記の画像がわかりやすい。

f:id:shevhome:20150907131300p:plain