社会人&学生におすすめする色彩検定の勉強術

いつもお世話になっております。
下記のコードは
557766の名前のフォルダがない場合
ans = MsgBox("作成しますか", vbOKCancel, test)

1.すでにフォルダが存在したら 終了

2.フォルダが存在したかったら
作成しますかと尋ねて
 OKなら 作成する
 Cancelなら 終了する

としたいのですが、
作成するのは成功しました。

他はエラーになります。

わかる方おしえてくれませんでしょうか

Sub test1()
Dim filePath As String
Dim Fso As Object

filePath = "C:\Users\user\OneDrive\デスクトップ\移動先\557766"

Set Fso = CreateObject("Scripting.FileSystemObject")


If Fso.folderExists(filePath) = False Then

ans = MsgBox("作成しますか", vbOKCancel, test)
If ans = vbOK Then
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")

wsh.popup "実行中", 1, , vbInformation
Fso.createfolder filePath
Else
wsh.popup "キャンセルされました。", 1, , vbInformation
Exit Sub
Else
wsh.popup "既に存在します", 1, , vbInformation
End If

Set Fso = Nothing
End Sub

質問者からの補足コメント

  • うーん・・・

    いつもお世話になっております。
     >wsh.popup "既に存在します", 1, , vbInformation
    のように指定しているので「オブジェクトが存在しない」
    というエラーになっているのではありませんか?
    オブジェクトが存在しないということは
    変数の宣言するのですか

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/03/02 22:24
  • うーん・・・

    Dim wsh2 As Object
    Set wsh2 = CreateObject("WScript.Shell")
    wsh2.popup "既に存在します", 1, , vbInformation
    これでうまくいきました。
    これであってますでしょか

      補足日時:2022/03/02 22:26
教えて!goo グレード

A 回答 (3件)

補足を見て。



あっているかどうかより、無駄に変数を増やす必要はないと思いますけど?
    • good
    • 1
この回答へのお礼

ありがとうございました。

お礼日時:2022/03/04 19:17

If Fso.folderExists(filePath) = False Then



ans = MsgBox("作成しますか", vbOKCancel, test)

Dim wsh As Object '★
Set wsh = CreateObject("WScript.Shell") '★

If ans = vbOK Then

宣言とSetステートメントの位置が悪いのでは?
最初に行なっても良いんでしょうけどね。
質問文だとYESの時以外は宣言されてない状態で使うようになってますよね?
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/03/04 19:16

こんばんは



>他はエラーになります。
MsgBoxでOKを押した時だけ、
 >Set wsh = CreateObject("WScript.Shell")
としてオブジェクトを生成していますが、それ以外では生成していませんよね?

それにも関わらず、
 >wsh.popup "既に存在します", 1, , vbInformation
のように指定しているので「オブジェクトが存在しない」というエラーになっているのではありませんか?
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/03/04 19:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング