2017-07-22 28 views
0

1つのイメージがシート1のマージされたセル範囲S1:V8にあります。
テンプレートから新しいExcelファイルを作成するたびに、この領域に異なる画像を貼り付けます。 このワークブックまたは別のワークブックのこの範囲の画像をコピーしたいのですが「データベース」というシートのセルA6にコピーします。
マクロでこれを行うにはどうすればいいですか? 私はいくつかの例を見つけましたが、それらすべてのために、私たちは絵の名前を知っていなければなりません。 範囲に写真があるかどうか確認できます。もしそうなら、私はfisrtを取るだけです。それを選択し、もう一度他のブックに貼り付けます。 私ができないのは、コピーの範囲内の画像を選択することだけです。 誰でも助けてくれますか?可能であればExcel VBA 1つのブックから別のブックにイメージをコピー

ボーナス機能:
- 私は、セルの寸法にサイズを変更したいのですが、アスペクト比
を維持した後 - 私は96 dpiのにそれを圧縮する後
- このファイルには、いくつかの写真を持っています。誰かがピクチャディメンションを変更した場合、各セルにすべてサイズを変更する方法はありますか? (セルA6には画像があり、セルA7には別の画像があります...、誰かがA20で画像のサイズを変更する可能性があります)

私はクロスポストの概念を知らなかったので私はこのポストは上にもあることを、あなたのすべてを通知しなければならない: http://www.ozgrid.com/forum/showthread.php?t=204928とMrExcelフォーラムでは、私はまだあなたが参照している画像があるかどうかを第二のハイパーリンクそれははっきりしていない

enter image description here

答えて

0

を置くことは許されませんよ"細胞の中"または細胞の上に浮かぶ。私が知る限り、「セル内に」写真を表示する唯一の方法は、セルのコメント内にそれを入れることです(実際には、コメントテキストの背景画像として意図されています)。どちらの場合でも、VBAを使用して操作する鍵は、その参照を取得することです。以下のコードは、アニメーションgifに示すように、セルの領域を最初に選択した場合、上記のいずれかの存在を示します。残念ながら、私が知る限り、VBAを介してコメントに背景画像を追加するだけでよいのです。 enter image description here

Option Explicit 
Sub testForPicturesOrComments() 
Dim p As Picture, r As Range, hasComment As Boolean 
For Each p In ActiveSheet.Pictures 
    MsgBox ("There's a picture called " & p.Name) 
Next p 
For Each r In Selection 
    On Error Resume Next 
    hasComment = r.Comment.Parent.Address = r.Address 
    'Reset Run Time Errors 
    On Error GoTo 0 
    If hasComment Then 
    MsgBox ("There's a comment in " & r.Address _ 
    & " with a shape.ID = " & r.Comment.Shape.ID) 
    hasComment = False 
    End If 
Next r 
End Sub 
+0

こんにちはトニー。画像がマージされた範囲S1:V8を超えています。この範囲は変更されません。 ActiveSheetを変更することはできますか? Activesheet.Range( "S1:V8).Pictures? –

+0

写真が近くにあるセルを探したい場合は、.TopLeftCellや.BottomRightCellのような画像オブジェクトのプロパティを使用できます。たとえば、私のコードの最初のMsgBoxをMsgBoxに置き換えることができます( "&p.Name&" at "&p.TopLeftCell.Address"という画像があります)。 。 –

関連する問題