Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


66622 / 76733 ←次へ | 前へ→

【14674】Re:上書き保存について
回答  IROC  - 04/6/4(金) 10:23 -

引用なし
パスワード
   >このコードでは、コピーしたシートがあると、コピー操作をしてもエラーがでないと
>言う処理のことですね。間違っていますでしょうか。

エラーによって処理を分けるコードとは異なります。
エラートラップするときは、 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 = シート名

を処理することになります。
2 hits

【14610】上書き保存について YN61 04/6/3(木) 7:41 質問
【14613】Re:上書き保存について IROC 04/6/3(木) 8:18 回答
【14652】Re:上書き保存について YN61 04/6/3(木) 20:32 お礼
【14674】Re:上書き保存について IROC 04/6/4(金) 10:23 回答
【14691】Re:上書き保存について YN61 04/6/4(金) 22:14 お礼

66622 / 76733 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free