- ベストアンサー
Excel2007 VBA テキストボックス設定
Excel2000で作成したVBAコード(テキストボックスの塗りつぶしなし)をExcel2007で実行すると黒く塗りつぶされます。 <実行コード> ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 場所X, 場 所Y, 幅, 高さ).Select Selection.Characters.Text = タイトル1(場所) With Selection.Font .Name = "MS ゴシック" .FontStyle = "標準" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Transparency = 0# ・・・ (1) 上記コード(1)の部分がおかしいのでしょうか?2000では上手く動きます。 2000 と 2007 の設定の違いがあるのでしょうか? マクロ登録で確認も出来ず、ネットの調べてもわかりませんでした。お力をおかしください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ステップ実行してもらったら解ると思いますが >Selection.ShapeRange.Fill.Visible = msoFalse この行で「塗りつぶしなし」の設定になります。 >Selection.ShapeRange.Fill.Transparency = 0# これが不要です。 手作業でも確認できますが、本来、「塗りつぶしなし」と「透明度」の設定は両立しませんね? 試しに2007で : Selection.ShapeRange.Fill.Visible = msoFalse Debug.Print Selection.ShapeRange.Fill.Visible Selection.ShapeRange.Fill.Transparency = 1# Debug.Print Selection.ShapeRange.Fill.Visible : とやってみてください。 Transparencyを設定する事により、Fill.Visible = msoFalseの設定が無効化されてます。 同じように2000で確認すると、msoFalseのままなので、Visible設定が優先のようです。(2003もです) この2007の動きのほうが、ある意味、正しいように思えます。 2000では、必要ないコードを書いていただけ、とも言えるかもしれませんね。 ちなみに、Selectしない書き方をする場合は以下のような感じで。 With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 100, 100, 20) With .TextFrame.Characters With .Font .Name = "MS ゴシック" .FontStyle = "標準" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With .Text = "test" End With .Fill.Visible = msoFalse End With
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
Excel2007の環境がありませんので確認は出来ていませんが ヘルプを見る限りでは Transparency プロパティ 指定された塗りつぶしの透明度を示す 0.0 (不透明) ~ 1.0 (透明) の値を設定します。 値の取得および設定が可能です。倍精度浮動小数点数型 (Double) の値を使用します。 と なっていますので Selection.ShapeRange.Fill.Transparency = 1# で試されては如何でしょうか
お礼
ありがとうございます。 出来ました。 今後も宜しくお願い致します。
お礼
確認が遅れてすみません。 とてもわかりやすいご回答を頂きありがとうございます。 おかげさまで解決いたしました。 2007は慣れるまで時間がかかりそうです。 今後とも宜しくお願い致します。