2017-07-10 34 views
3

イメージをワークシートからユーザーフォームイメージコントロールに実行時コピーする方法はありますか?
イメージが入っているワークシートに図形があります。そして、この形をコピー(Ctrl + C)すると、image1という画像のプロパティでCtrl + vを押して、画像をクリップボードからimage1にペーストして、のデザイン→image1のプロパティに移動します。
実行時にVBAを使用してこれをどのように達成できますか?
私は解決策を探していた私はUserForm1.Image1.Picture = ActiveSheet.Shapes("Picture 1").Picture を試してみましたが、それらの多くの類似ボットどれも、私は通常、いくつかの時間前VBAイメージをワークシートからUserformにコピー

+0

ワークシート上のActiveXイメージコントロールを使用している場合は、フォーム上の画像に直接画像を割り当てることができます。他の画像については、Stephen BullenのPastePictureコードを検索してください。 – Rory

答えて

1

を「型の不一致」を「オブジェクトはこのプロパティまたはメソッドをサポートしていません」または取得
働くん同じ問題。解決策を見つけるが、私は偉大な回避策が見つかりませんでした:

  1. はそれで絵をたっぷりと別のフォームを作成します。名前はuser_form_picsです。

  2. は、その後、あなたのフォームに次のように呼び出します。

Me.Image1.Picture = user_form_pics.img_name11.Picture

これはコンストラクタでそれを使用する方法である:

Private Sub UserForm_Initialize() 
    Me.Image1.Picture = user_form_pics.img_name11.Picture 
End Sub 

それは働きます!今すぐあなたのフォームがuser_form_pics.img_name11

編集の絵を持っている:あなたは絵にチャートを保存する必要がある場合には 、手順は以下の通りです:

Option Explicit 

Public Sub TestMe() 

    Dim chtChart As Chart 
    Dim strPath  As String 

    Set chtChart = ActiveSheet.ChartObjects(1).Chart 
    strPath = ThisWorkbook.Path & "\myChart.bmp" 

    chtChart.Export (strPath) 

    UserForm1.Show vbModeless 
    UserForm1.Image1.Picture = LoadPicture(strPath) 

End Sub 
+0

ありがとう、しかし、私は言及するのを忘れてしまった。私は、ActiveXコントロールや他の画像コントロールからのユーザーフォームのコピーに問題はありません。 問題は、コピーしたい画像が図形であることです。これは、チャートをコピーしてワークシートに貼り付けることで作成されます。私は形の名前と他のすべてを得た。私はこの形などを選択することができます。私はそれから画像をコピーして 'UserForm.Image.Picture'プロパティに貼り付けられません。 – Sphinx

+0

@スフィンクス - この場合、Excelアプリケーションと同じフォルダにチャートの画像をbmpとして保存する必要があります。次に、そのパスとその名前を使用して参照します。または少なくともこれは私がやったことでした... – Vityata

+0

@スフィンクス - 私が言っているものを得るために編集された答えをご覧ください:) – Vityata

関連する問題