
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 の設定の違いがあるのでしょうか? マクロ登録で確認も出来ず、ネットの調べてもわかりませんでした。お力をおかしください。
No.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
確認が遅れてすみません。
とてもわかりやすいご回答を頂きありがとうございます。
おかげさまで解決いたしました。
2007は慣れるまで時間がかかりそうです。
今後とも宜しくお願い致します。
No.1
- 回答日時:
Excel2007の環境がありませんので確認は出来ていませんが
ヘルプを見る限りでは
Transparency プロパティ
指定された塗りつぶしの透明度を示す 0.0 (不透明) ~ 1.0 (透明) の値を設定します。
値の取得および設定が可能です。倍精度浮動小数点数型 (Double) の値を使用します。
と なっていますので
Selection.ShapeRange.Fill.Transparency = 1#
で試されては如何でしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) 複数セルに〇印をつけるマクロ 4 2022/09/07 05:33
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
VLOOKUP関数を使用時、検索する...
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
excelでsin二乗のやり方を教え...
-
Excel 数値の前の「 ' 」を一括...
-
尿検査前日に自慰行為した時の...
-
EXCELで式からグラフを描くには?
-
彼女のことが好きすぎて彼女の...
-
2つの数値のうち、数値が小さい...
-
【Excelで「正弦波」のグラフを...
-
腕を見たら黄色くなってる部分...
-
精液の落とし方を教えてください
-
ある範囲のセルから任意の値を...
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
病院側から早く来てくださいと...
-
Excel 0目標に対して数字があ...
-
EXCELで条件付き書式で空白セル...
-
化合物のモル吸光係数データベ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
尿検査の前日は自慰控えたほう...
-
MIN関数で空白セルを無視したい...
-
小数点以下を繰り上げたものを...
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
Excel 数値の前の「 ' 」を一括...
-
【Excelで「正弦波」のグラフを...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
ある範囲のセルから任意の値を...
おすすめ情報