クリップボードの内容をメール本文とするNo.19076
sea-gel さん 04/07/13 15:10
 
 Excelでメール本文を作り、クリップボード経由でデータを鶴亀に伝えて
新規メールを作りたいのですがうまくいきません。使うことができない機能
を使おうとしているのか、それとも使い方が悪いのか教えて下さい。

 Excelで下記のテストプログラムを実行した場合はうまく動作し、本文が
"Hello."となる鶴亀の新規メールウインドウが開きます。
 "Hello."と言う部分を"こんにちは"と変更してプログラムを実行すると、
本文が空の新規メールウインドウが開きます。
 漢字を含むメールを作成したいのですが、漢字を含む文字列ではクリップ
ボード経由のデータやりとりが正しく動作しないようです。
 どの様にすればクリップボード経由で漢字を含むメール本文の新規メール
を作れるのでしょうか。
 (Excelがクリップボードに格納するデータがおかしいのであれば、使えな
い機能であると思いあきらめます)


環境は
Win 2000 Pro SP4, IE 6 SP1, 鶴亀メール Version 3.63, Excel 2002 SP3
です。


------- テストプログラム -------
' データオブジェクト。クリップボードアクセスのために用いる
Dim MyData As DataObject

' フォームをクリックした時に動作するルーチン
Private Sub UserForm_Click()
' 文字列格納用変数
    Dim DispMojiretsu As String

' メールの本文を文字列変数DispMojiretsuに格納する
    DispMojiretsu = "Hello." + Chr(13) + Chr(10)

' データオブジェクトを作成
    Set MyData = New DataObject
' データオブジェクトに文字列変数DispMojiretsuの内容をコピー
    MyData.SetText DispMojiretsu
' データオブジェクトの内容をクリップボードにコピー
    MyData.PutInClipboard

' 鶴亀メール起動 新規メール作成、クリップボードの内容をメール本文とする
    Shell ("C:\Program Files\TuruKame\TuruKame.exe newmail BodyFile=clipboard")
End Sub


以上

[ ]
RE:19076 クリップボードの内容をメール本No.19084
Iranoan さん 04/07/13 18:10
 
 sea-gel さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> クリップボード経由でデータを鶴亀に伝えて
> 新規メールを作りたいのですがうまくいきません。
 取り敢えず、コマンドラインで
"C:\Program Files\TuruKame\TuruKame.exe" newmail BodyFile=clipboard
が期待通りの動作をするか確認されては如何でしょう? 期待通りなら、あとは
Excel 側の問題です。Windows98+IE6.0+鶴亀 Ver.3.64beta3 の環境では問題
なく動作しました。

 P.S VB はよく分からないけれど、
> Shell ("C:\Program Files\TuruKame\TuruKame.exe newmail BodyFile=clipboard")は
Shell ("\"C:\Program Files\TuruKame\TuruKame.exe\" newmail BodyFile=clipboard")
等と、ロング・ファイル名は「"」で括る必要は無いのでしょうか? VB のエス
ケープ・キャラクタが「\」すら知りませんが(^^;。

[ ]
RE:19084 クリップボードの内容をメール本No.19087
sea-gel さん 04/07/13 21:22
 
Excel側の問題という視点で調べ直しました。

 Excelでクリップボードに文字列を格納するとTEXT, OEM TEXT, UNICODE
TEXTの三種類の形式でクリップボードにデータが格納されていました。
 半角の文字だけをクリップボードに格納する場合は3種類のフォーマット
で正しく格納されるようです。
 でも、全角文字が混ざっている文字列をクリップボードに格納する場合
は、OEM TEXTとUNICODE TEXTはそれらしい形式で格納されるのですがTEXTは
長さ0の文字列が格納されていました。

 鶴亀を引数newmail BodyFile=clipboardで起動した時に本文が空の新規メ
ールウインドウが開いたのはクリップボードに格納されているTEXT形式デー
タが長さ0の文字列となっているためのようです。

 Excel側の問題なので今回はあきらめることにします。テキストファイル
経由で新規メールを作ることにします。


ここから鶴亀担当者殿への独り言
(鶴亀の中身を知らない者の生意気な気持ちですので聞き流して下さい):
 でも、鶴亀がクリップボードからテキストを取り出す時にUNICODE TEXTや
OEM TEXTで取り出してくれればうまくいきそうなのですが鶴亀担当者殿どう
でしょうか?UNICODE TEXTでの取り出しを優先すれば多国語混在ユニコード
メールもクリップボード経由で作れそうな気がします。

以上

[ ]
RE:19087 クリップボードの内容をメール本No.19094
秀まるお2 さん 04/07/14 10:11
 
 クリップボードの形式まで調査されたとは、恐れ入ります。たしかに、
CF_TEXTしか見てませんでした。

 CF_UNICODETEXTがある場合はそっちを優先するように直します。

[ ]
RE:19094 クリップボードの内容をメール本No.19095
sea-gel さん 04/07/14 11:02
 
> CF_UNICODETEXTがある場合はそっちを優先するように直します。
 ありがとうございます、よろしくお願いします。

[ ]
RE:19094 クリップボードの内容をメール本No.19102
sea-gel さん 04/07/15 15:09
 
> CF_UNICODETEXTがある場合はそっちを優先するように直します。
 私がやりたいことができるようになったことを鶴亀メールのV3.64β4で確
認致しました。
 対応いただき、ありがとうございました。

[ ]