- ベストアンサー
Excel 2003 マクロでテキストボックスの書式設定
- Excel 2003のマクロを使用して、セルの上に連続して配置するダイアローグボックスの書式設定についてうまくいかない問題が発生しています。
- 特に、テキストボックス内に「---」を中央配置にしたダイアローグボックスをセルに6個コピーする際、塗りつぶし無しの設定が反映されず、白い下地が残ってしまいます。
- マクロ作成時にはテキストボックスの書式設定の塗りつぶし色を「塗りつぶし無し」に設定したのですが、なぜこの問題が発生しているのかわかりません。お知恵を拝借できる方がいらっしゃいましたら、ご教示ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
↓の2行が無ければいいようですよ。 Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.Transparency = 0# 下記ページを参考に、ステップインで、1行ずつ実行すれば分かると思います。 デバッグについて http://members.jcom.home.ne.jp/rex-uchida/vba110.htm
その他の回答 (2)
- xls88
- ベストアンサー率56% (669/1189)
6個のテキストボックスを直接、指定セル(E55:J55)に描いてみます。 Dim i As Integer For i = 0 To 5 With Cells(55, 5 + i) With ActiveSheet.Shapes.AddTextbox _ (msoTextOrientationHorizontal, .left, .Top, .Width, .Height) .Fill.Visible = msoFalse '.Characters.Text = "---" '↓以下Excel2007で動いたコード、旧Excelではダメかも .TextFrame2.TextRange.Text = "---" .TextFrame.HorizontalAlignment = xlHAlignCenter .TextFrame.VerticalAlignment = xlVAlignCenter End With End With Next i
- xls88
- ベストアンサー率56% (669/1189)
問題のコードを提示できないでしょうか。
補足
余分なマクロも有りますが以下の通りです。 Range("E55:J55").Select Selection.ClearContents Range("H55").Select ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 672#, 729#, _ 81#, 13.5).Select Selection.Characters.Text = "" With Selection.Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.Transparency = 0# 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 = msoFalse ActiveSheet.Shapes("Text Box 12").Select Selection.Characters.Text = "---" With Selection.Characters(Start:=1, Length:=3).Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.HorizontalAlignment = xlCenter Range("K55").Select ActiveSheet.Shapes("Text Box 12").Select Selection.Copy Range("I55").Select ActiveSheet.Paste Range("H55").Select ActiveSheet.Paste Range("G55").Select ActiveSheet.Paste Range("F55").Select ActiveSheet.Paste Range("E55").Select ActiveSheet.Paste Range("E56").Select Selection.Copy Range("F56:J56").Select ActiveSheet.Paste Application.CutCopyMode = False Range("E56:J56").Select Selection.Copy Range("E57:E59").Select ActiveSheet.Paste Application.CutCopyMode = False Range("K59").Select End Sub
お礼
ご回答ありがとうございます 実際にやってみて地が透明になりました。 問題が解決しました。