|
>このコードでは、コピーしたシートがあると、コピー操作をしてもエラーがでないと
>言う処理のことですね。間違っていますでしょうか。
エラーによって処理を分けるコードとは異なります。
エラートラップするときは、 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 = シート名
を処理することになります。
|
|