How to translate a VBA code into Ruby script

L

Li Chen

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
 
J

Jan Svitok

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"

or

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

please read http://ruby-doc.org/docs/ProgrammingRuby/html/win32.html
and http://ruby-doc.org/stdlib/libdoc/win32ole/rdoc/index.html
 
B

benjohn

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"

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

:) 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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top