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

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



亀井さん、逸見さん、こんにちわ。大橋です。
亀井さん、OLE対応、ありがとうございました。
感激です。

さっそく、亀井さんが[xyzzy:01900] に掲載して下さったサンプルを動かしてみまし
た。わたしの環境では2行目だけうまくいかなかったので、変更しました。素晴らし
いです。

(setq application (ole-create-object "Excel.Application"))
(ole-putprop application 'visible 1) ; <== 一部変更
(setq workbook (ole-method (ole-getprop application 'Workbooks) 'Add))
(setq worksheet (ole-getprop workbook 'Worksheets 1))
(ole-putprop (ole-method worksheet 'Range "A1:D1") 'value #("North" "South"
"East" "West"))

亀井さん>lisp ではこんな感じになると思うんですが、なんかいまいちかっこ悪
亀井さん>いんですよね。

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

●オブジェクト.XXXのXXXがプロパティなのかメソッドなのか、あいまいな感じがし
ます。
●プロパティを扱う場合、putしようとしているのかgetしようとしているのか、あい
まいな感じがします。

わたしは亀井さんの仕様の方がメリハリがあって好きです。

逸見さん>大橋さんがやられたいという、NOTESへのアクセスについては、
逸見さん>xyzzyから直接NOTESにアクセスするのではなく、一度中間層(抽象レベ
ル)
逸見さん>を通してから、アクセスする方が美しいのではないでしょうか?

逸見さんのおっしゃる「通信サーバー」を置くやり方は、とても美しいし、OLEが本
質的にアプリケーション間通信であることを思うと、OLEの性格にあった方法かもし
れませんね。

最後にひとつ質問ですが、VBですと、for each ... next という構文で、dolistによ
うにOLEのコレクションの各要素をなめながらループ処理できるのですが、xyzz
y Lispではどう書けばよろしいのでしょうか。

大橋 弘靖 <hohasi@xxxxxxxxxxxxxxxx>

Index Home