Excel VBA質問箱 IV

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

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


1128 / 13645 ツリー ←次へ | 前へ→

【76168】シートの有無判定 pon 14/10/8(水) 11:20 質問[未読]
【76170】Re:シートの有無判定 独覚 14/10/8(水) 12:53 回答[未読]
【76171】Re:シートの有無判定 pon 14/10/8(水) 12:58 お礼[未読]

【76168】シートの有無判定
質問  pon  - 14/10/8(水) 11:20 -

引用なし
パスワード
   <1〜5、7〜10日>のシート名を含むファイル内で
下記構文によるシートの有無判定をしていますが
6日判定でも「あり6」のメッセージが。
なにか考え違いしていますか?

------------------------------------------------

Dim xWsheet As Worksheet

For i = 1 To 10

On Error Resume Next
Set xWsheet = Worksheets(i & "日")
On Error GoTo 0

If xWsheet Is Nothing Then ' 該当シートなし
  MsgBox "なし" & i
Else            ' 該当シートあり
  MsgBox "あり" & i
End If

Next

------------------------------------------------

【76170】Re:シートの有無判定
回答  独覚  - 14/10/8(水) 12:53 -

引用なし
パスワード
   ▼pon さん:
  ▼pon さん:
On Error Resume Next
だとエラー時にはその命令を実行しなかったものとなるため前回実行時のシートが
セットされたままの状態となります。

Set xWsheet = Worksheets(i & "日")
の前に
Set xWsheet = Nothing
を入れてみてはどうでしょうか?

【76171】Re:シートの有無判定
お礼  pon  - 14/10/8(水) 12:58 -

引用なし
パスワード
   ▼独覚 さんへ

ありがとうございました。
下記ご指摘のとおりで、改めたら万事解決→万々歳!です
※ダラダラと延べ1日悩んでました

pon


>On Error Resume Next
>だとエラー時にはその命令を実行しなかったものとなるため前回実行時のシートが
> セットされたままの状態となります。
>
>Set xWsheet = Worksheets(i & "日")
>の前に
>Set xWsheet = Nothing
>を入れてみてはどうでしょうか?

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