- ベストアンサー
Excelで任意のセルを指定する方法
- Excel2003でセルの上を「---」で覆うマクロを作成しました。任意の作成したいセルを「---」で覆うようにするためにはどのように改造すればよいでしょうか?
- Excel2003でセルの上を「---」で覆うマクロを作成しましたが、現在はセル「K2」に作成されます。任意のセルを「---」で覆うようにするにはどのように変更すればよいですか?
- Excel2003でセルの上を「---」で覆うマクロを作成しましたが、指定されたセル「K2」以外のセルを「---」で覆う方法はありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
元のコードは、単なる記録マクロのようですね。 >Selection.ShapeRange.Fill.Visible = msoFalse > 'Selection.ShapeRange.Fill.Solid これって、 > 透明なセルを一つ作るマクロ ではなく、[透明なほ=塗りつぶしをしないオートシェイプを作る]という意味のようです。 >Excel2003でセルの上を「---」で覆うマクロを作成しました。 『「---」で覆う』というのは、囲うという意味ですか? それとも、「---」で埋め尽くすということでしょうか。 Selection.Characters.Text = "---" って、単にテキストボックスに、文字を入れているだけことですが、意味が良く分かりません。 Selection.ShapeRange.Line.Visible = msoFalse としているのですから、Lineそのものは、見えません。 .ShapeRange.Line.DashStyle = msoLineSolid では、「---」は、点線(ドット)ではないようですね。 マクロよりも、日本語解読のほうが遥かに難しいです。 '//標準モジュール Sub Test1() Dim obj As Shape If TypeName(Selection) <> "Range" Then MsgBox "セルの上を範囲を囲ってください。", 48: Exit Sub With Selection Set obj = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, .Left, .Top, .Width, .Height) End With With obj.DrawingObject .ShapeRange.Fill.Visible = msoFalse .ShapeRange.Fill.Transparency = 0# .ShapeRange.Line.Weight = 1# .ShapeRange.Line.DashStyle = msoLineSolid 'msoLineDash .ShapeRange.Line.Style = msoLineSingle .ShapeRange.Line.Transparency = 0# .ShapeRange.Line.Visible = msoTrue End With obj.DrawingObject.TopLeftCell.Select Set obj = Nothing End Sub
その他の回答 (1)
- jcctaira
- ベストアンサー率58% (119/204)
例えばセル「B2」にセットしたければ、以下のようにShapeの位置を設定すれば良いです。 With Range("B2") ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ .Left, .Top, .Width, .Height).Select End With
お礼
回答ありがとうございます。 希望のセルに透明なダイアローグボックスを貼り付けたいので ちょっとこの方法では面倒です。