SlideShare a Scribd company logo
1 of 9
Download to read offline
Rubyの魅力と使えるテクニック Part2




                    Written by Keisuke Hata
RubyとWinOLEの関係
• Rubyは、*WinOLEとの連携が得意です。
  OutlookやExcel,Workまで!!今までVBA等でし
  かできなかった自動化ができるようになります!!




とりあえず、よく使うExcelの操作が簡単に
できたら幸せじゃないですか?
5行でExcelを簡単操作!!(1)
• Rubyは、*WinOLEとの連携が得意です。
  OutlookやExcel,Wordまで!!
• 今までVBA等でしかできなかったことが
  Rubyの文法で書けるようになります。
  そして、Rubyのオブジェクトと連携できます!!
                なにはともあれ、
                サンプルを見て下さい。




    このサンプル、何をしているか、わかりますか?
•
    たった5行ですけど、3行目でほとんど答えがわかりますよね?
5行でExcelを簡単操作!!(2)
• さきほどのサンプル、何をしているかわかった方が
  ほとんどだと思います。

 そうです!!
 「Excelのシート名一覧」を取得しているのです。

• Rubyといったらイテレーターですから、
  それをフルに使い、Excelのシート数だけ回して、名前
  を表示しているだけなんです。
  しかも、ブロック終了後に自動でExcelを終了してくれ
  ます。
 というか、そうなるように設計してあるからなんですけどね(^^;)
 きちんと終了しないとプロセスに残り続けるので注意。
いろいろいじってみる(^o^)/
• シート名があんなに簡単に取得できるなら、
  もちろんセルの操作だって!!



書き換え




        読み込み

               もちろん可能です!!
