Power PointのVBAに関する質問です。


VBAによって、
あるシェイプ(たとえば円)をダブルクリックして、
塗りつぶし効果でグラデーションをかけたいのです。

そのとき、透過性の開始値を0%、終了値を100%にしたいのですが、
それはどの値をいじくればいいのでしょうか?

.Fill.Transparency = 0としてもうまくいかないようなのですが・・・。

回答の条件
  • 1人2回まで
  • 登録:2006/11/22 00:06:10
  • 終了:2006/11/22 18:55:12

ベストアンサー

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012006/11/22 02:53:46

ポイント100pt

透過はオートシェイプ全体に対してしか設定できないので、

オートシェイプをアニメーションさせるといったような別の方法で見せ方を工夫してみてください。

id:lionfan

kn1967様、ありがとうございます!!

できないとわかっただけで大助かりです。

2006/11/22 18:51:18

その他の回答(1件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012006/11/22 02:53:46ここでベストアンサー

ポイント100pt

透過はオートシェイプ全体に対してしか設定できないので、

オートシェイプをアニメーションさせるといったような別の方法で見せ方を工夫してみてください。

id:lionfan

kn1967様、ありがとうございます!!

できないとわかっただけで大助かりです。

2006/11/22 18:51:18
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912006/11/22 09:32:11

ポイント65pt

判らないときには、マクロの記録が役に立つと思います。

グラデーションに関しては、下記のプロパティを使用します。

単色グラデーション:OneColorGradient

2色グラデーション:TwoColorGradient

Sub DrawSample()
    With ActiveWindow.Selection.SlideRange.Shapes
        With .AddShape(msoShapeRectangle, 20#, 20#, 570#, 210#)
            .Fill.TwoColorGradient msoGradientVertical, 1
            .Fill.ForeColor.RGB = RGB(64, 64, 200)
            .Fill.BackColor.RGB = RGB(200, 200, 255)
            .Fill.TwoColorGradient msoGradientHorizontal, 1
        End With
        With .AddShape(msoShapeOval, 50#, 50#, 150#, 150#)
            .Fill.TwoColorGradient msoGradientVertical, 1
            .Fill.ForeColor.RGB = RGB(128, 255, 128)
            .Fill.OneColorGradient msoGradientVertical, 1, 1
        End With
        With .AddShape(msoShapeOval, 220#, 50#, 150#, 150#)
            .Fill.TwoColorGradient msoGradientVertical, 1
            .Fill.ForeColor.RGB = RGB(255, 255, 128)
            .Fill.OneColorGradient msoGradientVertical, 1, 1
        End With
        With .AddShape(msoShapeOval, 390#, 50#, 150#, 150#)
            .Fill.TwoColorGradient msoGradientVertical, 1
            .Fill.ForeColor.RGB = RGB(255, 128, 128)
            .Fill.OneColorGradient msoGradientVertical, 1, 1
        End With
    End With
End Sub

MS の説明にもありますが、OneColorGradientの第2引数が明度を表すので、

白のときは1, 黒のときは0を指定します。

id:lionfan

Mook様、ありがとうございました。きれいな信号機でした。

今回は透過性についてでしたが、グラデーションについても学びたかったので、とても参考になりました。ありがとうございます。

2006/11/22 18:54:44
  • id:Mook
    トンチンカンな回答をしてしまったようで失礼しました。

    全体の透過を1にして、OneColorGradient の 第2引数を 2 にすると透過度にグラディーションがかかり、下の物がグラディエーションがかかるにしたがって、見えなくなるようになるのですが、このことでは無いですか?
    .Fill.Transparency = 1#
    .Fill.Visible = msoTrue
    .Fill.ForeColor.RGB = RGB(255, 0, 0)
    .Fill.OneColorGradient msoGradientVertical, 2, 0.5
    最後の二つのパラメータを変更すると、いろいろと見え方が変わるようです。
    (回答中の第2引数といったのは、第3引数のことでした。)

    手動の操作では、オートシェイプのプロパティで
    「色をクリック」⇒「塗りつぶし効果」を選択
     真ん中あたりに透過性の「開始」と「終了」があります。

    勘違いでしたら、すみません。
  • id:Mook
    追加です。

    上記にいろいろ書きましたが、どうも実際の表示とパラメータの関係が把握できません(あいまいな情報ですみません)。

    一つ追加情報ですが、グラデーションの透過設定はPowerPoint2002以降の機能のようです。
    http://www.presentation.jp/prjp/soft/ppt/topic_deztemp.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません