# basic01.rb.txt: ruby script (encoding: Windows-31J) # Excelの基本操作・その1 z_basic01.xls を出力 # 文字の色・大きさ・書体・下線・太さ・斜体の設定 # ハイパーリンクの設定、罫線の書き入れ # セルへの関数の書込み(平方根・平均値) # セルの表示形式の設定(NumberFormatLocal) # 「__END__」以降にフォントの調整に関する参考情報あり require "exlap" filename = "z_basic01.xls" # これから作るワークブックの名前 if test(?e, filename) # z_basic01.xls が既にあるなら削除 File.unlink(filename) end xl = Exlap.new # Excelの起動 xl.opens(filename) do |wb| # ワークブックを開く ## 文字の色・大きさ・書体・下線・太さ・斜体の設定 ss = wb.fes # 空のワークシートを選択 ss.Name = "フォントの調整" # ワークシート名を設定 ss.Range("A1").Value = "文字の色・大きさ・書体・下線・太さ・斜体の設定" ss.Range("A1:C1").MergeCells = true # A1:C1をセル結合 (cell = ss.Range("A2")).Value = "科学者が人間であること" # A2への書き込み cell.Font.ColorIndex = 5 # 色を青に設定。元は1の黒 (cell = ss.Range("B2")).Value = "中村 桂子 著" # B2への書き込み cell.Font.Size = 20 # 文字サイズを20ポイントに。元は11 (cell = ss.Range("C2")).Value = "岩波新書" cell.Font.Name = "MS 明朝" # 元は "MS Pゴシック" (cell = ss.Range("A3")).Value = "円と日本経済の実力" cell.Font.Underline = XlUnderlineStyleDouble # 二重下線 (cell = ss.Range("B3")).Value = "鈴木 淑夫 著" cell.Font.Bold = true # 太字 (cell = ss.Range("A4")).Value = "This is a pen." cell.Characters(11,3).Font.Italic = true # 「pen」のみを斜体に # 「pen」は文字列中で 11文字目から3文字分に相当 ss.range_autofit # セル幅を自動調整 ## ハイパーリンクの設定、罫線の書き入れ ss = wb.fes # 空のワークシートを選択 ss.Name = "ハイパーリンク・罫線" # ワークシート名を設定 ss.Range("A1").Value = "ハイパーリンクの設定,罫線の書き入れ" ss.Range("A1:B1").MergeCells = true # A1:C1をセル結合 # ↓ webへのハイパーリンクを書き込む ss.hyperlink("A2", "http://ofmind.net/doc/r-intro-lecture", "統計処理ソフトR 入門 講習会資料") ss.hyperlink("B2", "http://www.rubylife.jp/ini/", "Ruby入門") ss.hyperlink(3,1, "http://excelvba.pc-users.net/", "Excel VBA 入門講座") ss.hyperlink(3,2, "http://sky-y.github.io/site-pandoc-jp/users-guide/", "Pandocユーザーズガイド") # ↓ A2:B3の2×2のセルの幅と高さを自動調節 rng = ss.Range("A2:B3") ss.range_autofit(rng) # セル幅を自動調整 # ↓ A2:B3を罫線で囲む。外枠は太線・内側は細線 # doublebox を allbox にすると、外枠も細い罫線になる ss.range_doublebox(rng) ## セルへの関数の書込み(平方根・平均値) ss = wb.fes # 空のワークシートを選択 ss.Name = "関数の書込み" # 1行に1〜10の数とその平方根を書き込む # 最終行には、上にある10個の数の平均値を各々書き込む ss.Range("B1:C1").Value = "整数値", "平方根" # 見出し last_num = 10 # 10までの整数値を書き込む for n in 1..last_num y = n + 1 # 書き込む行の番号(見出し分の1行を加算) ss.cell(y,2).Value = n ss.cell(y,3).Formula = "=SQRT(RC[-1])" # 左隣のセルの平方根 end y = y + 1 ss.cell(y,1).Value = "平均値" ss.cell(y,2).Formula = "=AVERAGE(R[-10]C:R[-1]C)" ss.cell(y,3).Formula = "=AVERAGE(R[-10]C:R[-1]C)" ## セルの表示形式の設定 ss = wb.fes # 空のワークシートを選択 ss.Name = "表示形式の設定" ss.Range("A1").Value = "番号・日付・分数・小数点数の表示形式" ss.Range("A1:D1").MergeCells = true # A1:C1をセル結合 # 番号・日付・分数・小数点数の4つの欄からなる行を4行作成 # 001, 元号, 1/2, 0.5の形式 for n in 1..4 y = n + 1 (cell = ss.cell(y,1)).Value = n cell.NumberFormatLocal = "000" # 表示形式の設定 (cell = ss.cell(y,2)).Value = "2014/#{n}/#{n}" cell.NumberFormatLocal = "ggge年m月d日" ss.cell(y,3).Value = "'1/#{n}" # 日付と区別し文字として書き込む (cell = ss.cell(y,4)).Value = "0 1/#{n}" # 帯分数形式で書き込む cell.NumberFormatLocal = "0.00" # 小数点2桁まで有効 end ss.range_autofit # セル幅を自動調整 ss = wb.ss(1) # 第1ワークシートを選択 ss.Activate wb.save # ワークブックの保存 end xl.quit # Excelの終了 __END__ *フォントの調整に関するメモ a. 色の指定に使う番号  Font.ColorIndex に設定する色の値は下のとおり。  黒: 1 マゼンタ: 7  白: 2 シアン: 8  赤: 3 茶: 9  明るい緑: 4 緑: 10  青: 5 紺: 11  明るい黄色: 6 うぐいす: 12 b. 文字のサイズ  Font.Size は、文字の大きさを指定します。単位はポイント。1なら1ポイント、100なら100ポイント。  デフォルトは 11  1ポイントは1/72インチ。1インチが約25.4mmなので、11ポイントは約3.9mmとなります。  ちなみに、セルの高さの標準値は 13.5ポイント(約4.8mm)のようです。 c. フォントの種類  Font.Name は、フォントの種類を指定します。「MS 明朝」や「MS ゴシック」などが一般的。  デフォルトは「MS Pゴシック」 d. アンダーライン  Font.Underline は、下線の種類を指定します。次の5種類が指定可能。 普通の下線: XlUnderlineStyleSingle 2 二重下線: XlUnderlineStyleDouble -4119 会計用の下線: XlUnderlineStyleSingleAccounting 4 会計用の二重下線: XlUnderlineStyleDoubleAccounting 5 下線の消去: XlUnderlineStyleNone -4142 e. 太字の指定  Font.Bold = true ← 太字  Font.Bold = false ← 太字の解除 f. 斜体の指定  Font.Italic = true ← 斜体  Font.Italic = false ← 斜体の解除