セル操作をマスター(`・ω・´)
• セルの操作をマスターするには、VBAで実装されている
  メソッドを覚える必要がありますが、Rubyでやる場合
  は、最低限のことさえ覚えておけば、たいていのことは
  できちゃいます。
最低限覚えておくこと
 ①   セルオブジェクト.Value => セルの値
 ②   セルオブジェクト.Interior.ColorIndex => セル色
 ③   Rangeオブジェクト.Rows => 行コレクション
 ④   行コレクション.Columns => 列コレクション



     この4つ覚えれば、仕事で大活躍!!
実際に使っている現場〆(・ω・。)
• ここでは、4つのメソッドを使っている箇所を
  例に挙げながら、実際にどう使うか学んでいき
  ます。

                Worksheetオブジェクト
                からUsedRangeを用いて、
                行と列のイテレーターで
                処理している部分が、
                ③と④に当たります。
  ③

                また、セルの値と色を変
      ④
       ①
                更&取得している箇所が
           ②
                ①、②に当たります。
UsedRange?って何?
• 先ほどのサンプルで出てきた”UsedRange”
  とは、文字通り使われているセル範囲でこれを
  使うことで、楽にセルアクセスが可能になります。

            UsedRangeが指す部分を緑の点線で
            表してみました。
            先ほどのサンプルでは、UsedRangeの範囲に
            対して、行(Row)の順に列(Columns)の数だけを
            イテレーターで回していたことになります。
            なので、アクセス順は、

            Rails -> Ruby -> 100 -> 30

            となります。
OLEは、難しくない!!
    WinOLEって聞くと、扱いづらいな、面倒だなっていう印象が強いですが、
•
    Rubyでは、WinOLEを標準でサポートしているので、このように簡単に
    扱えてしまいます。

    データは、Excelでもらうけど、取得する時は、コピペしてソースに貼り
    付け、なんてことは、もうしなくてもいいんです。
    Ruby+OLEでちょっとしたツールを作り、仕事の自動化を図りましょう。
    そして、余った時間をより有効に(^o^)

    もっと詳しく知りたくなった人は、以下のサイトを参考にするとよいで
    しょう。Outlookの操作なども掲載されていて、おもしろいです。

    参考)Ruby OLE解説ページ(“るびま”より)
    http://jp.rubyist.net/magazine/?cmd=view&p=0004-Win32OLE&key=Excel

More Related Content

More from Keisuke Hata

More from Keisuke Hata (20)

iOS app hacks
iOS app hacksiOS app hacks
iOS app hacks
 
Cocos2d platforms
Cocos2d platformsCocos2d platforms
Cocos2d platforms
 
Photobook
PhotobookPhotobook
Photobook
 
TiPhotobook_en
TiPhotobook_enTiPhotobook_en
TiPhotobook_en
 
CCSendMessages introduction
CCSendMessages introductionCCSendMessages introduction
CCSendMessages introduction
 
Cocos2d Performance Tips
Cocos2d Performance TipsCocos2d Performance Tips
Cocos2d Performance Tips
 
CCResourceAsyncLoader
CCResourceAsyncLoaderCCResourceAsyncLoader
CCResourceAsyncLoader
 
Impact beginngers guide_1.19
Impact beginngers guide_1.19Impact beginngers guide_1.19
Impact beginngers guide_1.19
 
Advanced cocos2d
Advanced cocos2dAdvanced cocos2d
Advanced cocos2d
 
Introduction titanium
Introduction titaniumIntroduction titanium
Introduction titanium
 
Hello cocos2d ios
Hello cocos2d iosHello cocos2d ios
Hello cocos2d ios
 
Hello cocos2d ios
Hello cocos2d iosHello cocos2d ios
Hello cocos2d ios
 
Google wave2010
Google wave2010Google wave2010
Google wave2010
 
How To Build Last Fm For I Phone
How To Build Last Fm For I PhoneHow To Build Last Fm For I Phone
How To Build Last Fm For I Phone
 
Mercurial&OnenoteServer
Mercurial&OnenoteServerMercurial&OnenoteServer
Mercurial&OnenoteServer
 
Math1 Vector
Math1 VectorMath1 Vector
Math1 Vector
 
Wiipen
WiipenWiipen
Wiipen
 
Gl Rotate
Gl RotateGl Rotate
Gl Rotate
 
Gl Matrix
Gl MatrixGl Matrix
Gl Matrix
 
Are You Enjoy Ruby 1 Day
Are You Enjoy Ruby 1 DayAre You Enjoy Ruby 1 Day
Are You Enjoy Ruby 1 Day
 

Are You Enjoy Ruby 2 Day

  • 2. RubyとWinOLEの関係 • Rubyは、*WinOLEとの連携が得意です。 OutlookやExcel,Workまで!!今までVBA等でし かできなかった自動化ができるようになります!! とりあえず、よく使うExcelの操作が簡単に できたら幸せじゃないですか?
  • 3. 5行でExcelを簡単操作!!(1) • Rubyは、*WinOLEとの連携が得意です。 OutlookやExcel,Wordまで!! • 今までVBA等でしかできなかったことが Rubyの文法で書けるようになります。 そして、Rubyのオブジェクトと連携できます!! なにはともあれ、 サンプルを見て下さい。 このサンプル、何をしているか、わかりますか? • たった5行ですけど、3行目でほとんど答えがわかりますよね?
  • 4. 5行でExcelを簡単操作!!(2) • さきほどのサンプル、何をしているかわかった方が ほとんどだと思います。 そうです!! 「Excelのシート名一覧」を取得しているのです。 • Rubyといったらイテレーターですから、 それをフルに使い、Excelのシート数だけ回して、名前 を表示しているだけなんです。 しかも、ブロック終了後に自動でExcelを終了してくれ ます。 というか、そうなるように設計してあるからなんですけどね(^^;) きちんと終了しないとプロセスに残り続けるので注意。
  • 5. いろいろいじってみる(^o^)/ • シート名があんなに簡単に取得できるなら、 もちろんセルの操作だって!! 書き換え 読み込み もちろん可能です!!
  • 6. セル操作をマスター(`・ω・´) • セルの操作をマスターするには、VBAで実装されている メソッドを覚える必要がありますが、Rubyでやる場合 は、最低限のことさえ覚えておけば、たいていのことは できちゃいます。 最低限覚えておくこと ① セルオブジェクト.Value => セルの値 ② セルオブジェクト.Interior.ColorIndex => セル色 ③ Rangeオブジェクト.Rows => 行コレクション ④ 行コレクション.Columns => 列コレクション この4つ覚えれば、仕事で大活躍!!
  • 7. 実際に使っている現場〆(・ω・。) • ここでは、4つのメソッドを使っている箇所を 例に挙げながら、実際にどう使うか学んでいき ます。 Worksheetオブジェクト からUsedRangeを用いて、 行と列のイテレーターで 処理している部分が、 ③と④に当たります。 ③ また、セルの値と色を変 ④ ① 更&取得している箇所が ② ①、②に当たります。
  • 8. UsedRange?って何? • 先ほどのサンプルで出てきた”UsedRange” とは、文字通り使われているセル範囲でこれを 使うことで、楽にセルアクセスが可能になります。 UsedRangeが指す部分を緑の点線で 表してみました。 先ほどのサンプルでは、UsedRangeの範囲に 対して、行(Row)の順に列(Columns)の数だけを イテレーターで回していたことになります。 なので、アクセス順は、 Rails -> Ruby -> 100 -> 30 となります。
  • 9. OLEは、難しくない!! WinOLEって聞くと、扱いづらいな、面倒だなっていう印象が強いですが、 • Rubyでは、WinOLEを標準でサポートしているので、このように簡単に 扱えてしまいます。 データは、Excelでもらうけど、取得する時は、コピペしてソースに貼り 付け、なんてことは、もうしなくてもいいんです。 Ruby+OLEでちょっとしたツールを作り、仕事の自動化を図りましょう。 そして、余った時間をより有効に(^o^) もっと詳しく知りたくなった人は、以下のサイトを参考にするとよいで しょう。Outlookの操作なども掲載されていて、おもしろいです。 参考)Ruby OLE解説ページ(“るびま”より) http://jp.rubyist.net/magazine/?cmd=view&p=0004-Win32OLE&key=Excel