2018年2月26日月曜日

特定のシートからCSVを作成するコード

こんにちは、Shigeです。
今回は特定のシートからcsv形式でエクスポートするコードをのっけます。

  1. Sub CSVmake()
  2. Dim FileN As String, strfind As String, newBook As String, ThisUser As String, PathName As String
  3. Dim Re As Long, loCheck As Long
  4. Dim FSO As Object
  5. Set FSO = CreateObject("Scripting.FileSystemObject")

  6. Set shKihon = Worksheets("基本情報")
  7. Set ShAc = ActiveSheet
  8. 'csvシートがあるかチェック 無ければ作成
  9. Call Sh_check_csv
  10. Set Shcsv = Worksheets("csv")
  11. '---------------------
  12. Shcsv.Cells.ClearContents   'csvシートのデータクリア

  13. Call CSVchange(loCheck)

  14. newBook = shKihon.Cells(1, 2).Value

  15. If Dir("C:\csv_date", vbDirectory) = "" Then FSO.CreateFolder "C:\csv_date"
  16. PathName = "C:\csv_date"
  17. ChDir (PathName)
  18.    
  19. FileN = Application.GetSaveAsFilename(InitialFileName:=newBook, _
  20.                            filefilter:="CSV ファイル (*.csv), *.csv")
  21. If FileN <> "False" Then
  22.     If Dir(FileN) <> "" Then
  23.         Re = MsgBox(FileN & String(2, vbLf) & _
  24.                           "は、存在します。 上書きしますか?", vbYesNo)
  25.         If Re = vbYes Then Kill FileN Else Exit Sub
  26.     End If
  27.     Shcsv.Copy
  28.     ActiveWorkbook.SaveAs Filename:=FileN, FileFormat:=xlCSV
  29.     ActiveWorkbook.Close Savechanges:=False
  30.     Shcsv.Visible = False
  31.     If loCheck = 0 Then
  32.         MsgBox "CSVファイルで書き出しました。", vbInformation
  33.     Else
  34.         MsgBox "CSVファイルで書き出しました。" & _
  35.             vbCrLf & loCheck & "件、仕訳が訂正されています。", vbInformation
  36.     End If
  37. End If
  38. Set FSO = Nothing
  39. ' シート保護を設定(UIのみ)
  40. ActiveSheet.Protect UserInterfaceOnly:=True
  41. End Sub
長いうえに他のコードを走らせてる部分があるので、全部解説するのが面倒だからコード書くだけにしようかな。
前回の「弥生会計形式でエクスポートするコード」と合わせると出来上がってくると思います。
まぁ、流れだけでも書き捨てしておきます。

csv用シートがあるかチェック→出納帳のデータ部分をcsv用シートに書出し+訂正仕訳があるかチェック(loCheck)→Cドライブ直下にフォルダを追加してそこにcsvを作成→確認メッセージ

とりあえず、一つ一つはそれほどのことでもないけど、組み合わせると全部解説するのは長文になりそうですね(;・∀・)
コードをまとめ終わったら、そこら辺も詳しくしていけたらと思ってます。
では、また。

0 件のコメント:

コメントを投稿

ブックの全シートをまとめるコード

こんにちは、Shigeです。 今回は、ブックに複数あるシートのデータを「まとめ」のシートにコピペするコードです。 Sub Matome()   Dim i As Integer   Dim lRow As Long, lCol As Long, lRow2 As Lo...