learn-ruby-in-kansai:126
From: Nobuyuki-Sakai <sakai-n@m...>
Date: Fri, 24 Dec 2004 20:47:03 +0900
Subject: [learn-ruby-in-kansai:126] WIN32OLEについての質問
酒井信之です。 >るびまの記事について「ここがわかりにくい」とか >「もっとここについて説明してほしい」とかありましたら、参考に >しますんで、教えてください。 EXCELでのWIN32OLEについて 1:EXCELのcellは、cell[r, c]の様に参照したい。 CELLの参照は、cellcell[r, c]の様にしたいのでmoduleの定義を以下の様にす るのは、どうでしょう。 sheet = book.worksheets('Sheet1') cell = sheet.cells cell = cell.extend WorkCell module WorkCell def [] r,c wcell = self.Item(r,c) if wcell.MergeCells then wcell.MergeArea.Item(1,1).Value else wcell.Value end end def []= r,c,value .... end end これでcell.item(i, j).value = '文字: size20,黒,Center,Center'が cell[i, j] = '文字: size20,黒,Center,Center' とできる。 問題点 しかし、cell.item(i, j).Font.Size = 20は、cell[i, j].Font.Size = 20とは、でき ない。 Fontに関する再定義がまた必要になる。(CELLに関する属性は沢山あり面倒) cell = sheet.Range("B2") borders = cell.Borders ... border = borders.Item(index) border.extend Border で定義する方法は、かえってわかりにくいのではないですか。 cell.item(i, j).Borders(position('l')).LineStyle = line_s('c') cell.item(i, j).Borders(position('l')).Weight = line_w('s') の方がわかりやすい気がしますが。 2:EXCELの初めて見る呼び出しかた。 以下の呼び出し方は、処理と終了またはエラーが近くにあり非常に参考になりました。 個人的には、eachを繰り返し以外に使うには、少し抵抗がありますが。 def openExcelWorkbook filename filename = getAbsolutePath(filename) xl = WIN32OLE.new('Excel.Application') book = xl.Workbooks.Open(filename) begin yield book ensure xl.Workbooks.Close xl.Quit end end 問題点 複数のsheetを扱うときは、適用できないのでは。 色々な場合にも適用できてわかりやすい書き方を模索しています。どなたが教えて ください。 以上 気が付いた事を書きました。 今回の記事には、知らないことがいろいろとあ り勉強になりました。 -- ML: learn-ruby-in-kansai@r... 使い方: http://QuickML.com/
119 2004-12-22 05:19 [gollum@h... ] 第1回 日本Ruby の会関西勉強会開催の案内 120 2004-12-23 00:08 ┣[tomoya@c... ] 123 2004-12-23 05:17 ┃┣[gollum@h... ] 124 2004-12-23 07:46 ┃┃┣[xml@t... ] 129 2004-12-25 02:24 ┃┃┗[tomoya@c... ] -> 126 2004-12-24 12:47 ┃┗[sakai-n@m... ] WIN32OLEについての質問 128 2004-12-25 02:24 ┃ ┗[tomoya@c... ] 134 2004-12-25 16:43 ┃ ┣[xml@t... ] 136 2004-12-26 11:39 ┃ ┗[gollum@h... ] Re: WIN32OLEについての質問/Object#.... 122 2004-12-23 05:02 ┣[zn@m... ] 125 2004-12-23 08:39 ┣[sakai-n@m... ] 130 2004-12-25 07:12 ┣[mash@a... ] 133 2004-12-25 14:59 ┃┣[zn@m... ] 138 2004-12-26 12:57 ┃┃┗[tomoya@c... ] 140 2004-12-27 03:41 ┃┗[mash@a... ] Cygwin 環境から MSWIN32 版 Ruby を使う際のパス変換について 143 2004-12-29 13:20 ┗[babie7a0@y... ]