指定フォルダ内にあるExcelファイルを一括でプリントアウトするRubyスクリプト

複数シート含有の40ブックを10部印刷とか、手でやると死ねる割に代替え手段がないのはどうよ。

#! ruby -Ks
require 'win32ole'

def getAbsolutePath filename
  fso = WIN32OLE.new('Scripting.FileSystemObject')
  return fso.GetAbsolutePathName(filename)
end

xl = WIN32OLE.new('Excel.Application')
xl.DisplayAlerts = false
xl.Visible = true
fso = WIN32OLE.new('Scripting.FileSystemObject')

fso.GetFolder(getAbsolutePath("files")).Files.each do |file|
  book = xl.Workbooks.Open(file.Path)
  book.Worksheets.select
  book.PrintOut
  book.Close
end

同じような感じで、ページセットアップの一括変更とかも可能。各ブックから特定のシートを集めて一つのブックにしたりも便利。

Excel資料の印刷って、多重下請業界人なら基本だよね。みんな、どうやってんの?