数値からローマ数字への変換

一方 Windows では Excel を使った。

require 'win32ole'

class Integer
  EXCEL = WIN32OLE.new 'Excel.Application'

  def to_roman
    EXCEL.WorksheetFunction.Roman(self)
  end
end

[0, 1, 2, 3, 4, 5, 6,
 9, 10, 11,
 14, 15, 16,
 19, 20, 21,
 24, 25, 26,
 40, 49, 50, 51,
 54, 55, 56, 60,
 99, 100, 101,
 200, 400, 500, 600, 900, 999, 1000,
 1969, 2000, 2004, 2010].each do |i|
  puts "%8d: %s" % [i, i.to_roman]
end
# >>        0: 
# >>        1: I
# >>        2: II
# >>        3: III
# >>        4: IV
# >>        5: V
# >>        6: VI
# >>        9: IX
# >>       10: X
# >>       11: XI
# >>       14: XIV
# >>       15: XV
# >>       16: XVI
# >>       19: XIX
# >>       20: XX
# >>       21: XXI
# >>       24: XXIV
# >>       25: XXV
# >>       26: XXVI
# >>       40: XL
# >>       49: XLIX
# >>       50: L
# >>       51: LI
# >>       54: LIV
# >>       55: LV
# >>       56: LVI
# >>       60: LX
# >>       99: XCIX
# >>      100: C
# >>      101: CI
# >>      200: CC
# >>      400: CD
# >>      500: D
# >>      600: DC
# >>      900: CM
# >>      999: CMXCIX
# >>     1000: M
# >>     1969: MCMLXIX
# >>     2000: MM
# >>     2004: MMIV
# >>     2010: MMX

to_old_roman はできないみたい。