VBATips

「指定した範囲をタブ区切り(TSV)テキスト出力して保存する」【VBAマクロ】

選択した範囲をTSV出力(タブ区切りテキスト出力)したい

Excelで、特定の範囲をタブ区切りのTXTファイルに出力し
他アプリケーションへインポートさせたいケースがあります。

下記のようにActiveSheetや、すべてのシートをTSVエクスポートするケースだけではなく、
シートの作成上、一部分だけCSV出力させたいケースもあるかと思います。
「全シートを タブ区切りテキストで保存する処理」をパーツ化する。【エクセルマクロ】
「ActiveSheetをタブ区切りのテキストで出力保存する」をパーツ化する。【VBAマクロ】

範囲選択した部分(Range)をTSVファイルとして出力するマクロは以下です。

選択した範囲のCSV出力サンプルコード

'■現在開いているシートをCSVデータで保存する
Public Sub call_RangeSaveTSV()
    Dim fPath As String
    Dim fName As String
    Dim rng As Range
    
    '■現在開いているブック情報をファイル名にするため、変数に格納
    fPath = ActiveWorkbook.Path & "\"
    fName = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "csv"
    
    Application.DisplayAlerts = False
    
    '■現在選択しているセル情報をrngに格納
    Set rng = Selection
    
    '■新規ブック作成→rngをA1にコピー→TSV保存→CSV閉じる
    Workbooks.Add
    rng.Copy ActiveSheet.Range("A1")
        
    ActiveWorkbook.SaveAs Filename:=fPath & ws.Name, FileFormat:=xlText
    ActiveWindow.Close
    
    Application.DisplayAlerts = True

End Sub

[/vbnet]

注意点

  • 保存先のファイルが既に存在してた場合は、強制的に上書きします。

関連項目

「指定した範囲をCSV出力して保存する」【VBAマクロ】

「全シートをシート名でCSV保存する処理」をパーツ化する。【エクセルマクロ】

「ActiveSheetをCSV出力して保存する」をパーツ化する。【ショートカットキー】【VBAマクロ】

コメント

タイトルとURLをコピーしました