|
▼シスアド さん:
おはようございます。
>下記のように、セルBK2に0.1.2.3のいづれかが入力された場合Caseによって条件があるマクロを作成しました。
>これを同じSheetのリストという名前のセルBK2ではなく、データという名前のSheetのセルO2に値が入力されており、それを使用し、リストという名前に出力したいのですがどうしたらよいでしょうか?
>補足をお願いします。
>sub()
>a=0
>Dim c As Range
>
>For Each c ln Range("BK2")
>Select Case c.Value
>
>Case a
> ActiveSheets.Shapes.AddShape(msoShapeOval,159.75,29.25,15.75).Select
> Selection.ShapeRange.Fill.Visible=msoFalse
>Case 1
>ActiveSheets.Shapes.AddShape(msoShapeOval,249.75,157.25,15.75).Select
> Selection.ShapeRange.Fill.Visible=msoFalse
>Case 2
>ActiveSheets.Shapes.AddShape(msoShapeOval,343.75,29.25,15.75).Select
> Selection.ShapeRange.Fill.Visible=msoFalse
>Case 3
>ActiveSheets.Shapes.AddShape(msoShapeOval,432.75,29.25,15.75).Select
> Selection.ShapeRange.Fill.Visible=msoFalse
>Case Else
>MsgBox "データが空欄です"
>End Select
>Next
>End Sub
↑が変更前のコードということですが、これ正常に作動しませんよね!!
何故? という箇所がありますが、深い理由があるのだろうと
解釈し、そのまま残しました。
Sub sample()
Dim a As Long
Dim ok As Boolean
Dim o_left As Double
Dim o_top As Double
Dim c As Range
Set c = Worksheets("データ").Range("o2")
a = 0
ok = True
Select Case c.Value
Case ""
MsgBox "データが空欄です"
ok = False
Case a
o_left = 159.75
o_top = 29.25
Case 1
o_left = 249.75
o_top = 157.25
Case 2
o_left = 343.75
o_top = 29.25
Case 3
o_left = 432.75
o_top = 29.25
Case Else
MsgBox "データが無効です"
ok = False
End Select
If ok = True Then
With Worksheets("リスト").Shapes. _
AddShape(msoShapeOval, o_left, o_top, 15.75, 15.75)
.Parent.Select
.Fill.Visible = msoFalse
.Select
End With
End If
End Sub
|
|