あなたは定期的に更新されるCSVデータを毎回エクセルのフォーマットにコピペするのが面倒だと思ったことはありませんか?
仕掛商品の製造状況更新や、案件の進捗確認など、毎週更新しているリストがCSVで提供される場合、毎回エクセルの表にコピペするのは大変ですよね。
表が1枚ならいいですが、5枚、10枚と増えてくると、1枚1分で終わるものでも、結構時間を取られます。
エクセルのマクロを使えば、CSVの更新データをエクセルのフォーマットに自動でコピペできます。
今回は「エクセルでCSVの更新データをフォーマットに自動コピペする方法」を紹介します。
エクセルでCSVの更新データをフォーマットに自動コピペする方法
エクセルでCSVの更新データをフォーマットに自動コピペする方法です。
これが貼付したいCSVデータです。
白黒で色がなく、行や数字が見づらいです。
エクセルのテーブル等にすると、見出しや行の色が変わるので、見やすいですよね。
今回は、下のように、左側のSCVデータを、右側のエクセルフォーマットに、データだけを貼り付けし、貼付けしたものをを名前を付けて保存するのを例に紹介します。
マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
2.「新規作成」をクリック
3.コード入力画面が開く
4.コードを入力
コードを入力します。
新しいエクセルを開き、元の古いエクセルデータをコピペし、CSVデータの値のみを貼付けし、新しいエクセルを保存する、という意味です。
赤枠部のコードです。
Dim wbSource As Workbook
Dim wbNew As Workbook
Dim wsSource As Worksheet
Dim wsNew As Worksheet
Dim rngSource As Range
Dim FileName As String
Dim FolderPath As String
Dim NewFileName As String
Dim desktopPath As String
' 元のエクセルファイル「3.xlsx」を取得
Set wbSource = ThisWorkbook
Set wsSource = wbSource.Sheets(1) ' 目的のシートを設定
' 新しいエクセルデータ「2」を作成して開く
Set wbNew = Workbooks.Add
Set wsNew = wbNew.Sheets(1)
' エクセル「3」のA1:G13をそのままコピペする
Set rngSource = wsSource.Range("A1:G13")
rngSource.Copy Destination:=wsNew.Range("A1")
' デスクトップパスを取得
desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
' 「1.xlsx」という名前のファイルを開く
FileName = desktopPath & "\1.xlsx"
' ファイルが存在しない場合のエラーハンドリング
If Dir(FileName) = "" Then
MsgBox "デスクトップ上に「1.xlsx」ファイルが見つかりません。", vbExclamation
Exit Sub
End If
' 「1.xlsx」ファイルを開く
Dim wb1 As Workbook
Dim ws1 As Worksheet
Set wb1 = Workbooks.Open(FileName)
Set ws1 = wb1.Sheets(1) ' 必要に応じてシート名を調整
' コピーするセル範囲を指定(例:A1:G13)
Set rngSource = ws1.Range("A1:G13")
' コピーしてデータのみ貼り付ける
rngSource.Copy
wsNew.Range("A1").PasteSpecial Paste:=xlPasteValues
' ソースファイルを閉じる
wb1.Close False
' 保存するフォルダパスを取得
FolderPath = ThisWorkbook.Path
NewFileName = FolderPath & "\" & "新しいファイル_" & Format(Now, "YYYYMMDD_HHMMSS") & ".xlsx"
' 新しいファイルとして保存
Application.DisplayAlerts = False ' 警告メッセージを無効化
wbNew.SaveAs NewFileName, FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True ' 警告メッセージを再有効化
' 保存完了メッセージ
MsgBox "ファイルが保存されました:" & NewFileName, vbInformation
' 新しいブックを閉じる
wbNew.Close
コードを入力したら、コードの入力画面を閉じて下さい。
5.ボタンができた →ボタンをクリック
ボタンができたら、ボタンをクリックします。
6.データの貼付けが完了
新しいエクセルファイルに表のフォーマット、データの値が貼付けできました。
新しいファイルで保存されているので、そのままメールなどで共有できます。
これで、定期的なCSVデータの更新も簡単ですね!
まとめ
エクセルでCSVの更新データをフォーマットに自動コピペする方法のまとめです。
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
2.新規作成をクリック
3.コードを入れる画面が出る
4.コードを入力
5.ボタンができた →ボタンをクリック
6.データの貼付けが完了
これでCSVデータを定期的にエクセルに貼り付けるのが楽になりますね!
CSVデータが貼付けできたら、次は集計とグラフ化ですね。
集計とグラフ化も以外と面倒なので、自動化しましょう!
下のリンク先へどうぞ!
コメント