Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


51747 / 76738 ←次へ | 前へ→

【29852】Re:CSVからデータの取込
発言  小僧  - 05/10/14(金) 18:34 -

引用なし
パスワード
   ▼ほびっと さん:
こんにちは。

>VBAでKen_ALLの見出し行(1行目にフィールド名)を挿入することはできるのですか?

VBA でテキスト操作はできるのですが、

1) Temp と言う名前で CSV ファイルを Open
2) Ken_ALL を Open
3) Temp の1行目に見出し行を追加
4) Temp の2行目から Ken_ALL を追加
5) Temp を Ken_ALL と言う名前で上書きコピー
6) Ken_ALL を削除

というような面倒な処理になります。

そこで「schema.ini」を作ってみましょう。
Ken_ALL と同じフォルダに

[Ken_ALL.csv]
ColNameHeader=False
CharacterSet=oem
Format=CSVDelimited
Col1=F1 Integer
Col2=F2 Char Width 255
Col3=F3 Char Width 255
Col4=F4 Char Width 255
Col5=F5 Char Width 255
Col6=F6 Char Width 255
Col7=F7 Char Width 255
Col8=F8 Char Width 255
Col9=F9 Char Width 255
Col10=F10 Integer
Col11=F11 Integer
Col12=F12 Integer
Col13=F13 Integer
Col14=F14 Integer
Col15=F15 Integer

と記述して「schema.ini」という名前で保存。

これで取り込む際にフィールド名が付加されます。


Sub 東京都だけ抽出()
Dim adoCON As Object
Dim adoRS As Object
Dim strSQL As String
Dim FName As String

  Set adoCON = CreateObject("ADODB.Connection")
  Set adoRS = CreateObject("ADODB.Recordset")
  adoCON.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
         "DBQ=" & ThisWorkbook.Path & ";" & _
         "ReadOnly=0"
  
  
  strSQL = "SELECT F1,F2,F3,F4,F5,F6,F7,F8 " _
      & "FROM Ken_ALL.csv Where F7 = '東京都'"
  
  adoRS.Open strSQL, adoCON, 3

  adoRS.MoveLast
  ActiveSheet.Cells(adoRS.RecordCount, 8).NumberFormatLocal = "@"
  adoRS.MoveFirst
  ActiveSheet.Cells(1, 1).CopyFromRecordset adoRS
  
  adoRS.Close
  adoCON.Close
  Set adoRS = Nothing
  Set adoCON = Nothing
End Sub

東京都だけ抽出するサンプルコートです。

Ken_ALL に ユニークな値がないので、

>1列目のデータが変わる最初の行のみ

という処理まで思いつきませんでした。すみません。
1 hits

【29823】CSVからデータの取込 ほびっと 05/10/14(金) 12:01 質問
【29828】Re:CSVからデータの取込 awu 05/10/14(金) 14:34 回答
【29830】Re:CSVからデータの取込 小僧 05/10/14(金) 14:58 発言
【29838】Re:CSVからデータの取込 ほびっと 05/10/14(金) 15:59 質問
【29845】Re:CSVからデータの取込 小僧 05/10/14(金) 16:53 発言
【29850】Re:CSVからデータの取込 ほびっと 05/10/14(金) 17:14 発言
【29852】Re:CSVからデータの取込 小僧 05/10/14(金) 18:34 発言
【29853】Re:CSVからデータの取込 ほびっと 05/10/14(金) 19:25 お礼
【29848】Re:CSVからデータの取込 小僧 05/10/14(金) 17:09 発言
【29834】Re:CSVからデータの取込 awu 05/10/14(金) 15:15 発言
【29839】Re:CSVからデータの取込 ほびっと 05/10/14(金) 16:02 発言

51747 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free