• ベストアンサー

 

   分析素材というフォルダが存在すればそのままで、存在しなければ  分析素材というフォルダを作成したいのですが、下記のようにしても実行できません。  エラーで型が違うと出てしまいます。  何が違うのでしょうか?  If ThisWorkbook.Path & "\" & "分析資料" Is Nothing Then MkDir Mid(ThisWorkbook.Path, 1, Len(ThisWorkbook.Path)) & "\" & "分析資料" End If  

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.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

maki06
質問者

お礼

Is NothingはエクセルVBAの中で使用していたので使ってみたのですが  これは文字列には使用できないのですね。。  とりあえず変数に置き換え書き直したら実行できました。  ありがとうございました。

その他の回答 (1)

noname#245936
noname#245936
回答No.1

Is Nothingが変です。 If Dir(ThisWorkbook.Path & "\" & "分析資料") = "" Then

maki06
質問者

補足

回答ありがとうございます。 しかし実行できませんでした。

関連するQ&A

専門家に質問してみよう