Excel VBA 質問スレッド №1012 (解決済)

特定のシートを別端末のフォルダにCSV形式で保存する

投稿者 : きり     投稿日時 : 2022/09/24(Sat) 12:13:44     OS : 未指定     EXCEL : Excel 2016
エクセルの複数シートがあるブックで、特定のシートのみ別端末のフォルダにCSV変換させて保存したいです。

下記のコードは、ブック内にあるすべてのワークシートのデータをCSVファイルに変換して、Dドライブの「履歴」フォルダに個々のワークシート名をファイル名にして保存する方法になります。

CSVさせたいシート名が「変換用」
別端末の保存先を ¥¥12.5¥D¥CSV保存先 とするとどの部分をどのように書き替えれば良いのでしょうか。
初心者なりに色々と試してみたのですが、上手くいかず、、
ご教示いただけると幸いです。


Sub SelectSheetSaveCSV()
 Dim strName As String
 Dim Wst As Worksheet

 Application.ScreenUpdating = False
     →画面の更新を停止する処理

 For Each Wst In ActiveWorkbook.Worksheets
     →作業中のブック内全てのワークシートの数だけ繰り返す処理

 StrName =D¥履歴¥  & Wst.Name
     →シート名を取得する処理

 Wst.Copy 
      →ワークシートを新規ブックにコピーする処理

 With ActiveWorkbook
   .SaveAs Filename := strName, FileFormat :=xlCSV
       →コピーした新規ブックをワークシートの名前でCSVファイルとして保存する処理

   .Close SaveChanges := False
       →作成したCSVファイルを閉じる処理

 End With
Next Wst
 
Application.ScreenUdating = True
End Sub


スポンサーリンク
[返信 1] Re : 特定のシートを別端末のフォルダにCSV形式で保存する
投稿者 : さんこう     投稿日時 : 2022/09/24(Sat) 12:50:25
>CSVさせたいシート名が「変換用」
>別端末の保存先を ¥¥12.5¥D¥CSV保存先 
>どの部分をどのように書き替えれば良いのでしょうか。

目的とするシートが決まっているので、ご提示のコードより簡単だと思いますが。

・まず、「すべてのシート」である必要がないので、
↓を消しましょう。
For Each Wst In ・・・
Next Wst

・ファイル名の処理
「StrName =D¥履歴¥ & Wst.Name」

 ↑で「Dドライブの「履歴」フォルダ」に保存できるらしいので、「¥¥12.5¥D¥CSV保存先」になるように修正しましょう。

・シートのコピー

「Wst.Copy」を、目的のシートをコピーするように修正しましょう。

[返信 2] Re : 特定のシートを別端末のフォルダにCSV形式で保存する
投稿者 : jk     投稿日時 : 2022/09/24(Sat) 14:59:24
[[20220924121534]]の処置もわすれずに。

[返信 3] Re : 特定のシートを別端末のフォルダにCSV形式で保存する
投稿者 : きり     投稿日時 : 2022/09/24(Sat) 16:35:50
ご返信ありがとうございます
ご指摘いただいた箇所を私なりに訂正してみたのですが、「実行エラー91 オブジェクト変数またはwithブロック変数が設定されていません」と出力してしまいます。

デバッグを参照すると
strName =“¥¥12.5¥D¥履歴¥ “ & Wst.Name
の部分がエラーが起きているようです。
ファイル名等は間違えないと思うのですが、
原因がお分かりになる方がいらっしゃいましたらご教示いただけると幸いです。

Sub SelectSheetSaveCSV()
 Dim strName As String
 Dim Wst As Worksheet

 Application.ScreenUpdating = False

strName =“¥¥12.5¥D¥履歴¥ “ & Wst.Name
Sheet(“変換用”).Select
Selection.Copy

  With ActiveWorkbook
   .SaveAs Filename := strName, FileFormat := xlCSV
   .Close SaveChanges := False

 End With
 
Application.ScreenUdating = True
End Sub


[返信 4] Re : 特定のシートを別端末のフォルダにCSV形式で保存する
投稿者 : さんこう     投稿日時 : 2022/09/24(Sat) 16:59:35
> strName =“¥¥12.5¥D¥履歴¥ “ & Wst.Name
> の部分がエラーが起きているようです。

変数「Wst」が設定されていないためです。

[返信 5] Re : 特定のシートを別端末のフォルダにCSV形式で保存する
投稿者 : きり     投稿日時 : 2022/09/24(Sat) 17:24:01
■[返信 4] さんこうさん(2022-09-24 16:59:35)

> 変数「Wst」が設定されていないためです。

コードとしてはどこにどのように設定すればいいのでしょうか。
ご質問ばかりで申し訳ございません。

[返信 6] Re : 特定のシートを別端末のフォルダにCSV形式で保存する
投稿者 : さんこう     投稿日時 : 2022/09/24(Sat) 17:49:35
>コードとしてはどこにどのように設定すればいいのでしょうか。

出力したいファイル名が決まっているのでしょうから、
シート名など無視して直接指定すればよろしいかと思います。

[返信 7] Re : 特定のシートを別端末のフォルダにCSV形式で保存する
投稿者 : こうかな     投稿日時 : 2022/09/24(Sat) 18:53:41
Set Wst = Sheets("変換用")
strName = "¥¥12.5¥D¥履歴¥" & Wst.Name
Wst.Copy

[返信 8] Re : 特定のシートを別端末のフォルダにCSV形式で保存する
投稿者 : きり     投稿日時 : 2022/10/01(Sat) 03:47:04
皆様のおかげで、正しく作動することができました
ありがとうございました

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2026-04-04 18:16:04 )
タイトルとURLをコピーしました