|
こんにちは。かみちゃん です。
> 1 現在使用している直線の番号(直線96であれば96のこと)がわかる方法。
図形をひとつだけ選択して下記マクロを実行してみてください。
もっといい方法があるかわかりませんが・・・
Sub Macro1()
If VarType(Selection) = vbObject Then
MsgBox "名前は " & Selection.Name & vbCrLf & _
"番号は " & Replace(Selection.Name, TypeName(Selection) & " ", "")
Else
MsgBox "オブジェクトが選択されていません", vbCritical
End If
End Sub
> 2 直線を引くとき、番号が1(または0)から始まるように、リセットする方法。
> 3 または、もっと良い方法
すでにichinoseさんからもコメントがついていますが別解ということで。
'選択したセル範囲内の特定の種類の図形だけを削除する
'参考URL
' http://park11.wakwak.com/~miko/Excel_Note/17-03_zukei.htm#17-03-47
Sub Macro1()
Dim myShp As Shape
Dim myR As Range, SR As Range
On Error Resume Next
Set myR = Selection
' 特定のセル範囲であれば次のように記述
' Set myR = Range("A1:D50")
If Err.Number <> 0 Then Exit Sub
On Error GoTo 0
For Each myShp In ActiveSheet.Shapes
Set SR = Range(myShp.TopLeftCell, myShp.BottomRightCell)
If Not Intersect(SR, myR) Is Nothing Then
'選択範囲内に「完全に含まれる」場合は削除する場合は次のIfステートメントで制御
'選択範囲内と「部分的に重なる」場合も削除する場合は次のIfステートメントは不要
If Intersect(SR, myR).Cells.Count = SR.Cells.Count Then
'直線(msoLine)の場合削除する
If myShp.Type = msoLine Then myShp.Delete
End If
End If
Set SR = Nothing
Next
Set myR = Nothing
End Sub
|
|