tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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からのキーイベントでのコピーは、スリープなどを使わなければ無理であるという記事をみたのですが、
もしそうだとしても回避方法など無いものでしょうか。

毎度のこと申し訳ありません。
ソースの意図等相違ありましたら、ご指摘頂ければ幸いです。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。