アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

宜しくお願い致します。

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

  • うーん・・・

    現状のシート名はファイル名になっています。

    CSVのシート名は変更出来ないのですね。
    知りませんでした。

    書出しシート名と同じシート名にしたいのです。

      補足日時:2021/10/12 10:06
  • ShowMeHowさん

    ファイル名はこのままで良いのですが、シート名を別の名前にしたいのですが・・・。
    無理でしょうか?

    No.3の回答に寄せられた補足コメントです。 補足日時:2021/10/12 10:08
  • うーん・・・

    くんこばさん
    いつも有難う御座います。

    CSVファイルのシート名はファイル名で無いとダメなのですか?

    ファイル名とシート名を別名にしたいのですが・・・。

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/10/12 10:11

A 回答 (4件)

CSVファイルはテキストファイルです。


「エクセルで開くことができる」というだけです。

エクセルの機能をすべて使用することはできません。
シートという考え方もないです。
そうしたいなら、エクセルファイルにするしかない。
    • good
    • 0
この回答へのお礼

すみません。
そうですね。
エクセルファイルだと遅くて・・・。
有難う御座います。

お礼日時:2021/10/12 10:15

FileName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)


と指定していますから、エクセルのファイル名になります。
FileName=”申請データ”

とすれば 申請データ.csvというファイルで作られます。
この回答への補足あり
    • good
    • 0

csvファイルは複数のシートを保存することはできませんから、


FileName に "申請data" を入れればいいのではないでしょうか。
filePath = SPath & "申請data.csv"
または
FileName = ActiveSheet.Name
とか。
    • good
    • 0

どゆこと?


CSVファイルのシート名を、ファイル名以外に変えたいってこと?

今、どうなっていて、で、どうしたいの?

※ちなみに、CSVファイルのシート名は変更できないはずだけど。
この回答への補足あり
    • good
    • 0

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

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