Excel ワークブックの内容をタブ区切りファイルとして保存する次のコードがあります。
Sub maketxtfile(className As String, rosterFileHandle As String)
Dim i As Long, gradebookContent As String
With Worksheets(className).UsedRange
For i = 1 To .Rows.Count
gradebookContent = gradebookContent & vbCrLf & Join$(Application.Transpose(Application.Transpose(.Rows(i).Value)), vbTab)
Next
End With
Open Replace(ThisWorkbook.FullName, "Fall_2013_2014.xlsm", rosterFileHandle) For Output As #1
Print #1, Mid$(gradebookContent, Len(vbCrLf) + 1)
Close #1
End Sub
問題は、タブ区切りファイルをファイルと同じディレクトリに配置したくないことxlsm
です。ファイルをサブディレクトリに配置したいと思います。絶対パス名を使用して投稿されたソリューションを見てきました。それは私にとって選択肢ではありません。パス名が事前にどうなるかは必ずしもわかりません。
私は次のようなことができると思いました:
Open Replace(ThisWorkbook.FullName, "Fall_2013_2014.xlsm", "rosters/" & rosterFileHandle) For Output As #1
Print #1, Mid$(gradebookContent, Len(vbCrLf) + 1)
Close #1
しかし、これは私にエラーをもたらしました。私はMacで作業していますが、使用してみまし"rosters\"
たが、これは機能していましたが、ファイルはサブディレクトリではなく、\\
パス名に含まれるファイルに配置されました。
相対パス名 を使用してこれを行う方法を示すソリューションをいただければ幸いです。
ちなみに、最初に現在のディレクトリにタブ区切りファイルを作成してから、サブディレクトリに移動してもかまいません。