- ベストアンサー
分析素材というフォルダが存在すればそのままで、存在しなければ 分析素材というフォルダを作成したいのですが、下記のようにしても実行できません。 エラーで型が違うと出てしまいます。 何が違うのでしょうか? If ThisWorkbook.Path & "\" & "分析資料" Is Nothing Then MkDir Mid(ThisWorkbook.Path, 1, Len(ThisWorkbook.Path)) & "\" & "分析資料" End If
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
見た目、ExcelのVBAのようですが、これはVisualBasicの カテゴリにあたります。 掲題のIf文は「文字列 Is Nothig」という聞き方なので、 間違いです。「Is Nothing」はオブジェクト型で、実体が 設定されていないものにしか使えませんし、プログラムの 文字列は探したいパス名を表すもので、フォルダそのもの ではありません。 フォルダの存在を確かめるには幾つかの方法がありますが、 簡単なのはChDirしてエラーになるかどうかを調べるという ものです。以下はサンプルです。 Dim エラーコード As Long Dim フォルダ名 As String エラーの有無 = False フォルダ名 = ThisWorkbook.Path & "\" & "分析資料" On Error Resume Next '★エラーハンドリング開始 ChDir フォルダ名 '★カレントフォルダを変更してみる エラーコード = Err.Number '★エラーコードを記録する On Error GoTo 0 '★エラーハンドリング終了 If エラーコード = vbNormal Then MsgBox "フォルダは既に存在します" Else MkDir フォルダ名 '★フォルダを作成する End If
その他の回答 (1)
Is Nothingが変です。 If Dir(ThisWorkbook.Path & "\" & "分析資料") = "" Then
補足
回答ありがとうございます。 しかし実行できませんでした。
お礼
Is NothingはエクセルVBAの中で使用していたので使ってみたのですが これは文字列には使用できないのですね。。 とりあえず変数に置き換え書き直したら実行できました。 ありがとうございました。