# class WIN32OLE::Variable

`WIN32OLE::Variable` objects represent OLE variable information.

### Public Instance Methods

inspect → String
Source

    static VALUE
    folevariable_inspect(VALUE self)
    {
        VALUE v = rb_inspect(folevariable_value(self));
        VALUE n = folevariable_name(self);
        VALUE detail = rb_sprintf("%"PRIsVALUE"=%"PRIsVALUE, n, v);
        return make_inspect("WIN32OLE::Variable", detail);
    }

Returns the OLE variable name and the value with class name.

name
Source

    static VALUE
    folevariable_name(VALUE self)
    {
        return rb_ivar_get(self, rb_intern("name"));
    }

Returns the name of variable.

    tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
    variables = tobj.variables
    variables.each do |variable|
      puts "#{variable.name}"
    end

    The result of above script is following:
      xlChart
      xlDialogSheet
      xlExcel4IntlMacroSheet
      xlExcel4MacroSheet
      xlWorksheet

Also aliased as: to_s
ole_type
Source

    static VALUE
    folevariable_ole_type(VALUE self)
    {
        struct olevariabledata *pvar;
        TypedData_Get_Struct(self, struct olevariabledata, &olevariable_datatype, pvar);
        return ole_variable_ole_type(pvar->pTypeInfo, pvar->index);
    }

Returns OLE type string.

    tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
    variables = tobj.variables
    variables.each do |variable|
      puts "#{variable.ole_type} #{variable.name}"
    end

    The result of above script is following:
      INT xlChart
      INT xlDialogSheet
      INT xlExcel4IntlMacroSheet
      INT xlExcel4MacroSheet
      INT xlWorksheet

ole_type_detail
Source

    static VALUE
    folevariable_ole_type_detail(VALUE self)
    {
        struct olevariabledata *pvar;
        TypedData_Get_Struct(self, struct olevariabledata, &olevariable_datatype, pvar);
        return ole_variable_ole_type_detail(pvar->pTypeInfo, pvar->index);
    }

Returns detail information of type. The information is array of type.

    tobj = WIN32OLE::Type.new('DirectX 7 for Visual Basic Type Library', 'D3DCLIPSTATUS')
    variable = tobj.variables.find {|variable| variable.name == 'lFlags'}
    tdetail  = variable.ole_type_detail
    p tdetail # => ["USERDEFINED", "CONST_D3DCLIPSTATUSFLAGS"]

name

Returns the name of variable.

    tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
    variables = tobj.variables
    variables.each do |variable|
      puts "#{variable.name}"
    end

    The result of above script is following:
      xlChart
      xlDialogSheet
      xlExcel4IntlMacroSheet
      xlExcel4MacroSheet
      xlWorksheet

Alias for: name
value
Source

    static VALUE
    folevariable_value(VALUE self)
    {
        struct olevariabledata *pvar;
        TypedData_Get_Struct(self, struct olevariabledata, &olevariable_datatype, pvar);
        return ole_variable_value(pvar->pTypeInfo, pvar->index);
    }

Returns value if value is exists. If the value does not exist, this method returns nil.

    tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
    variables = tobj.variables
    variables.each do |variable|
      puts "#{variable.name} #{variable.value}"
    end

    The result of above script is following:
      xlChart = -4109
      xlDialogSheet = -4116
      xlExcel4IntlMacroSheet = 4
      xlExcel4MacroSheet = 3
      xlWorksheet = -4167

variable_kind
Source

    static VALUE
    folevariable_variable_kind(VALUE self)
    {
        struct olevariabledata *pvar;
        TypedData_Get_Struct(self, struct olevariabledata, &olevariable_datatype, pvar);
        return ole_variable_kind(pvar->pTypeInfo, pvar->index);
    }

Returns variable kind string.

    tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
    variables = tobj.variables
    variables.each do |variable|
      puts "#{variable.name} #{variable.variable_kind}"
    end

    The result of above script is following:
      xlChart CONSTANT
      xlDialogSheet CONSTANT
      xlExcel4IntlMacroSheet CONSTANT
      xlExcel4MacroSheet CONSTANT
      xlWorksheet CONSTANT

varkind
Source

    static VALUE
    folevariable_varkind(VALUE self)
    {
        struct olevariabledata *pvar;
        TypedData_Get_Struct(self, struct olevariabledata, &olevariable_datatype, pvar);
        return ole_variable_varkind(pvar->pTypeInfo, pvar->index);
    }

Returns the number which represents variable kind.

    tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
    variables = tobj.variables
    variables.each do |variable|
      puts "#{variable.name} #{variable.varkind}"
    end

    The result of above script is following:
       xlChart 2
       xlDialogSheet 2
       xlExcel4IntlMacroSheet 2
       xlExcel4MacroSheet 2
       xlWorksheet 2

visible?
Source

    static VALUE
    folevariable_visible(VALUE self)
    {
        struct olevariabledata *pvar;
        TypedData_Get_Struct(self, struct olevariabledata, &olevariable_datatype, pvar);
        return ole_variable_visible(pvar->pTypeInfo, pvar->index);
    }

Returns true if the variable is public.

    tobj = WIN32OLE::Type.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
    variables = tobj.variables
    variables.each do |variable|
      puts "#{variable.name} #{variable.visible?}"
    end

    The result of above script is following:
      xlChart true
      xlDialogSheet true
      xlExcel4IntlMacroSheet true
      xlExcel4MacroSheet true
      xlWorksheet true