タイトル : Re^4: DataGridViewのデータをEXCELファイルにコピー&ペーストする際 投稿日 : 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からのキーイベントでのコピーは、スリープなどを使わなければ無理であるという記事をみたのですが、 もしそうだとしても回避方法など無いものでしょうか。 毎度のこと申し訳ありません。 ソースの意図等相違ありましたら、ご指摘頂ければ幸いです。 |