How to translate a VBA code into Ruby script

Hi all,

I need to use WIN32OLE to do some Excel automation. I read some
documents and search google.The examples of how to use WIN32OLE are
almost the same. But none of them show how to translate a VBA code into
Ruby. Here are the VBA codes:

Sub AddNew()
Set NewBook = Workbooks.Add
    With NewBook
        .Title = "All Sales"
        .Subject = "Sales"
        .SaveAs Filename:="Allsales.xls"
    End With
End Sub

And here are some Ruby codes:
require 'win32ole'

excel=WIN32OLE.new('Excel.Application')
workbook=excel.Workbooks.Add
worksheet=workbook.Worksheets.Add

I wonder if any expert out there could give me an example on how to
translate Title, Subject, and SaveAs Filename into to Ruby codes.

Thanks,

Li

···

--
Posted via http://www.ruby-forum.com/.

require 'win32ole'

excel=WIN32OLE.new('Excel.Application')
#Set NewBook = Workbooks.Add
newbook=excel.Workbooks.Add
#With NewBook
# .Title = "All Sales"
newbook.Title = "All Sales"
# .Subject = "Sales"
newbook.Subject = "Sales"
# .SaveAs Filename:="Allsales.xls"
newbook.SaveAs Filename => "Allsales.xls"

or

newbook['Title'] = "All Sales"
newbook['Subject'] = "Sales"
newbook.SaveAs Filename => "Allsales.xls"

please read Programming Ruby: The Pragmatic Programmer's Guide
and http://ruby-doc.org/stdlib/libdoc/win32ole/rdoc/index.html

···

On 11/20/06, Li Chen <chen_li3@yahoo.com> wrote:

Hi all,

I need to use WIN32OLE to do some Excel automation. I read some
documents and search google.The examples of how to use WIN32OLE are
almost the same. But none of them show how to translate a VBA code into
Ruby. Here are the VBA codes:

Sub AddNew()
Set NewBook = Workbooks.Add
    With NewBook
        .Title = "All Sales"
        .Subject = "Sales"
        .SaveAs Filename:="Allsales.xls"
    End With
End Sub

And here are some Ruby codes:

Hi Jan,

Thank you very much. I think I am on the right track now.

Li

···

--
Posted via http://www.ruby-forum.com/.

I expect you can also do:
newbook=excel.Workbooks.Add
newbook.instance_eval do
  Title = "All Sales"
  Subject = "Sales"
  SaveAs = Filename:="Allsales.xls"
end

:slight_smile: But I'm guessing. I'd be interested to know if it works, but it would
be a closer mapping to VB's "with" expression.

···

On 11/20/06, Li Chen <chen_li3@yahoo.com> wrote:

Hi all,

I need to use WIN32OLE to do some Excel automation. I read some
documents and search google.The examples of how to use WIN32OLE are
almost the same. But none of them show how to translate a VBA code
into
Ruby. Here are the VBA codes:

Sub AddNew()
Set NewBook = Workbooks.Add
    With NewBook
        .Title = "All Sales"
        .Subject = "Sales"
        .SaveAs Filename:="Allsales.xls"
    End With
End Sub

And here are some Ruby codes:

require 'win32ole'

excel=WIN32OLE.new('Excel.Application')
#Set NewBook = Workbooks.Add
newbook=excel.Workbooks.Add
#With NewBook
# .Title = "All Sales"
newbook.Title = "All Sales"
# .Subject = "Sales"
newbook.Subject = "Sales"
# .SaveAs Filename:="Allsales.xls"
newbook.SaveAs Filename => "Allsales.xls"