• ベストアンサー

CSVからエクセルへの取り込み

エクセル・マクロ初心者です。 CSVファイルの一部分を、エクセルで読み込みたいのですが、 マクロでの作成は可能でしょうか。 (例) ・CSVファイル(読み込み側)  ABCDE 1 2 3 4 5 ・EXCELファイル(書き込み側)  ABCDE 1 2 3 4 5 ・CSV側は、複数のファイルがあります。 ・EXCEL側は、1つのシートにCSVのデータを書き込みます。 ・CSVファイルAの1B、2B、3B、4B、5Bを読み込み、EXCELファイルの、1A、1B、1C、1D、1Eに書き込みます。 ・CSVファイルBの1B、2B、3B、4B、5Bを読み込み、EXCELファイルの、2A、2B、2C、2D、2Eに書き込みます。 ・CSVファイルCの1B、2B、3B、4B、5Bを読み込み、EXCELファイルの、3A、3B、3C、3D、3Eに書き込みます。 というような事をやりたいのです。 どなたか、ご指導のほどよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.2

a.csv・・・・1a,1b,1c,1d,1e b.csv・・・・2a,2b,2c,2d,2e というファイルを読み込んで <A> <B> 1a  2a 1b  2b 1c  2c 1d  2d 1e  2e と表示させてみました。※Excel2003 sp2で検証! 書くべきコードの実行部は僅か10行程度です。 ファイルを5つに増やせば質問自体の目的は達成されます。 が、2行だったらどうするのか? など、色んな問題がありそうです。 Private Sub CommandButton1_Click()   Dim I     As Integer   Dim J     As Integer   Dim N     As Integer   Dim strCSVs(4) As String   Dim strDatas() As String      strCSVs(0) = "C:\Temp\a.csv"   strCSVs(1) = "C:\Temp\b.csv"   For I = 0 To 1     strDatas() = FileReadArray(strCSVs(I))     If UBound(strDatas()) >= 0 Then       For J = 0 To 4         Me.Cells(J + 1, I + 1) = CutStr(strDatas(0), ",", J + 1)       Next J     End If   Next I End Sub ※FileReadArray()、CutStr()に関する説明は、質問の主旨がもう一つ不明なので割愛します。 ※マクロ=記録マクロですと・・・単に、作ればいいだけでは?

その他の回答 (1)

回答No.1

可能です。 やり方は色々ですが、 ・CSVファイルを開き ・Excelの新規シートに内容をコピー ・CSVファイルを閉じる をCSVファイル数分繰り返し、 ・ExcelのCSV内容がコピーされたシートから該当セルにデータコピー ・作業用シート削除 という手順がわかりやすいかと

関連するQ&A