2016-12-19 24 views
0

私はワークシートにフェードアウトしたい画像があります。私はこれがないかもしれませんと信じて私をリードオブジェクトサポートされていないエラーメッセージが表示されます現時点でvba制御画像の透明化は可能ですか?

Set myPicture = ActiveSheet.Pictures.Insert(pic) 

With myPicture 
.Transparency = 0.5 
Application.Wait (Now + TimeValue("00:00:01")) 
.Transparency = 0.3 
Application.Wait (Now + TimeValue("00:00:01")) 
.Transparency = 0.1 
Application.Wait (Now + TimeValue("00:00:01")) 
.Delete 
End With 

:私はそうのようなイメージのために透明度の異なる段階を設定する方法を見つけるために抱き合わせています。これを行うために 可能。

可能であれば、どうすればいいですか? (私はDoEventsを試してみましたまで)のおかげ

+0

SetLayeredWindowAttributes APIを使用して、フォームの透明度を設定できます。しかし、それはhWndを必要とするので、画像では可能ではないと私は考えています。 –

+0

'.Picture.Insert'メソッドの代わりに' .Shapes.AddPicture'メソッドを使うと同じエラーが出ますか? –

答えて

0

それはそれは私がシートの上に置くオートシェイプ上で動作

Sub FadeInFadeOut() 
    Dim r As Range 
    Set r = Selection 
    ActiveSheet.Shapes("Rectangle 1").Select 
    Selection.ShapeRange.Fill.Transparency = 1 

    For i = 1 To 100 
     Selection.ShapeRange.Fill.Transparency = 1 - i/100 
     DoEvents 
    Next 

    For i = 1 To 100 
     Selection.ShapeRange.Fill.Transparency = i/100 
     DoEvents 
    Next 

    r.Select 
End Sub 

これはを動作させるために私に長い時間がかかりました。

注:

あなたは、フェードイン/フェードアウトの速度を調整するを調整する必要があります。

EDIT#1:

Sub PicturePlacer() 
    Dim sh As Shape 

    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 312.75, 176.25, 266.25, 129.75). _ 
     Select 

    Selection.Name = "Sargon" 

    Application.CommandBars("AutoShapes").Visible = False 
    Range("G4").Select 
    ActiveCell.FormulaR1C1 = "123" 
    Range("G5").Select 
    ActiveSheet.Shapes("Sargon").Select 
    Selection.ShapeRange.Fill.Transparency = 0.56 
    Selection.ShapeRange.Line.Weight = 0.75 
    Selection.ShapeRange.Line.DashStyle = msoLineSolid 
    Selection.ShapeRange.Line.Style = msoLineSingle 
    Selection.ShapeRange.Line.Transparency = 0# 
    Selection.ShapeRange.Line.Visible = msoTrue 
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 64 
    Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255) 
    Selection.ShapeRange.Fill.Visible = msoTrue 
    Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255) 
    Selection.ShapeRange.Fill.BackColor.RGB = RGB(255, 255, 255) 
    Selection.ShapeRange.Fill.UserPicture "C:\Users\garys\Pictures\babies.jpeg" 
End Sub 

に注意:ここ

は、画像とシートにオートシェイプをドロップし、それを充填する(レコーダーに基づく)いくつかのジャンクコードありますShapeに名前を付け、そのShapeを参照するすべてのコードでその名前を使用します。

+0

これに感謝しますが、これはイメージのために働くことはありませんか? –

+0

イメージの代わりにシェイプを使用する場合、シェイプに背景イメージを追加するにはどうしたらいいですか? –

+1

@ Bing.Wong ** YES ** - 後でチェックしてください..... –

関連する問題