
Excelファイルのシートをラインで書出しコードを作成しましたが
シート名がファイル名になってしまいます。
シート名「申請data」のデータを「申請data」のファイルに変えたいのですが
うまくいきません。
このコード下記のサイトをから作成しました。
https://excel.kuuneruch.com/make-csv/
Public Sub CSV書出し()
Dim shtData As Worksheet
Dim kugiri As String
Dim kukuri As String
Dim filePath As String
Dim lastRow As Long
Dim lastCol As Long
Dim varData As Variant
Dim i As Long
Dim j As Integer
Dim line As String
Dim MyPath As String, 事業場 As String
Dim 氏名 As Variant
Dim ChangeName As String
事業場 = Sheets("従業員情報").Range("B2").Value
氏名 = Sheets("従業員情報").Range("D2").Value
'保存先を指定
' MyPath = kanriALL & "\申請data" & "\" & 事業場
If 事業場 = "此花" Then
事業場 = "6_此花"
ElseIf 事業場 = "大和" Then
事業場 = "5_大和"
ElseIf 事業場 = "原町" Then
事業場 = "4_原町"
ElseIf 事業場 = "中島" Then
事業場 = "3_中島"
ElseIf 事業場 = "佃" Then
事業場 = "2_佃"
ElseIf 事業場 = "本社" Then
事業場 = "1_本社"
End If
Dim SPath, FileName, backupFilePath
Dim ws As Workbook
SPath = kanri & "\" & "2_勤怠管理者" & "\" & 事業場 & "\"
FileName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
'ファイルのフルパスを指定します
If Dir(SPath, vbDirectory) = "" Then 'BACKUP用フォルダーがあるか?
MkDir SPath 'BACKUP用フォルダーを作成します。
End If
'②シートを変数に格納する
Set shtData = ThisWorkbook.Sheets("申請data")
kugiri = ","
kukuri = " "
'⑤CSVファイルパスを変数に格納する
filePath = SPath & FileName & ".csv"
'⑥「データ」シートの最終行を取得する
lastRow = shtData.Cells(shtData.Rows.Count, 1).End(xlUp).Row
'⑦「データ」シートの最終列を取得する
lastCol = shtData.Cells(1, shtData.Columns.Count).End(xlToLeft).Column
'⑧「データ」シートに入力されているデータを配列に格納する
varData = shtData.Range(shtData.Cells(1, 1), shtData.Cells(lastRow, lastCol))
'⑨作成するファイルを開く
Open filePath For Output As #1
'⑩CSVデータを書き込みする
For i = 1 To lastRow
line = ""
For j = 1 To lastCol
line = line & kukuri & varData(i, j) & kukuri
If j <> lastCol Then
line = line & kugiri
End If
Next
Print #1, line
Next
'⑪作成するファイルを閉じる
Close #1
MsgBox "事業場別に管理者使用データ書出し完了"
End Sub
宜しくお願い致します。
No.3
- 回答日時:
FileName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
と指定していますから、エクセルのファイル名になります。
FileName=”申請データ”
とすれば 申請データ.csvというファイルで作られます。
No.2
- 回答日時:
csvファイルは複数のシートを保存することはできませんから、
FileName に "申請data" を入れればいいのではないでしょうか。
filePath = SPath & "申請data.csv"
または
FileName = ActiveSheet.Name
とか。
No.1
- 回答日時:
どゆこと?
CSVファイルのシート名を、ファイル名以外に変えたいってこと?
今、どうなっていて、で、どうしたいの?
※ちなみに、CSVファイルのシート名は変更できないはずだけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
エクセルVBA→シート名でCSV出力する際、シートの文字列はそのままで、CSVでは文字を置き換えて出
Visual Basic(VBA)
-
【Excel】 csvの作成時、空白セルにもカンマ
Excel(エクセル)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
Offsetで可視セルだけを移動したい。
Excel(エクセル)
-
6
フォルダ内の全ブックのシート名を変更したいです。
Excel(エクセル)
-
7
開発タブのデザインモードがグレーアウトして選択できないのですが、どうすればよいのでしょうか。Exce
Excel(エクセル)
-
8
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
9
VBAでcsvファイルもシートもあるのに「インデックスが有効範囲にありません」と表示される2
Visual Basic(VBA)
-
10
【Excel】[Expression.Error] キーがテーブルのどの行とも一致しませんの解決法?
Excel(エクセル)
-
11
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA コードが同じでも...
-
JavaでCSVファイルを高速に読む...
-
データが消失してしまう
-
VBAでCSVファイルを途中行まで...
-
5万件対5万件のデータを高速...
-
CSVが可変長の場合の検索方法
-
MATLAB グローバル変数の宣言
-
ReadLineでの読み出し行を指定する
-
lockについて
-
perlであるcsvファイルのキーワ...
-
perlのreadコマンドで変数に読...
-
VBAで巨大なファイルの途中から...
-
perlでWin32::APIを使用してDLL...
-
drtファイルはどうしたら開...
-
csvファイル(表計算的な処理)
-
perlでWMV形式のファイルをダウ...
-
batファイルでrenameができませ...
-
<>の意味が分かりません
-
MATLABのm-fileについて
-
1行がやたら長いテキストをバッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルを途中行まで...
-
MATLAB グローバル変数の宣言
-
openした後、closeしないでプロ...
-
ExcelをCSV書き出す場合のシー...
-
ReadLineでの読み出し行を指定する
-
VB6.0でDB接続する際に切断時の...
-
Perlの変数に文字数制限(容量...
-
JavaでCSVファイルを高速に読む...
-
VBAで巨大なファイルの途中から...
-
C言語でのファイルのデータ更...
-
C#でCSVファイルを逐一更新したい
-
perl内でPHPを動かす?
-
CSVファイルの内容を編集する方...
-
指定行データの取得
-
CSV出力に関して
-
拡張子 ”log” と ” dat” の違い
-
open( ) の読み込み量
-
ファイル内の日付から1週間前...
-
perlについて、教えてください。
おすすめ情報
現状のシート名はファイル名になっています。
CSVのシート名は変更出来ないのですね。
知りませんでした。
書出しシート名と同じシート名にしたいのです。
ShowMeHowさん
ファイル名はこのままで良いのですが、シート名を別の名前にしたいのですが・・・。
無理でしょうか?
くんこばさん
いつも有難う御座います。
CSVファイルのシート名はファイル名で無いとダメなのですか?
ファイル名とシート名を別名にしたいのですが・・・。