2016-09-15 19 views
0

私は画像をuserform内の画像コントロールに読み込んでいます。私は、ユーザーフォームの画像コントロールから画像をコピーし、スプレッドシートに貼り付けたいと思います。私はスプレッドシート内にOLEObjectを作成し、その方法で画像を移動する方法を見つけましたhere、しかし、私は複数のスプレッドシートを作成しています。画像をuserformからスプレッドシートにコピー

私は、VBAエディタ、ユーザーフォーム、画像コントロール、およびマウスを使用して、ピクチャプロパティの(ビットマップ)を選択してコピーすると、画像をスプレッドシートに貼り付けることができます。

マクロレコーダーを使って同じコードを実行すると、コードには当然選択と貼り付けのメソッドしか含まれません。そして、もし私がコード内で同じ画像プロパティを参照すると、私が戻ってくるのはハンドルです。

私は徹底的に検索しましたが、徹底的に考えています。プログラムでVBAでハンドルをつかんで貼り付ける手段が見つかりません。私はVBAについてはかなり新しく、APIレベルの作業は私の現在の能力をはるかに超えています。

+0

絵が最初の場所でイメージコントロールに入るんどのように? –

+0

共有できないサンプルコードがありますか?ユーザーフォームのイメージコントロール名とターゲットワークシートセルを表示するSomehting? – dbmitch

+0

@ Tim Williams、画像は手動でユーザーフォームに読み込まれます。画像は必要に応じて変更できるので、フォームはネットワークに格納された画像へのパスを書き込むのではなく、ローカルリソースです。 – pondersome

答えて

0

あなたはそこから一時ファイルや負荷にエクスポートすることができます。

Private Sub UserForm_Activate() 

    TransferToSheet Me.Image1, Sheet1 

End Sub 

Private Sub TransferToSheet(picControl, sht As Worksheet) 
    Const TemporaryFolder = 2 
    Dim fso, p 
    Set fso = CreateObject("scripting.filesystemobject") 
    p = fso.GetSpecialFolder(TemporaryFolder).Path & "\" & fso.gettempname 
    SavePicture picControl.Picture, p 
    sht.Pictures.Insert p 
    fso.deletefile p 
End Sub 
+0

すごい!どうもありがとうございます。これは完全に動作します! – pondersome

関連する問題