- ベストアンサー
DDEを使うとは?
WinXP-SP2です。 フォルダオプションをたどっていくと、「アクションの編集」ウインドウで、「DDEを使う」などというチェックボックスが出てきます。その下には、やたら難しい記号が入力されています。「?」をあてても、「動的データ交換を使うかどうか指定します」などと、分かっている人には分かるが、知らない人には決して分からない説明文が出てきます。 "ぼやき"はそれくらいにして、ところで、「DDEを使う」とは、素人分りするように説明すると、どういうことになるのでしょう?。というか、これにチェックをいれておかないとどういうことになるのでしょうか?。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> 複数のプログラム間でデータ交換を行なう DDEは1対1のメッセージ交換だったと思う。俗に言うマルチキャストのような使い方はできなかったのではないかな。ちなみに、同じメッセージを受け取るプログラムが2つ起動すると、後に起動されたものが優先される。 > Excelで集計した結果を使ってWordでデータを書く それはDDE(Dynamic Data Exchange)ではなくOLE(Object Linking and Embedding)というか単なるカット&ペーストのような・・・・。 ちなみにOLEとは、Wordの中にExcelシートそのものを埋め込んで、シートを編集しようとするとWordの中でExcelが立ち上がって編集ができる仕組みだ。 > プログラム1の出力を自分でコピーし、それをプログラム2に貼り付けする > Excelシート上のセルの内容をクリップボードにコピーして、 > それをWordのシートに張りつけるにも、 > 「DDE」云々にチェックを入れておかないと出来なくなる、 カットアンドペースはそれぞれのプログラムがOSとWM_COPY、WM_PASTEなるWin32 API Messsageにてやり取りし、OSはクリップボードという仕組みでデータを一時的に保管、プログラム間の受け渡しを行う。この通信にDDEは使われない。 ANo.1で既に解説したとおり、DDEはメッセージを受ける側が受けるようにプログラムを書いていないと動作しないので、DDEどころかOLEにも対応していないWindows標準のメモ帳では何もできない事になってしまう。 ちなみに、大抵のプログラムはCtrl+Xでカット、Ctrl+Cでコピー、Ctrl+Vでペーストを行うが、これもプログラムがそう書いているだけで、Windowsにはそういうお作法(プログラム作成時のガイドライン)があるのでそうなっている。Windows 3.1の頃はShift+Insertとか意味わかんないショートカットキーだった。 なので、DDEを無効にしていてもカットアンドペーストには全く問題ないので安心されたい。 Excelを持っているのなら分かると思うが、DDEを使うでDDEメッセージに「[open("%1")]」となっているはずだ。これはエクスプローラがExcelに対して%1を開いてくださいよという要求を出すという意味で、%1はファイル名で置き換えられる。 同じくExcelでもう一度DDEの有無の違いを解説しよう。 ・あり/なしでExcelが未起動 エクスプローラは普通にOSにExcelの起動を要求し、OSがExcelを起動する。 ・なしでExcelが動作している まったくおかまいなしにエクスプローラは普通にOSにExcelの起動を要求し、OSがExcelを起動する。つまり、excel.exeが2つ立ち上がることになる。 ・ありでExcelが動作している エクスプローラは動いているExcelに[open(ファイル名)]というDDEメッセージを送信する。DDEメッセージを受け取ったExcelは自らファイルを開く。 excel.exeが2つ動くとどうなるのか? 1つのexcel.exeが2つのブックを開いているのと何が違うのか? それは、君自身の手で試していただきたい。と思ったけど、ちょっとだけ解説。 ・1つのexcel.exeで2つのブック ウィンドウ(W)メニューで2つのブックを切り替えて表示する。ブック間の連携が(同一プロセス内なので)容易。設定にもよるがタスクバーにはエクセルブックのタスクとして表示される。同じファイル名のブックは、ファイルを置いているフォルダが違っていても開くことはできない。 ・2つのexcel.exe 2つのexcel.exeで同じブックを開くことができるが、同じOS内で動いているのに二つ目は???.xlsは編集のためロックされていますとかマヌケなメッセージを表示する。Ctrl+TABやウィンドウ(W)メニューで切り替える事ができない。 何をもって不都合と感じるかは人それぞれだと思うけど、一長一短でしょうね。
その他の回答 (4)
- anmochi
- ベストアンサー率65% (1332/2045)
もはやDDEとは何の関係もない雑談になってしまったが。 もうDDEとは何ぞやってのは良いよね。 > 違うフォルダに置いてある同じファイル名のブックを > 同時に開くことができるメリットもある、 > ということで、そういう意味で「一長一短」ということでしょうか。 うん、まぁ僕が今言っているのはそうやね。これ(違うフォルダに置いてある同じファイル名のブック)ってExcelの都合な訳ですよね。Excelがブック間の参照をファイル名で行っているために同じファイル名のブックがあると判断できなくなるって、お客さん(Excelを使う人)にとっちゃそんな制限は不都合以外の何物でもない。大体、ファイル名なんてものはWindows OSによって単なる記号でしかなくなるなんて言ってたのはMicrosoftでしょうに。ねぇ。 あのー、Excelでたくさんの文書を作ってるような組織だと、ブックをコピーして他の文書を作るって事も多くって、違う場所で同じファイル名の違う作業用のブックがどんどん増えていく事がよくありましてね。そうすると、一部だけ流用したいって時にファイル名が同じだとどっちかをリネームしてから開かないといけない。これがわずらわしいと思う人も居るだろうね。 システムって本来人間のためにあるものだよね。このExcelの制限だったり、「大きなメールは送るな」だったり、「添付ファイルには日本語のファイル名は使うな」だったり、人間が人間のために使うシステムでなんで人間がそんな我慢しなきゃいけないのかなと。今ではそうでもないけど、インターネット創世記には自称上級者がネチケットネチケットとメールに対してうるさく言ってたけど、本来それはシステム側で解決すべき問題で、人間側が使うに際してそんな気を遣わなきゃいけないシステムの時点でシステム失格だと思うのさ。大きなメールだったら自動で分割して他のメールの合間にこそこそ忍ばせてゆっくり送受信して自動で帯域制御するとかね。 本当に良いOSはOSがある事をユーザが気づかないOSだって言うけれど、まさに真理だよね。ユーザは表形式で計算したり資料をまとめたりしたいのであって「表計算ソフトを操作したい」のでもましてや「パソコンを操作したい」のでもない。 数多くの「システムソリューション」屋さんが勘違いしている所だと思う。「パソコンだから自動になりますよ」ではなく「自動化する手段としてパソコンを使いましょうか」でないとおかしいよね。 そういう意味でも、DDEの設定やバージョンの切り替えなんて操作を人間様が行わなきゃいけないってのも、ちょっと理不尽な気がするね? と、一応DDEの話題に触れて関係ない雑談じゃないところをアピールしてみた。
お礼
ご丁寧なフォローありがとうございます。 >もはやDDEとは何の関係もない雑談になってしまったが。 いえ、必ずしもそうとは感じていませんのですがぁ。 >そういう意味でも、DDEの設定やバージョンの切り替えなんて操作を人間様が行わなきゃいけないってのも、ちょっと理不尽な気がするね? これこそまさに「したり」。私ごときトウシロウが、DDE云々しなきゃならんなんて、おかしいですよねぇ。
- nagabuchu
- ベストアンサー率31% (16/51)
それはExcelの設定のようです。 フォルダオプションのファイルの種類の所はいじらないほうがいいですよ。 間違えるとWindowsがおかしくなります。
お礼
早速のご忠告、ありがとうございます。 別スレで質問させて戴いていますが、Officeを共存させる関係で、どうしても『ファイルの種類をいじら』ざるを得ないのです。これについては、ご紹介戴いたURLは極めて参考になります。
- tadasi8
- ベストアンサー率41% (1187/2828)
回答します。 DDEとは何かというと、複数のプログラム間でデータ交換を行なう手順です。例えば、Excelで集計した結果を使ってWordでデータを書くというように、プログラム1の出力をプログラム2に入力するケースを考えます。1番簡単なのはプログラム1の出力を自分でコピーし、それをプログラム2に貼り付けするという考え方ですね。
お礼
早速のご回答ありがとうございます。 >プログラム1の出力をプログラム2に入力するケース って、例えばExcelシート上のセルの内容をクリップボードにコピーして、それをWordのシートに張りつけるにも、「DDE」云々にチェックを入れておかないと出来なくなる、ということでしょうか。それは大変。決してチェックを外さないよう注意しなければ・・・。
- anmochi
- ベストアンサー率65% (1332/2045)
DDEとは、Windowsプログラム同士が直接データをやりとりするための仕組みで、今回の件で言うと、Windowsプログラムエクスプローラが同じくWindowsプログラム「アクションを実行するプログラム」に対して直接要求を行うようにするって事。 DDEに使うにチェックを入れていないと、エクスプローラはOSに対して「アクションを実行するプログラム」を起動するよう要求する。 DDEにチェックを入れると、(起動されている場合のみ)OSへではなく直接プログラムに対して要求を行う。 エクスプローラが「aaaa.xlsってファイルを開くようにユーザから指示を受けたぜべいべえ。さてオレはどうにもできんし、誰かに振るか。誰に振ろうかな。」となった時に、OSにプログラム起動を要求するのか、プログラム自身に直接要求を渡すのかを切り替えるものだ。 まず「アクションを実行するプログラム」がDDEを使えるように作りこんでおかないとダメ。今の時代、DDE対応プログラムなんて数えるくらいしかないやろな。Microsoft Officeとか。DDE対応のプログラムであれば説明書にそう書いてある事でしょう。 またこのDDEの設定ってそれぞれのプログラムに固有なので知識の流用もできんし分かりづらいし面倒この上ない。全く使う場面はないでしょう。イマドキDDEなんて時代錯誤もはなはだしい。シャ○プの液晶のように21世紀に持っていくものではなく、20世紀に残していくものの一つです。
お礼
早速のご回答ありがとうございます。 概念的に分かりました。 ざっと見たところ、ずべての「拡張子」、すべての「アクション」に「DDEを使う」のチェックが入っていますねぇ。 ところで、「XLS」関連で、「DDEを使う」にチェックを入れないと、一体どんな不都合が発生するのでしょう。これがわかると「DDEの効能」とやらも直ぐ理解できるのですが。
お礼
詳細な解説ありがとうございます。原理的なことが分かってきたような気がします。なお、問題の発生しているのは、会社のPCですので、来週いろいろと試して見ようと思います。 >何をもって不都合と感じるかは・・・ あの「マヌケなメッセージ」が表示される状態は、いかにも不都合ですよねぇ。あの状態を好んで使う人っていらっしゃるのでしょうかねぇ。 っていうか(文脈からすると)、その「マヌケ」な環境だと、違うフォルダに置いてある同じファイル名のブックを同時に開くことができるメリットもある、ということで、そういう意味で「一長一短」ということでしょうか。