コードをインデントをつけて、整理しました。
インデントをキチンと付けることで可読性がよくがよくなります。
何カ所か問題があります。
(1)エラートラップは、必要でしょうか?
必要であるとしたら、エラートラップは必要な場所で、解除しましょう。
解除せずに実行すると、本当のエラーを見逃すことになります。
(2)変数の未定義がいくつかあります。コンパイルエラー
少なウとも、コードを掲示する際は、コンパイルエラーが潰しておいてください。
コード上の問題個所を「★で示しておきます。
図形作成処理をサブルーチンにしました。
Sub 〇で囲む()
Dim Ash As Worksheet
Dim Bsh As Worksheet
Set Ash = ThisWorkbook.Worksheets("設定")
Set Bsh = ThisWorkbook.Worksheets("図形挿入")
Dim zukeiA As Shape
For Each zukeiA In Bsh.Shapes
On Error Resume Next
If zukeiA.TopLeftCell.Address >= Bsh.Cells(1, 1).Address Then
zukeiA.Delete
End If
If Err <> 0 Then
Err.Clear
End If
Next
Dim ARange As Range
Dim keyWord As String
Dim zukeiH As Range
Dim gyoA As Long, i As Long, j As Long, k As Long '★
gyoA = Ash.Cells(Rows.Count, 2).End(xlUp).Row
For i = 4 To gyoA
keyWord = Ash.Cells(i, 2)
For j = 1 To 10
For k = 1 To 10
Set ARange = Range(Cells(j, k), Cells(j, k)) '★シートで修飾しましょう。
Set zukeiH = ARange.Find(keyWord, LookAt:=xlWhole)
If zukeiH.Value = keyWord Then
Select Case Len(keyWord)
Case 1
Call ZUKEI_SAKUSEI(wWIDTH:=15, ZUKEI:=zukeiH, Bsh:=Bsh)
Case 2
Call ZUKEI_SAKUSEI(wWIDTH:=30, ZUKEI:=zukeiH, Bsh:=Bsh)
Case 3
Call ZUKEI_SAKUSEI(wWIDTH:=40, ZUKEI:=zukeiH, Bsh:=Bsh)
Case 4
Call ZUKEI_SAKUSEI(wWIDTH:=50, ZUKEI:=zukeiH, Bsh:=Bsh)
Case 5
Call ZUKEI_SAKUSEI(wWIDTH:=60, ZUKEI:=zukeiH, Bsh:=Bsh)
End Select
End If
Next
Next
Next
End Sub
Private Sub ZUKEI_SAKUSEI(ByVal wWIDTH As Single, ByVal ZUKEI As Range, Bsh As Worksheet)
With Bsh.Shapes.AddShape(msoShapeOval, ZUKEI.Left, ZUKEI.Top, wWIDTH, 15)
.Fill.Visible = msoFalse
.Line.Weight = 1
.Line.ForeColor.RGB = vbBlock
End With
End Sub