| 
    
     |  | >このコードでは、コピーしたシートがあると、コピー操作をしてもエラーがでないと >言う処理のことですね。間違っていますでしょうか。
 
 エラーによって処理を分けるコードとは異なります。
 エラートラップするときは、 On Error〜 の構文を使用します。
 その方法でも出来ますが、エラートラップするまでもなく対応できるので、
 既記のようなコードを書いてみました。
 
 
 >次の部分のコードの意味は、どのように理解したらよいのでしょうか、
 >よろしければ教えていただけませんでしょうか。
 
 >>  For i = 1 To Worksheets.Count
 
 for 〜 next のループ処理の構文は理解されていますか?
 i が 1 から Worksheets.Count(ワークシートの数)だけ変化します。
 
 VBE で F8キーを押して、ステップ実行させると、
 変数の変化が分かるので、処理を理解しやすいと思います。
 ステップ実行は活用した方が良いです。
 
 >>    If Worksheets(i).Name = シート名 Then
 i=1 のとき Worksheets(1).Name 一番左にあるシートの名前が、
 変数(シート名)と同じかどうか判別します。
 = でなければ、 i=2,i=3・・ と順にシート名を変数と比較します。
 
 もし一致したら If 〜 End If 内の処理を実行します。
 つまり
 >>      GoTo コピー処理
 です。
 これは、ラベル (コピー処理:)の行に処理をジャンプさせる構文です。
 なので、
 もし、現在のブックに "AAA抽出" というシート名があるときは、
 コピー処理:の行にジャンプ。
 もし無いときは、
 
 > 'シート追加
 >  Set ws = Worksheets.Add(before:=Worksheets("AAA"))
 
 >  'シート名変更
 >  ws.Name = シート名
 
 を処理することになります。
 
 |  |