[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:01915] Re: OLE 対応、ありがとうございました



大橋さん、こんにちは。

    Tue, 16 Feb 1999 01:28:31 +0900 の
   “[xyzzy:01912] OLE 対応、ありがとうございました”
    への返事です.

| た。わたしの環境では2行目だけうまくいかなかったので、変更しました。素晴らし

気が変わったので t/nil を True/False に対応するように変更しまし
た。戻り値も True/False は t/nil になります。それから、ベクタの
代わりにリストでも可です。

| そうでしょうか。VBやRubyでコーディングすると、確かにフラットな感じに書けてお
| しゃれに見えますが、

こんな小細工をしてみたんですけどどうでしょう?

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

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

(let (app workbook worksheet range)
  (setq app (ole-create-object "Excel.Application"))
  (setf ($ app Visible) t)
  (setq workbook ($ ($ app Workbooks) Add))
  (setq worksheet ($ workbook Worksheets 1))
  (setf ($ ($ worksheet Range "A1:D1") Value) '("North" "South" "East" "West"))
  (setf ($ ($ worksheet Range "A2:B2") Value) #(5.2 10))
  (setf ($ ($ worksheet Range "C2") Value) 8)
  (setf ($ ($ worksheet Range "D2") Value) 20)

  (setq range ($ worksheet Range "A1:D2"))
  ($ range Select)
  ($ ($ workbook Charts) Add)
  (sit-for 5)

  (setf ($ workbook saved) t)
  ($ ($ app ActiveWorkbook) Close 0)
  ($ app Quit))


| ●オブジェクト.XXXのXXXがプロパティなのかメソッドなのか、あいまいな感じがし
| ます。

これは、結構てきとーなんではないでしょうか? 某 Excel の Address 
なんかは、95 ではメソッドだったのに 97 ではプロパティになってる
し。

--
亀井哲弥(Tetsuya Kamei)
kamei@xxxxxxxxxxxx/JCA00343@xxxxxxxxxxx

Index Home