|
▼超初心者 さん:
おはようございます。
>
>With Worksheets("test1")
> myarray = Application.Transpose(Application.Transpose( _
> .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Value))
> End With
> Print #N, Join(myarray, ",")
>With Worksheets("test2")
> myarray = Application.Transpose(Application.Transpose( _
> .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Value))
> End With
> Print #N, Join(myarray, ",") ← エラー箇所
このエラーの詳細も次回からは記述してください。
「型が一致しません」ではありませんでしたか?
>
>下記の6シートのデータ位置は
>test1 A1からG1にデータ
>test2 A1にデータ
>test3 B1にデータ
>test4 A1からG1にデータ
>test5 A1にデータ
>test6 A1からAM1にデータ
>
>CSVのイメージは(例)
>1,2,3,あ,い,6,7
>あ,
>,3
>1,2,3,あ,い,6,7
>1,2,3,あ,・・・・・・2
今回は、↑この記述があったので何となく、原因がわかりましたけど、
ひとつでも情報は多いほうが良いですよ!!
でも、この記述(入力データと出力データの記述)をされたことが
質問内容を非常に分かりやすくしていますよ!!
私は、こういう記述は良いと思いますけどね。
'=================================
Sub main2()
Dim idx As Long
Dim myPath As String
Dim N As Integer
Dim myarray As Variant
myPath = ThisWorkbook.Path & "\test.csv"
N = FreeFile
Open myPath For Output As #N
For idx = 1 To 6
With Worksheets("test" & idx)
myarray = Application.Transpose(Application.Transpose( _
.Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Value))
End With
If TypeName(myarray) <> "Variant()" Then
'配列でない場合、強制的に配列を作成する
myarray = Array(myarray)
End If
Print #N, Join(myarray, ",")
Next
Close #N
End Sub
これで試してみてください。
|
|