# GoalSeek01.rb.txt: ruby script (encoding: Windows-31J) # コールシークの操作 z_goal01.xls を出力 # 27の3乗根を求める # 数値の表示形式(小数点以下桁数の指定)をしない時と、した時の2種類を示す require "exlap" filename = "z_goal01.xls" if test(?e, filename) # z_goal01.xlsが存在するなら削除 File.unlink(filename) end xl = Exlap.new # Excelの起動 xl.opens(filename) do |wb| ## 27の3乗根を求める ss = wb.fes # 空のワークシートを選択 ss.Name = "27の3乗根を試算" ss.Range("A1").Value = "GoalSeekで27の3乗根を探索" ss.Range("A1:C1").MergeCells = true ss.Range("A2:C2").Value = "目標値", "試算値(右欄の3乗値)", "試算3上根" ss.Range("A3").Value = 27 ss.Range("B3").Formula = "=C3^3" # C3を3乗した値をB3に入れる ss.Range("B3").GoalSeek('Goal'=>27, 'ChangingCell'=>ss.Range("C3")) ss.Range("A4").Value = "↑ 「目標値」と「試算値」が近似していれば成功" ss.Range("A4:C4").MergeCells = true ss.range_autofit ss.Range("A6").Value = "27の3乗根を探索・表示の有効桁数指定" ss.Range("A6:C6").MergeCells = true ss.Range("A7:C7").Value = "目標値", "試算値(右欄の3乗値)", "試算3上根" ss.Range("A8").Value = 27 ss.Range("B8").Formula = "=C8^3" # C8を3乗した値をB8に入れる ss.Range("B8").GoalSeek('Goal'=>27, 'ChangingCell'=>ss.Range("C8")) ss.Range("B8:C8").NumberFormatLocal = "#0.00" # 数値表示の有効桁数を指定 ss.Range("A9").Value = "↑ 有効桁数2桁を指定すると一致してみえる" ss.Range("A9:C9").MergeCells = true ss.range_autofit wb.ss(1).Activate wb.save # ワークブックの保存 end xl.quit