マクロでクリップボードの中身が取り出せNo.02390
aichan さん 01/08/14 19:08
 
はじめて書き込みします。
aichanと申します。

実は、Outlook2002のVBAと秀丸エディタのマクロを使って、Outlookメール本文の一
部を取り出し、それを秀丸エディタの該当するファイルに貼り付けるという作業の自
動化をやろうとしています。

ほぼ完成しているのですが、VBAでクリップボードに転送したはずのテキストが、秀
丸エディタのマクロ中のPasteコマンドではうまく参照できないという現象が発生し
ています。

VBAでは、該当する部分をクリップボードに転送した後、WindowsAPIで秀丸を実行し
ていて、そのコマンドラインは、該当するファイルを開いて秀丸マクロを実行すると
いうものです(以下一部抜粋)。

>'抜き出した本文部分をクリップボードへ転送する処理
>myData.SetText (myCopy)
>myData.PutInClipboard
               
>'秀丸エディタでマクロを起動して、メールから抜き出した文章を該当するファイ
>ルにコピー&ペーストする

>strAppli = """c:\Program Files\ols\Hidemaru\Hidemaru.exe"" /x読むシリーズ
>コピー2.mac "
   
>strAppli = strAppli & """D:\My Documents\Windowsマガジン\" & myTitle & ".t
>xt"""
   
>On Error GoTo Err_Proc3
>Call WinExec(strAppli, SW_NORMAL)

秀丸に制御が移ったときに実行されるマクロは以下の通りですが、最初のpasteコマ
ンドで何も貼り付けられません。
ちなみに、クリップボードの中身はしっかり、VBAでペーストしたものが入っていて、
その証拠にVBAを中断して、秀丸を立ち上げ、編集メニューから貼り付けを行うと正
常に貼り付けが出来ます。

耳寄りな情報がありましたら、ご教授願いますm(__)m


// 最終行へ移動
gofileend;

// コピーした文章を最終行以降に貼り付け
paste;

// 1行空行を追加
insertreturn;

// ★を検索します
searchup "^★",regular;

// タイトル行2行をコピー
beginsel;
// selectline;
// down 1;
// selectline;
down 2;
copy;

// 先頭に戻って目次にタイトル行を追加
gofiletop;
// 先頭が空白行を検索します
searchdown "^\\n",regular;
paste;

// 保存して終了します
saveexit




[ ]
RE:02390 マクロでクリップボードの中身がNo.02391
aichan さん 01/08/14 21:22
 
aichanです。環境のことを書き忘れておりましたm(__)m。
PenIII自作マシンのOSはWindows2000、秀丸は3.08です。

>ちなみに、クリップボードの中身はしっかり、VBAでペーストしたものが
>入っていて、その証拠にVBAを中断して、秀丸を立ち上げ、編集メニュー
>から貼り付けを行うと正常に貼り付けが出来ます。
なお、秀丸が3.05のときは、前の投稿で書いた、編集メニューからの貼り付けもでき
なかったことも、何かの手がかりになりますでしょうか

よろしくお願いします。


[ ]
RE:02390 マクロでクリップボードの中身がNo.02392
ひろ さん 01/08/14 23:08
 
 aichan さん今日は、ひろです。引用順序を変えました。
> saveexit

saveexit;
とするぐらいで、マクロは問題ないようです。

> >strAppli = """c:\Program Files\ols\Hidemaru\Hidemaru.exe"" /x読むシリーズ
> >コピー2.mac "
 VBA の文法が解りませんが、この場合、ロングファイル名である
「c:\Program Files\ols\Hidemaru\Hidemaru.exe」と「読むシリーズコピー
2.mac」を「"」を括る必要があるのではありませんか?

[ ]
RE:02392 マクロでクリップボードの中身がNo.02393
aichan さん 01/08/14 23:40
 
ひろさん、aichanです。早速のレスありがとうございました。


>> saveexit
>を
>saveexit;
>とするぐらいで、マクロは問題ないようです。
ありがとうございました。早速訂正しました(^_^;)。

>VBA の文法が解りませんが、この場合、ロングファイル名である
>「c:\Program Files\ols\Hidemaru\Hidemaru.exe」と「読むシリーズコピー
>2.mac」を「"」を括る必要があるのではありませんか?

""c:\Program Files\ols\Hidemaru\Hidemaru.exe""としてあるのは、文字列を""でく
くって表現するVBではその中で「"」を表現するには「"」を2個続ける必要があるか
らです。読むシリーズコピー2.macのほうは、最初くくっていたらうまくいかなかっ
たので単純に取ったらうまく動いたので良しとしています(^_^;)。マクロは秀丸本体
があるフォルダに置いてあるので、何も必要ないのかなと勝手に納得しています。

この状態でうまく秀丸は起動し、必要なファイルも読めており、マクロも動作してい
るようです。最初のペースト以外は(^_^;)。

では、また。





[ ]