• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 任意のセルを指定する方法)

Excelで任意のセルを指定する方法

このQ&Aのポイント
  • Excel2003でセルの上を「---」で覆うマクロを作成しました。任意の作成したいセルを「---」で覆うようにするためにはどのように改造すればよいでしょうか?
  • Excel2003でセルの上を「---」で覆うマクロを作成しましたが、現在はセル「K2」に作成されます。任意のセルを「---」で覆うようにするにはどのように変更すればよいですか?
  • Excel2003でセルの上を「---」で覆うマクロを作成しましたが、指定されたセル「K2」以外のセルを「---」で覆う方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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)
回答No.1

例えばセル「B2」にセットしたければ、以下のようにShapeの位置を設定すれば良いです。   With Range("B2") ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _   .Left, .Top, .Width, .Height).Select End With

sherman
質問者

お礼

回答ありがとうございます。 希望のセルに透明なダイアローグボックスを貼り付けたいので ちょっとこの方法では面倒です。

関連するQ&A