タイトル | : Re^4: DataGridViewのデータをEXCELファイルにコピー&ペーストする際 |
記事No | : 9055 |
投稿日 | : 2009/06/04(Thu) 19:59 |
投稿者 | : tito |
お返事遅くなり大変申し訳ありませんでした。
> GetClipboardContent で取得した DataObject から新しい DataObject へ、 > Text のデータを取得して Text として設定する。 > UnicodeText のデータを取得して UnicodeText として設定する。 > そんな感じでおわかりでしょうか。
ご丁寧にありがとうございました! ご教授頂いた方法で再度ソースを書いてみました。
Dim myDataObject As New DataObject() '最終的にClipBordに代入するDataObject Dim GridDataObject As New DataObject() 'DataGridViewから取得するDataObject
'GetClipboardContentでDataGridViewから取得 GridDataObject.SetData(sender.GetClipboardContent) '
'GridDataObjectからmyDataObjectへ、型を指定して代入 myDataObject.SetData(DataFormats.UnicodeText, True, GridDataObject.GetData(DataFormats.UnicodeText)) myDataObject.SetData(DataFormats.Text, True, GridDataObject.GetData(DataFormats.Text)) myDataObject.SetData(DataFormats.CommaSeparatedValue, True, GridDataObject.GetData(DataFormats.CommaSeparatedValue)) 'myDataObjectをセット Clipboard.SetDataObject(myDataObject)
このソースを用いてコピー処理を行いましたが、結果EXCELに貼り付ける際に、書式がHtmlに自動選択されてしまい、EXCELには表示されませんでした。
原因としてはっきりとした情報では無いのですが、他IT系情報サイトにて、 .NET FlameWorkが、キーイベント後にDataGridViewのセルをコピーしてしまうため、現時点で DataGridViewからのキーイベントでのコピーは、スリープなどを使わなければ無理であるという記事をみたのですが、 もしそうだとしても回避方法など無いものでしょうか。
毎度のこと申し訳ありません。 ソースの意図等相違ありましたら、ご指摘頂ければ幸いです。
|