How to get value of constants in Excel using WIN32OLE

Discussion in 'Ruby' started by Li Chen, Dec 1, 2006.

  1. Li Chen

    Li Chen Guest

    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/.
    Li Chen, Dec 1, 2006
    #1
    1. Advertising

  2. Li Chen

    Jan Svitok Guest

    On 12/1/06, Li Chen <> 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
    Jan Svitok, Dec 1, 2006
    #2
    1. Advertising

  3. Li Chen

    Li Chen Guest

    Jan Svitok wrote:
    > On 12/1/06, Li Chen <> 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/.
    Li Chen, Dec 1, 2006
    #3
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Masaki Suketa
    Replies:
    4
    Views:
    376
    Dave Burt
    Mar 27, 2006
  2. Li Chen
    Replies:
    3
    Views:
    125
  3. Haley Thrapp

    Trouble using WIN32OLE for excel

    Haley Thrapp, Oct 15, 2007, in forum: Ruby
    Replies:
    1
    Views:
    234
    bbiker
    Oct 15, 2007
  4. zxem
    Replies:
    1
    Views:
    228
  5. David Lewis
    Replies:
    0
    Views:
    222
    David Lewis
    May 1, 2011
Loading...

Share This Page