- ベストアンサー
エクセルVBA ワークシート検索について?
エクセルで所定のワークシートにデーターを自動で記入させようと しています。 所定のワークシートが在るか無いか判断して、存在すれば、 VBAは記入動作を開始し、無ければ、VBAを終了させる。 こういった動きを作ろうとしていますが、存在しない場合に VBAを抜ける所が上手く作動しません。書き方に問題があると 思うのですが、どのような書き方がいいのか教えていただけない でしょうか。 コードの方は以下に示します Set ThisYearSheet1 = ActiveWorkbook.Worksheets("本年度基データ") With ThisYearSheet1 myYear = Mid(.Cells(1, 1), 3, 4) myMonth = Mid(.Cells(1, 1), 8, 2) End With mySheetName = CStr(myYear) & CStr(Format(myMonth, "00"))<<<<シートの名前仮取得 myMsg = "「" & mySheetName & "」" & vbCrLf & _ "のシートデーターを更新します。" & vbCrLf & _ "よろしいですか?" myButt = MsgBox(myMsg, vbYesNo) Select Case myButt Case vbYes For Each mySheet In Worksheets<<<<仮取得したシート名を探す If mySheet.Name = mySheetName Then Set ThisYearSheet2=ActiveWorkbook.Worksheets(mySheetName)<<<<仮取得したシート名が存在すれば、オブジェクトとしてセット Exit For Next mySheet Case vbNo Exit Sub End Select If ThisYearSheet2 = Nothing Then<<<エラー箇所(無ければ、VBAを終了させたい) MsgBox "" Exit Sub End If エラー箇所では、nothingの使い方が不正ですと出るのですが、、、 どなたか宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- cafe_au_lait
- ベストアンサー率51% (143/276)
お礼
ありがとうございます~ うごきました~。 指摘の変数なんですけど、自分も後でコード見直したりすると この変数必要ないとか思ってしまうこと良くあるんですよ。 作るときに上手く整理できていないからなんでしょうね。 まだ、VBA勉強し始めたばかりなので、スマートにコードが かけるよう頑張っていきます。 ありがとうございます。