掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Excel操作でクリップボードからの貼り付け (ID:26979)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TExcelApplication,TExcelWorkBook,TExcelWorkSheetを 利用してExcelを操作しています。 ExcelWorkSheet1.Range['A1', 'A1'].Value := 'AAA'; というように代入すると「元に戻す」が利用できなくなります。 「元に戻す」の機能を利用したいので、値を クリップボードに一旦、覚えておいて CTRL+Vを送信し、貼り付けをしようとしています。 下記のソースで一度だけの貼り付けなら何とか できましたが、連続で実行すると動作がおかしくなります。 クリップボードの内容がクリアされてないためと思われますが、 最終行にクリアを入れるとうまく動作しません。 // クリップボードをクリア ClipBoard.Clear; // 値をクリップボードにコピー ClipBoard.AsText := 'AAA'; // 指定されたセルを選択 ExcelWorkSheet1.Range['A1', 'A1'].Select; // キーボードコマンドでCTRL+V(貼り付け)を送信 keybd_event(VK_CONTROL,0,0,0); keybd_event(Ord('V'),0,0,0); keybd_event(Ord('V'),0,KEYEVENTF_KEYUP,0); keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); // クリップボードをクリア ClipBoard.Clear; // これを入れるとうまくいかない やはり、「元に戻す」は自作しないといけないのでしょうか? 環境は、Delphi5+WindowsXPです。 何か良い方法があれば、よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.