2009-04-02 12 views
2

セルの内容をクリップボードにコピーしようとしています。どのようにして、セルの内容をクリップボードにコピーしますか

Excel 2007のヘルプファイルで提供されている正確な例を読み、試しました。しかし何らかの理由でDataObjectオブジェクトが無効です。したがって、例:

Dim MyData As DataObject 

Private Sub CommandButton1_Click() 
    Set MyData = New DataObject 

    MyData.SetText TextBox1.Text 
    MyData.PutInClipboard 

    TextBox2.Paste 
End Sub 

Private Sub UserForm_Initialize() 
    TextBox1.Text = "Move this data to a " _ 
     & "DataObject, to the Clipboard, then to " _ 
     & "TextBox2!" 
End Sub 

私のケースでは機能しません。私は今のところ良いものを探してきましたが、なぜDataObjectオブジェクトが利用できないのかの答えを見つけることができません。コンパイルの

Dim MyData As DataObject 

Private Sub Worksheet_Change(ByVal Target As Range) 
    If ActiveCell.Column = 3 Then 
     Set MyData = New DataObject 
     MyData.SetText ActiveCell.Offset(-1, -1).Text 
     MyData.PutInclipboard 
    End If  
End Sub 

エラーは次のとおりです:「ユーザー定義型は定義されていません」と、それは「MyDataというのDataObjectとして、」ラインを強調し

は、ここに私のコードです。

セル内のテキストを単にクリップボードにコピーする別の方法がありますか?

答えて

8

[OK]を、いくつかのこと:

まずあなたは、その後、通じ検索のように感じるだけのプロジェクトにユーザーフォームを追加していない場合は、「Microsoftは2.0オブジェクトライブラリフォーム」への参照を追加する必要がありますそれを直ちに削除すると、参照はそのまま残ります。あなたは...、私はオフセットを変更しますが、あなたが必要なものは何でもそれらを作る私が動作するようになったいくつかのコードを添付しますDataObjectの

を使用することが問題でした

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
Set MyData = New DataObject 
    If ActiveCell.Column = 3 Then 
     MyData.SetText ActiveCell.Offset(-1, 0).Text 
     MyData.PutInClipboard 
    End If 
End Sub 
+0

うんをその参照を必要としています。私はWin7のベータ版を実行していると明らかにFM20.dllがインストールされていません。私はXPマシンに切り替え、参照を追加して、今は期待どおりに動作します。ありがとうcurtisk –

+0

これはExcel 2007/Windows 7で私にとってはうまくいきません。ユーザフォームを追加してもそのライブラリは追加されません。参照にはリストされていませんし、FM20.DLLも私のシステムには表示されませんそれを手動で追加することはできません。 – Gruff

+0

@Gruff FM20.dllのためのc:\ windows \ system32を見てください。それは、Office 2007がインストールされた私の64ビットWin7(SP3) – curtisk

関連する問題