Excel VBA 質問スレッド №675 (未解決)

図形の透過度の変更

投稿者 : k     投稿日時 : 2022/04/25(Mon) 11:45:49     OS : 未指定     EXCEL : 未指定
下記のように、テキストボックスの色を透明⇔色付きのマクロを
透過度を1⇔ 0で作りたいのですが、
どのように変更すればよいか教えてください。

どうぞよろしくお願いいたします。


Sub クリックした図形テキストボックスの背景色を変更()

Dim Myobj As Variant

    'クリックしたオブジェクトの名称を取得
    Set Myobj = ActiveSheet.Shapes(Application.Caller)

    With ActiveSheet.Shapes.Range(Array(Myobj.Name))

        If .Fill.Visible = msoFalse Then

            'クリックしたオブジェクトが透明だったら、背景色に色付け
            .Fill.Visible = msoTrue
            .Fill.ForeColor.RGB = RGB(0, 176, 240)

        Else
            'クリックしたオブジェクトに色がついていたら、背景色を透明にする
            .Fill.Visible = msoFalse
        End If

    End With

End Sub

スポンサーリンク
[返信 1] Re : 図形の透過度の変更
投稿者 : てらてら     投稿日時 : 2022/04/25(Mon) 15:16:14
こんにちは。
参考にしたページがあれば、記載をお願いします。
https://kirinote.com/excelvba-click-backcolorchange/

透明度をなくすという事は、何かしらの背景色が必要になります。
一般的なシート色の白を背景色にしたいのであれば、

  .Fill.ForeColor.RGB = RGB(255, 255, 255)

と書き換えればいいと思います。

[返信 2] Re : 図形の透過度の変更
投稿者 : k     投稿日時 : 2022/04/25(Mon) 20:01:40
ご指摘ありがとうございます。参考にしたページの記載するよう、以後気をつけます。

クリックするたびに、透明度が1のものは0に、0のものは1になるようにしたいのですが、
はじめの色は何色でも構いません。

どうぞよろしくお願いいたします。

■[返信 1] てらてらさん(2022-04-25 15:16:14)の記事
> こんにちは。
> 参考にしたページがあれば、記載をお願いします。
> https://kirinote.com/excelvba-click-backcolorchange/

> 透明度をなくすという事は、何かしらの背景色が必要になります。
> 一般的なシート色の白を背景色にしたいのであれば、

>   .Fill.ForeColor.RGB = RGB(255, 255, 255)

> と書き換えればいいと思います。


[返信 3] Re : 図形の透過度の変更
投稿者 : てらてら     投稿日時 : 2022/04/26(Tue) 06:48:43
こちらの環境では、クリックするたびに、透明-不透明が繰り返されます。
図形を選択して、右クリックから「マクロの登録」を行っていますか?

[返信 4] Re : 図形の透過度の変更
投稿者 : k     投稿日時 : 2022/04/26(Tue) 08:01:16
てらてら様

ご返信ありがとうございます。

マクロの登録は行っております。

記載しているマクロは、透明⇔不透明がクリックのたびに繰り返されるマクロとして、紹介されていたのですが、透明⇔不透明ではなくて、透明度を1⇔0で動かしたいと思っています。

透明⇔不透明にしてしまうと、透明になった図形の枠線の部分をクリックしないと不透明にすることができず、クリックするのに手間がかかるため、透明度が1であれば、見た目は透明に見えるけれど、図形の面積部分をクリックしても反応するのではないかと考えているからです。透明度は1でなくても、下が透けて見えるぐらいであれば構いません。

Transparencyを使って、色がついている図形の透過性を1にして、透明に見えるようにすることはできたのですが、その後、透過性が1になっている図形をクリックしたときに、透過性を0にすることができず悩んでいます。透過性が0の時は1にして、1の時は0にしたいということです。

どうぞよろしくお願いいたします。

■[返信 3] てらてらさん(2022-04-26 06:48:43)の記事
> こちらの環境では、クリックするたびに、透明-不透明が繰り返されます。
> 図形を選択して、右クリックから「マクロの登録」を行っていますか?

[返信 5] Re : 図形の透過度の変更
投稿者 : おっ     投稿日時 : 2022/04/26(Tue) 09:43:35
何かVisibleに拘っているようですがマクロの記録で簡単に出来ませんか?
↓こういうことだと理解したのですが…私の理解が浅いのかな?

Public Sub 正方形長方形1_Click()
    
    Dim SwitchShape As Shape
    Set SwitchShape = ThisWorkbook.Worksheets(1).Shapes("正方形/長方形 1")
    
    With SwitchShape
        
        If .Fill.Transparency = 0 Then
            .Fill.Transparency = 1
        Else
            .Fill.Transparency = 0
        End If
        
    End With
    
End Sub

[返信 6] Re : 図形の透過度の変更
投稿者 : てらてら     投稿日時 : 2022/04/26(Tue) 19:33:16
Fill.Visibleで塗りつぶしをセット。
Fill.Transparencyで塗りの透明度をセット。

なんですね。私もよく知りませんでした。

[返信 5] の方のサンプルコードでうまくいくようです。
If文を差し替えるだけでも動きますね。

[返信 7] Re : 図形の透過度の変更
投稿者 : k     投稿日時 : 2022/04/27(Wed) 08:54:04
おっさん様、てらてら様

ありがとうございます!できました。
すごい!
こういうことです!ありがとうございます。



■[返信 5] おっさん(2022-04-26 09:43:35)の記事
> 何かVisibleに拘っているようですがマクロの記録で簡単に出来ませんか?
> ↓こういうことだと理解したのですが…私の理解が浅いのかな?

> Public Sub 正方形長方形1_Click()

> Dim SwitchShape As Shape
> Set SwitchShape = ThisWorkbook.Worksheets(1).Shapes("正方形/長方形 1")

> With SwitchShape

> If .Fill.Transparency = 0 Then
> .Fill.Transparency = 1
> Else
> .Fill.Transparency = 0
> End If

> End With

> End Sub


当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2026-04-05 16:23:04 )
タイトルとURLをコピーしました