Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   How to get value of constants in Excel using WIN32OLE (http://www.velocityreviews.com/forums/t835975-how-to-get-value-of-constants-in-excel-using-win32ole.html)

Li Chen 12-01-2006 04:04 AM

How to get value of constants in Excel using WIN32OLE
 
Hi all,

I have a script to store all Excel constants in an array. ButI can't
return the value for each constant. By using "inspect" method I think
all the constants in the array are turn into a string. The only chance I
can get the value of a constant is that I run the script to print out
all the constants and then add a line outside the array

puts Excel_Const::XlYDMFormat => return a value of 8

which is so inefficient!

I also notice that the line below will return a string

puts "Excel_Const::XlYDMFormat" => return a string as
Excel_Const::XlYDMFormat

I want to print out the values for all the constants at once. I wonder
if any expert out there can give me a hand.

Thank you in advnace,

Li

######
equire 'win32ole'
require 'enumerator'

module Excel_Const
end

excel=WIN32OLE.new('Excel.Application')
WIN32OLE.const_load(excel, Excel_Const)

array=Array.new
Excel_Const.constants.each{|c| array<<c}

count=0
array.sort!.each_slice(5) do |slice|
slice.each do |con|
v="Excel_Const::"+"#{con}"
puts v.inspect
count+=1
end
end

puts "The value is\t", Excel_Const::XlYDMFormat

puts "The total constants are ", count

##output
>ruby consts.rb

"Excel_Const::CONSTANTS"
"Excel_Const::Xl24HourClock"
"Excel_Const::Xl3DArea"
"Excel_Const::Xl3DAreaStacked"
...
"Excel_Const::XlYDMFormat"
...

The value is
8
The total constants are
1387

>Exit code: 0


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


Jan Svitok 12-01-2006 08:33 AM

Re: How to get value of constants in Excel using WIN32OLE
 
On 12/1/06, Li Chen <chen_li3@yahoo.com> wrote:
> Hi all,
>
> I have a script to store all Excel constants in an array. ButI can't
> return the value for each constant. By using "inspect" method I think
> all the constants in the array are turn into a string. The only chance I
> can get the value of a constant is that I run the script to print out
> all the constants and then add a line outside the array
>
> puts Excel_Const::XlYDMFormat => return a value of 8
>
> which is so inefficient!
>
> I also notice that the line below will return a string
>
> puts "Excel_Const::XlYDMFormat" => return a string as
> Excel_Const::XlYDMFormat
>
> I want to print out the values for all the constants at once. I wonder
> if any expert out there can give me a hand.
>
> Thank you in advnace,
>
> Li
>
> ######
> equire 'win32ole'
> require 'enumerator'
>
> module Excel_Const
> end
>
> excel=WIN32OLE.new('Excel.Application')
> WIN32OLE.const_load(excel, Excel_Const)
>
> array=Array.new
> Excel_Const.constants.each{|c| array<<c}
>
> count=0
> array.sort!.each_slice(5) do |slice|
> slice.each do |con|
> v="Excel_Const::"+"#{con}"
> puts v.inspect
> count+=1
> end
> end
>
> puts "The value is\t", Excel_Const::XlYDMFormat
>
> puts "The total constants are ", count
>
> ##output
> >ruby consts.rb

> "Excel_Const::CONSTANTS"
> "Excel_Const::Xl24HourClock"
> "Excel_Const::Xl3DArea"
> "Excel_Const::Xl3DAreaStacked"
> ...
> "Excel_Const::XlYDMFormat"
> ...
>
> The value is
> 8
> The total constants are
> 1387
>
> >Exit code: 0


See programming ruby, especially the chapter on reflection. THe
interesting methods are: Module#constants, Module#const_get


Li Chen 12-01-2006 02:43 PM

Re: How to get value of constants in Excel using WIN32OLE
 
Jan Svitok wrote:
> On 12/1/06, Li Chen <chen_li3@yahoo.com> wrote:
>> which is so inefficient!
>>
>> WIN32OLE.const_load(excel, Excel_Const)
>> end
>> "Excel_Const::Xl3DArea"
>> >Exit code: 0

> See programming ruby, especially the chapter on reflection. THe
> interesting methods are: Module#constants, Module#const_get




Thanks Jan. I haven't touch this chapter yet but I will take a look at
them. BTW could you browse my last post about "VBA to Ruby code again"?
I change every constants into the required format and Ruby still
complains the script.


Li

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



All times are GMT. The time now is 05:37 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.