Excel VBA質問箱 IV

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

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


3360 / 13646 ツリー ←次へ | 前へ→

【62726】CSVファイルの文字列をカンマで分割する方法 ネココ 09/8/26(水) 7:17 質問[未読]
【62727】Re:CSVファイルの文字列をカンマで分割する... kanabun 09/8/26(水) 9:29 発言[未読]
【62738】ありがとうございました!!! ネココ 09/8/26(水) 20:05 お礼[未読]

【62726】CSVファイルの文字列をカンマで分割する...
質問  ネココ  - 09/8/26(水) 7:17 -

引用なし
パスワード
   はじめまして。
この度、必要に迫られてExcel VBAの勉強を始めた者です。

CSVファイルのデータをExcelファイルに貼り付けを行いたいのですが、Excelファイルの方のセル範囲が変更になったため、CSVファイルのデータを加工する必要がでてきました。

■CSVファイルの例
3,4,5,6,名古屋,0123,1
1,7,8,1,大阪,0138,2
4,6,3,2,東京,0138,3

左から6コ目の4桁の数字を1桁ずつカンマで区切る方法を教えて下さい。

■加工後
3,4,5,6,名古屋,0,1,2,3,1
1,7,8,1,大阪,0,1,3,8,2
4,6,3,2,東京,0,1,3,8,3

CSVファイルを開いて、配列変数に読み込んでExcelファイルに貼り付けをしていますので、Line Input #1, CSVData の後に加工ができれば、と思っています。

どうぞ宜しくお願い致します。

【62727】Re:CSVファイルの文字列をカンマで分割す...
発言  kanabun  - 09/8/26(水) 9:29 -

引用なし
パスワード
   ▼ネココ さん:

>■CSVファイルの例
>3,4,5,6,名古屋,0123,1

>左から6コ目の4桁の数字を1桁ずつカンマで区切る方法を教えて下さい。

>Line Input #1, CSVData の後に加工ができれば、と思っています。

  Dim CSVData As String
  Dim dat
  Dim dt(1 To 4) As String
  Dim ss As String
  
  'Line Input #1, CSVData      '一行読み込む
  CSVData = "3,4,5,6,名古屋,0123,1" '<--- 読み込んだ文字列(テスト用)
  Debug.Print CSVData
  
  dat = Split(CSVData, ",")
  '左から6コ目の4桁の数字を1桁ずつカンマで区切る
  ss = dat(5)  '<--------- 左から6コ目のデータ
  dt(1) = Mid$(ss, 1, 1)
  dt(2) = Mid$(ss, 2, 1)
  dt(3) = Mid$(ss, 3, 1)
  dt(4) = Mid$(ss, 4)
  dat(5) = Join(dt, ",")
  CSVData = Join(dat, ",") '編集後のCSVData
  Debug.Print CSVData

【62738】ありがとうございました!!!
お礼  ネココ  - 09/8/26(水) 20:05 -

引用なし
パスワード
   kanabun さん

教えていただいた通りにやってみたら希望通りの結果になりました!
嬉しいです!本当にどうもありがとうございました!

文字列操作関数を使うのかな?とまでは想像できたのですが、実際にどうやってやるの?取り出した文字列をカンマでつないで元のデータと統合する方法は?と、2日間ネットでいろいろ検索して悩んでいました。

kanabunさんの書いて下さったコードの内容も理解できて気持もスッキリしました!
とっても勉強になりました。
どうもありがとうございました。

またこちらで相談させてもらうことがあると思います。
これからも宜しくご指導お願いいたします。

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