のりーのアトリエ

家具屋・FP。思いついたことをつらつらと綴っています。主にfusion360のパラメトリックモデリングについて、ずっと書き続けます

エクスポートするやつ

最近、社員がメキメキとレンダリングの腕を上げて、なんだかよく分からないプレッシャーにさらされてドキドキしてます。どうも、のりーです。

 

前回は、CSVファイルからパラメータを流し込む方法を書きました。

 

sanyo-san.hatenablog.com

今回は、CSVファイルをいちいち作るのはめんどいので、どこかで拾ってきたVBAを少しいじったものを公開しようと思います。

 

とはいえ、CSVに書き出すというのはかなり一般的なものなので、色々疑問点があるかもしれません。

一応、EXCELのファイルがある場所に作るようにしてあります。

 

これによって、前回言ってた、4列目から右は書いちゃだめよー。じゃなくて、6列目から書いていいよー。に変わります。ただ、5列目に何か書くと、エラーになりますので、必ず1列あけてね。メモを書いたり他の計算を入れれるのは良い事です。

 

「マクロ使った事ないよ!」という方はごめんなさい。説明してるサイトが沢山あるので、他のページを検索してくださいごめんなさい

 

参照設定も必要です。

VBAの画面の、ツールー参照設定より、Microsoft Scripting Runtime

をチェックしてください。

f:id:sanyo-san:20190426004707p:plain

 

 

Sub CSVmacro()

Application.ScreenUpdating = False
Dim csv As String
Dim line As String
csv = ""
Dim region As Range
Set region = Range("A1").CurrentRegion
Dim row As Range
For Each row In region.Rows
    If row.Columns(1) <> "" Then
        line = ""
        Dim cell As Range
        For Each cell In row.Columns
            Dim item As Variant
            item = cell.Value
            If line = "" Then
                line = item
            Else
                line = line & "," & item
            End If
        Next
        If csv = "" Then
            csv = line
        Else
            csv = csv & vbCrLf & line
        End If
    End If
Next
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim ts As TextStream
Set ts = fso.OpenTextFile(ActiveWorkbook.Path & "csv.csv", ForWriting, True)
ts.Write (csv)
ts.Close
Set ts = Nothing
Set fso = Nothing
Application.ScreenUpdating = True
End Sub

 こんな感じです。

 

ActiveWorkbook.Path & "csv.csv"の部分が、ワークブックと同じ場所にcsv.csv作るぜって意味なので、適当に変えるといいかもしれません。

私もVBAとか使った事ほとんど無かったので、よく分かってませんが、、、もしかすると、どこかネットで調べたものの方が勝手が良いかもしれません。し、

 

csv export マクロ フリー 等で検索するといろいろでてきます。是非、参考にしてみてくださいっ。

以上、エクスポートするマクロでした。