[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/02/09(Wed) 22:43
投稿者名:NM
Eメール:
URL :
タイトル:
ピクチャークリップの画像をエクセルに貼り付ける方法
こんばんは。
いつもお世話になっております。
ピクチャークリップに表示している画像をコピーして、エクセルシートに
貼り付けられるようにしたいです。
考えている方法は、クリップボードに画像を渡して、エクセルシートに
貼り付けるという方法なのですが、上手くいきません。
Clipboard.SetData PictureClip1.clip
や、ピクチャーボックスを経由して
Picture1.Picture = PictureClip1.Clip
Clipboard.SetData Picture1.Picture
といった処理をしています。
まったく見当違いな事をやっているのかもしれませんが、お恥ずかしい話、
どういうところにポイントを置いて考えたらいいか解りません。

アドバイスできる方、どうぞよろしくお願いします。

投稿時間:2005/02/09(Wed) 23:38
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ピクチャークリップの画像をエクセルに貼り付ける方法
ヘルプを見れば使用例が載っていますよ。

Private Sub Command1_Click()
    Dim xlApp    As Excel.Application
    Dim xlBook   As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1)
    
    PictureClip1.ClipX = 0
    PictureClip1.ClipY = 0
    PictureClip1.ClipHeight = PictureClip1.CellHeight
    PictureClip1.ClipWidth = PictureClip1.CellWidth
    Clipboard.Clear
    Clipboard.SetData PictureClip1.Clip
    
    xlApp.Visible = True
    xlSheet.Range("B2").Select
    'セルH2の位置に貼付け
    xlSheet.Paste
    '別途手動でExcelを終了して下さい。
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
End Sub

投稿時間:2005/02/10(Thu) 00:35
投稿者名:NM
Eメール:
URL :
タイトル:
Re^2: ピクチャークリップの画像をエクセルに貼り付ける方法
こんばんは。
いつもお世話になっております。

プログラムでエクセルシートを開いて、クリップボードの内容をペーストする方法ですね。
いま、エクセルのマクロを取って確認できました。ありがとうございます。
ただ、ちょっと疑問に思ったのは、
Clipboard.SetData PictureClip1.ClipしてからxlSheet.Pasteで貼りつくのですが、
Clipboard.SetData PictureClip1.Clip後にエクセルシートを手動で開いて、セルを
選択してからマウスを右クリックして「貼り付け」を指定すると画像が貼りつかないのは
何故でしょうか?
小生のデバック方法が間違っていたら、すいません。

投稿時間:2005/02/10(Thu) 07:21
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: ピクチャークリップの画像をエクセルに貼り付ける方法
> Clipboard.SetData PictureClip1.Clip後にエクセルシートを手動で開いて、セルを
> 選択してからマウスを右クリックして「貼り付け」を指定すると画像が貼りつかないのは
> 何故でしょうか?

別に問題なく貼り付けできますが、勿論ペイント等にも貼り付けできます。

Private Sub Command1_Click()
    PictureClip1.ClipX = 0
    PictureClip1.ClipY = 0
    PictureClip1.ClipHeight = PictureClip1.CellHeight
    PictureClip1.ClipWidth = PictureClip1.CellWidth
    Clipboard.Clear
    Clipboard.SetData PictureClip1.Clip
End Sub

投稿時間:2005/02/10(Thu) 10:52
投稿者名:NM
Eメール:
URL :
タイトル:
解決しました
いつもお世話になっております。
ご指摘の方法で出来ました。
私の間違いでした。すいません。