Hi!
I use
book = self.excel.Workbooks.Open(file,ExcelConst::XlUpdateLinksNever)
to never update links in excel files when opend with ruby.
is there an excelconst to disable macros?
i can’t find anything.
Thanks,
uwe
Hi!
I use
book = self.excel.Workbooks.Open(file,ExcelConst::XlUpdateLinksNever)
to never update links in excel files when opend with ruby.
is there an excelconst to disable macros?
i can’t find anything.
Thanks,
uwe
On 10 Juni, 17:44, zak [email protected] wrote:
Thanks,
uwe
Provided that self.excel represents the Excel.Application object, you
can use the following code to prevent macros from running
automatically:
self.excel.EnableEvents = false
book = self.excel.Workbooks.Open(file,ExcelConst::XlUpdateLinksNever)
self.excel.EnableEvents = true
/lasso
On 11 Jun., 14:45, Lars O. [email protected] wrote:
is there an excelconst to disable macros?
book = self.excel.Workbooks.Open(file,ExcelConst::XlUpdateLinksNever)
self.excel.EnableEvents = true/lasso
Thanks Lasso,
yes, self.excel represents the Excel.Application object:
class ExcelConst
# to be filled with all Excelconstants
# once excel is running
end
#---------------------------------------------------------------
#---------------------------------------------------------------
class Excel
attr_accessor :excel
def initialize
require ‘win32ole’
@excel = WIN32OLE::new(‘Excel.Application’)
if !(defined? ExcelConst::XlYes)
WIN32OLE.const_load(@excel, ExcelConst)
end
@excel.DisplayAlerts = false
@excel.Visible = false
yield self
@excel.Quit
end
def open_book file
self.excel.EnableEvents = false
book =
self.excel.Workbooks.Open(file,ExcelConst::XlUpdateLinksNever)
#self.excel.EnableEvents = true
yield book
self.excel.ActiveWorkbook.Close(0)
end
end
The reason why I posted the original message was, that excel opend
visible during runtime although I set
@excel.Visible = false
I thought the reason for that behavior could be conncted to macros.
But it wasn’t. I inserted your code and still excel opens the workbook
during:
Excel.new do |xl| # instanciate excel
filesL.each_with_index do |file,i| # let's loop on each file
i=3-i # array index starts at 0
xl.open_book(file) do |workbook|
sheets = workbook.Worksheets(“Statistik”)
rows = sheets.UsedRange.Rows.Count
cells = sheets.Range(“C1:E#{rows}”)
cells.each do |cell| …
Any ideas?
Have a nice weekend,
uwe
On 11 Juni, 16:06, zak [email protected] wrote:
I use
Thanks Lasso,
place this in a separate file, and just require it
@excel.Visible = false self.excel.ActiveWorkbook.Close(0)Excel.new do |xl| # instanciateexcel
Any ideas?
Have a nice weekend,uwe- Dölj citerad text -
- Visa citerad text -
I’m afraid I cannot reproduce the problem (using ruby 1.9.1p378
(2010-01-10 revision 26273) [i386-mswin32] and Excel XP SP3). Using
your code, I can read and write to workbooks without ever seeing the
Excel window. It does not matter if the workbooks contains macros or
not or if Excel is already opened. Your code works perfectly here…
/lasso
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs