web-dev-qa-db-ja.com

選択した列をcsvファイルにエクスポートする方法

特定の数の列をExcelから.csvファイルにエクスポートしたい。 lnamefnamephoneaddressemailなどの約10列があります。 lnameemailなどの特定の列のみをエクスポートするにはどうすればよいですか?

25
raul

単純な方法でやってください:-

  1. 10列に連結を適用する

    =CONCATENATE(A1,",",B1,",",C1,",",D1,",",E1,",",F1,",",G1,",",H1,",",I1,",",J1)
    
  2. リストの最後の行の最後までドラッグします

  3. 結果列をコピーする
  4. メモ帳に貼り付けます
  5. .csvファイル形式で保存します
23
Siva Charan

必要な最初の列を選択します。次に、<Ctrl>を押しながら、必要な残りの列を選択します。選択内容をコピーして、新しいブックに貼り付けます。新しいワークブックを.csvファイルとして保存します。

これを頻繁に行う場合は、ステップのマクロを記録します。これが私のテストから記録されたマクロです。私の例では、列Aは名前で、列Eは電子メールです。また、SaveAsファイル名に現在の日付が含まれるようにマクロを変更しました。


マクロの例を表示するつもりでしたが、何らかの理由で、[編集の保存]をクリックするとスーパーユーザーがエラーを表示します。後でもう一度やります。

9
mischab1

これがローテクソリューションです。

  1. シート全体のコピーを.csvとして保存します。
  2. Excelで開いたまま、不要な列を削除します。
  3. 保存する。
5
Excellll

これに対する独自のVBAソリューションをアドインとして作成しました。 GitHubで利用できます here

ビューの例(画像をクリックすると拡大表示されます):

Screenshot of tool form

使用手順は次のとおりです。

  • アドインをインストール
  • フォーム(Ctrl+Shift+C フォームを表示するために現在割り当てられています)
  • エクスポートする範囲を強調表示します
  • エクスポートフォルダを選択します
  • 希望するファイル名、数値形式、およびセパレータを入力します
  • 追加するか上書きするかを選択します
  • 「エクスポート」をクリックします

フォームはモードレスであるため、別の範囲を選択するか、シートからシートまたはワークブックからワークブックに移動する間、フォームを開いたままにすることができます。注意すべきことは、「アットマーク」(@)は、このような出力操作のためのExcelの「一般的な」数値形式の表現として機能します。

の内容 C:\test.csv上記の例から:

13,14,15
14,15,16
15,16,17
3
hBy2Py
Sub ExportSelectionAsCSV()
    ' MS Excel 2007
    ' Visual Basic for Applications
    '
    ' Copies the selected rows & columns
    ' to a new Excel Workbook. Saves the new 
    ' Workbook as Comma Separated Value (text) file.
    '
    ' The active workbook (the 'invoking' workbook - the 
    ' one that is active when this subroutine is called) 
    ' is unaffected.
    '
    ' Before returning from the subroutine, the invoking workbook
    ' is "set back to" (restored as) the active workbook.
    '
    ' Note: target filename is hard coded (code is simpler that way)

    ' Suspends screen updating (until ready to return)
    ' Warning: ScreenUpdating MUST be re-enabled before
    ' returning from this subroutine.
    '
    ' Note: Step through this subroutine line-by-line to prove
    ' to yourself that it is performing as promised.
    ' (Please step through the code at least once - use F8)
    Application.ScreenUpdating = False

    ' Gets the name of *this (the invoking) workbook
    ' so *this workbook can again be set active
    ' at the end of this subroutine.
    Dim CurrentFileName As String
    CurrentFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + CurrentFileName

    ' Copies the selected cells (to the clipboard).
    ' Precondition: Cells must be selected before 
    ' calling this subroutine.
    Selection.Copy

    ' Instantiates a (new) object instance of type Excel workbook.
    ' Side-effect: The new workbook instance is now
    ' the 'active' workbook. 
    Workbooks.Add Template:="Workbook"

    ' Selects the first cell of the 
    ' first worksheet of the new workbook.
    Range("A1").Select

    ' Pastes the clipboard contents to the new worksheet
    ' (of the new workbook)
    ActiveSheet.Paste

    ' Writes the new (active) Excel workbook to file.
    ' The format is Comma Separated Value
    ActiveWorkbook.SaveAs Filename:= _
    "C:\temp\data.csv" _
    , FileFormat:=xlCSV, _
    CreateBackup:=False

    ' Gets the filename of the new (active) workbook
    ' so the name can be logged.
    Dim NewFileName As String
    NewFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + NewFileName

    ' Closes the new CSV file
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

    ' Clears the clipboard contents.
    Application.CutCopyMode = False

    ' Restores the invoking workbook as the active
    ' Excel workbook. 
    Workbooks(CurrentFileName).Activate
    Range("A1").Select

    ' Re-Enables Excel screen display.
    Application.ScreenUpdating = True
End Sub
2
Lyle S.

さらに別の解決策:

  1. エクスポートするセルを選択します
  2. セルの周りに表をラップします(たとえば、WindowsではControl + Tを押します)。
  3. ExportTableマクロ を実行します。

アクティブシートのテーブルを新しいCSVとして保存します(新しいブックを開き、そこからテーブル名をファイル名として使用して保存します)。

1
bishop

Ron's Editor でファイルを開くと、不要な列を非表示にして、結果の「ビュー」をExcelファイルまたはその他の形式でエクスポートできます。さらに良いことに、将来の使用のためにビューを保存できます。とても速く、とても簡単です。

1
Jedy

これはPowerShellスクリプトで簡単に実行できます。この PowerShellスニペット でGet-ExcelData関数を使用して、結果を Select-Object を介してパイプし、最後に Export-Csv にパイプすることができます。

1
Justin Dearing