トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

OLE

Table of Contents

 Excel をさわる

リファレンスの「OLEオートメーションの使用例」にあるコードを使ってみる。

(defmacro $ (obj prop &rest args)
  `(ole-method ,obj ',prop ,@args))

(defsetf $ (obj prop &rest args) (x)
  `(progn
     (ole-putprop ,obj ',prop ,x ,@args)
     ,x))

サンプルを参考に,dud の結果をクリップボード経由で Excel に貼り付けてみた。*dud* バッファで M-x dud2excel する。

(defun dud2excel ()
  (interactive)
  (copy-to-clipboard (buffer-substring (point-min) (point-max)))
  (let (app workbook worksheet)
    (setq app (ole-create-object "Excel.Application"))
    ;;Excel 起動
    (setf ($ app Visible) t)
    ;;ワークブック追加
    (setq workbook ($ ($ app Workbooks) Add))
    ;;ワークシート1をセット
    (setq worksheet ($ workbook Worksheets 1))
    ;;クリップボードから貼り付け
    ($ worksheet Paste)
    ;;列幅自動調整
    ($ ($ ($ worksheet Cells) EntireColumn) AutoFit)
    ;;A列のセル書式をカンマ区切りの数値に
    (setf ($ ($ worksheet Range "A:A") NumberFormatLocal) "#,##0_ ")
    ;;セルA1選択
    ($ ($ worksheet Range "A1") Select)
    ;;変更フラッグを消す
    (setf ($ workbook saved) t)
    ))

リンク

最終更新時間:2005年09月10日 12時58分13秒 GMT