Rubyのwin32oleから、ExcelのFormat()関数を呼び出すコードサンプルを教えてください。

回答の条件
  • 1人5回まで
  • 登録:2007/10/15 18:02:01
  • 終了:2007/10/22 18:05:03

回答(1件)

  • id:cx20
    Excel の Format 関数は、COM のメソッドとして公開されていない(タイプライブラリとして公開されていない)為、
    直接呼び出すことはできません。
    あえて、外部から呼び出すとしたら、Excel の Run メソッドを介して呼び出すくらいでしょうか。
    以下は、VBScript から、Run メソッドを用いて、間接的に Format 関数を呼び出すサンプルです。
    (Run メソッドからは直接 Format 関数を呼べない為、一時的に、モジュールを作成して、そこから呼び出すようにしています。)
    Ruby での Run メソッドの呼び出し方は分かりませんが、おそらく、同様の記述になるかと思います。

    ' File Name : UseExcelFormat.vbs
    ' Usage : CScript UseExcelFormat.vbs //Nologo
    Option Explicit

    Call Main()

    Sub Main()
      Dim excel
      Dim books
      Dim book
      Set excel = CreateObject("Excel.Application")
      Set book = excel.WorkBooks.Add
      
      ' 動的に標準モジュールを追加
      Dim stdModule
      Set stdModule = book.VBProject.VBComponents.Add(1) ' // Standard Module
      stdModule.Name = "Module1"
      With book.VBProject.VBComponents.Item(stdModule.Name).CodeModule
        '.InsertLines 1, "Option Explicit"
        .InsertLines 2, "Sub UseExcelFormat(exp, fmt, result)"
        .InsertLines 3, " result = Format(exp, fmt)"
        .InsertLines 4, "End Sub"
      End With
      
      ' Excel 内の Format 関数を呼び出すテスト
      Dim result
      Call excel.run("UseExcelFormat", 1000, "#,###", result )
      ' [1000] → [1,000] と書式化され出力します。
      WScript.Echo result

      book.Saved = True ' 閉じるときに保存確認のメッセージを表示させない
      book.Close False ' 保存しないで閉じる

      excel.Quit ' Excel 本体を終了
    End Sub
  • id:pekeq
    cx20さん、ありがとうございます。やっぱり直接は呼べないんですね。
  • id:cx20
    ポイント送信、今、気が付きました。ありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません