いつもお世話になっております
遣りたいことは
特定のシートを別々に保存
フォルダも作成して特定のシート名で作成する
Fn = Worksheets(ssobj) 個々の部分でエラーになります。
わかる方教えてくれませんでしょぅか
Sub dds()
Dim wsh As Object
Dim fso As Object
Dim ssobj As Worksheet
Dim sobj As String
Dim ary
Dim Fn As String
Set fso = CreateObject("Scripting.FileSystemObject")
ary = Array("A001", "Sheet2")
For Each ssobj In Worksheets(ary)
ssobj.Copy
Application.DisplayAlerts = False
Fn = Worksheets(ssobj)
If Not (fso.FolderExists(Fn)) Then
ActiveWorkbook.Fn Filename:= _
fso.Buildpath(foldername, _
fso.getbasename(Fn))
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
Next
Set fso = Nothing
End Sub
No.2ベストアンサー
- 回答日時:
こういうことでしょうか。
あなたのマクロを修正してみました。
Option Explicit
Sub dds()
Dim wsh As Object
Dim fso As Object
Dim ssobj As Worksheet
Dim sobj As String
Dim ary
Dim Fn As String
Dim FolderName As String
Dim newWB As Workbook
Set fso = CreateObject("Scripting.FileSystemObject")
ary = Array("A001", "Sheet2")
For Each ssobj In Worksheets(ary)
Fn = ssobj.name
FolderName = ThisWorkbook.Path & "\" & Fn
If Not (fso.FolderExists(FolderName)) Then
Application.DisplayAlerts = False
fso.createfolder (FolderName)
Set newWB = Workbooks.Add(xlWBATWorksheet)
ssobj.Copy before:=newWB.Worksheets(1)
newWB.Worksheets(2).Delete
newWB.SaveAs (FolderName & "\" & Fn)
newWB.Close
Application.DisplayAlerts = True
End If
Next
Set fso = Nothing
End Sub
No.3
- 回答日時:
こんにちは
>Fn = Worksheets(ssobj) 個々の部分でエラーになります。
「型が一致しません」というエラーではありませんか?
ミスが2つ含まれていると思われます。
ssobjはWorksheetオブジェクトのはずなので、
>Worksheets(ssobj)
自体が意味をなさないのと、変数Fnが文字列として宣言されているので、Worksheets(~)を代入しようとすることもおかしいです。
ついでながら、
>fso.FolderExists(Fn)
でフォルダの存在をチェックしようとしているのかもと想像しますけれど、そうであるならFnはフォルダパスのはず。
ですので、Fnには調べたいフォルダパスが代入されていなければならないことになります。
さらには、その後の
>so.Buildpath(foldername, fso.getbasename(Fn))
も意味をなしませんし、foldernameなんて変数がいきなり登場しているのでおかしなことになりそうです。
そもそもが、
>ActiveWorkbook.Fn
なんてメソッドは存在しないので、何をしたいのか不明ですけれど・・・
ご質問文の文章の内容から想像するなら…
・チェックするフォルダパスを作成
・そのフォルダの存在をチェック
存在しない場合はフォルダを作成
・指定パスでブックを保存
のような手順になるものと思いますけれど…
いつもありがとうございます
fso.createfolder (FolderName)が抜けてました。
うまくいかくなと いろいろいじり
わけがわからなくなります。
すみませんです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) リストボックスに表示されたファイルを削除したい 1 2023/04/19 12:02
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
excelのマクロで該当処理できな...
-
VBAで指定シート以外の選択
-
ユーザーフォームに入力したデ...
-
別のシートから値を取得するとき
-
ブック名、シート名を他のモジ...
-
ExcelのVBAのマクロで他のシー...
-
Excelマクロのエラーを解決した...
-
実行時エラー1004「Select メソ...
-
【VBA】特定の文字で改行(次の...
-
XL:BeforeDoubleClickが動かない
-
IFステートの中にWithステート...
-
エクセルのシート名変更で重複...
-
月ごとに作成している日報ファ...
-
エクセル VBA シートのコピー
-
エクセルVBA Ifでシート名が合...
-
マクロを使って、シート印刷完...
-
Access エクセルシート名変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】全シートのセルの...
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
VBAで指定シート以外の選択
-
ブック名、シート名を他のモジ...
-
別のシートから値を取得するとき
-
XL:BeforeDoubleClickが動かない
-
IFステートの中にWithステート...
-
エクセル・マクロ シートの非...
-
【Excel VBA】Worksheets().Act...
-
実行時エラー1004「Select メソ...
-
ExcelVBA:複数の特定のグラフ...
-
エクセルのシート名変更で重複...
-
ExcelのVBAのマクロで他のシー...
-
VBA 存在しないシートを選...
-
シートが保護されている状態で...
-
VBA 検索して一致したセル...
おすすめ情報