• 締切済み

エクセルでtxtデータを指定の列に取り込みたい。

エクセル2003を使用しています。 100ファイルくらいの定型フォームのtxtファイルを、エクセルの1シートの中に、同じ項目ごとに入れたいのです。 txtファイルは、ファイル名がyyyymmddhhttss.txtとなります。 ファイル内のデータは お名前: ○○○○(全角漢字) 都道府県: 東京都 郵便番号: 0000000 市区町村: 港区 番地: 番地0-0 アパート・マンション: マンション000号 電話番号: 0000000000 これを、 エクセルのA列には「お名前」、B列には「都道府県」・・・ という感じにセットしたいのです。 自分で、エクセルの1シートにまとめることはできたのですが、 同じ項目ごとに指定列に当てはめることができず、困っております。 どうかよろしくお願いいたします。

みんなの回答

  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.2

VBAが理解できていないと無理だと思います。 どのような内容になっているテキストデータかわかりませんが、考え方としては下記のようにやればできると思います。 1.各項目に相当する配列を宣言する 2.テキストデータの内容を項目毎に各配列に取込む 3.配列の内容を指定したセルに書き出す。 この説明でVBAのスクリプトがイメージできないようでしたら実現は難しいと思います。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

>自分で、エクセルの1シートにまとめることはできたのですが、 どのようにまとめたのでしょうか?

IWA_OKOSHI
質問者

補足

エクセル1行にtxtの1行が表示され、1つのtxtファイルの「電話番号」の次の行には次のtxtファイルの「お名前」行が表示されています。 マクロは以下のようにしています。 If MyObj Is Nothing Then Exit Sub MyFol = MyObj.self.Path & "\" MsgBox MyFol & "を処理します。" Set MyObj = Nothing Application.ScreenUpdating = False With Sheets.Add ActiveSheet.Name = "testsheet" MyFnm = Dir(MyFol & "*.txt") Do Until Len(MyFnm) = 0& i = i + 1 n = IIf(n = 0, 1, n + n1) With .QueryTables.Add(Connection:="TEXT;" & MyFol & MyFnm, _ Destination:=.Range("A" & n)) .AdjustColumnWidth = False .TextFilePlatform = xlWindows .TextFileStartRow = 1 .TextFileCommaDelimiter = True .Refresh False n1 = .ResultRange.Rows.Count .Parent.Names(.Name).Delete .Delete End With MyFnm = Dir() Loop End With

関連するQ&A

  • 3列に分かれているエクセルのデータを1列にしたい

    今、エクセル上に1500件の住所が入力されています。 A列・・・都道府県 B列・・・市区町村 C列・・・それ以降の住所 となっています。 この3列になっている住所をA列にすべてまとめたいのですが、どのようにしたらいいのでしょうか? (A列に都道府県+市区町村+それ以降の住所を入れてしまいたいのです) 一件ずつ地道な作業をするには件数が多すぎるため、どうにか一瞬でできないものでしょうか?

  • 【VBA】全角半角入り交じった住所を分割

    Book1のA列に記載されている市区町村番地を、別のファイルであるBook2のA列とB列に、それぞれ市区町村と番地に分けて転記するVBAを教えていただけますでしょうか。 住所は半角全角が入り交じっていますが、どちらかに統一するのではなく、記載されているとおりに転記したいです。 全角だけ、もしくは半角だけを抜き出すマクロは見つけたのですが、どちらであっても分割できるマクロがわかりません。 下記の住所を、、、 Book1 A列 港区赤坂1-2-3 港区赤坂1-2-3 港区赤坂1-2-3 下記のように分割して別ファイルに転記 Book2 A列    B列 港区赤坂  1-2-3 港区赤坂  1-2-3 港区赤坂  1-2-3 お知恵をお貸し下さい。 よろしくお願いいたします。

  • 文字列間にスペースを入れる関数はある?

    Excelについて質問です。 住所管理ファイルを作っています。 例えばセルA1に都道府県、B1に市区町村番地、C1にマンション名を入力してそれらを結合してD4に表示させたいと思っています。 D4にCONCATENATE関数を使えば結合して表示できるのですが、詰めて表示してしまいます。 市区町村番地とマンション名の間にスペースをつけたいと思っているのですが、スペースを入れる関数などはありますでしょうか?

  • エクセルで、3列に分かれている住所を1列にしたい

    今、エクセル上に1500件の住所が入力されています。 A列・・・都道府県 B列・・・市区町村 C列・・・それ以降の住所 となっています。 この3列になっている住所をA列にすべてまとめたいのですが、どのようにしたらいいのでしょうか? (A列に都道府県+市区町村+それ以降の住所を入れてしまいたいのです) 一件ずつ地道な作業をするには件数が多すぎるため、どうにか一瞬でできないものでしょうか?

  • エクセル住所録の組み換え方

    『エクセル』の住所録に関する質問2件です。よろしくお願いいたします。 <質問1> 住所が市区町村から入力されている都道府県別の複数のシートにあります。市区町村のセルに都道府県を加えて、「○○県△△市××」というセルにし、複数のシートをひとつの表にまとめたいのですが、効率が良いやり方を教えてください。 <質問2> エクセル2行で1項目をあらわしている表があります。たとえば、A1=会員番号、A2=氏名、B1=電話番号、B2=住所、ということです。 これを、1行に置き換えたいのですが、良い方法をおしえてください。 A1=会員番号、B1=氏名、C1=電話番号、D1=住所、ということです。 異常、よろしくお願いします。

  • ExcelのUserForm,Txtデータを列取得

    Txtファイルにあるデータがコンマで区切られています。並びをAからJとします。Aの前には日付が入っています。複数のテキストファイルを持ちいります。 ExcelのUserFormを使い、テキスト(拡張子Txt)のデータを列ごと取得しようと思っております。たとえば図のようにBのチェックボックスにチェックを入れ、ExecuteButton1を押すと「-509999.9987」データと日付のみ、新しいExcelファイルにデータを入れるという方法です。 並びとしましてUserForm1の中にPage1がありその中にFrame1が入って、Checkboxがあります。 Executeボタンを押したら、下記のような流れになればいいです。 テキストオープン>新規のExcelシートを作成する>選択したタグを列で取得する>新規のExcelシートに取得したデータを詰めて張り付ける(その時日付とデータを張り付ける)。 たとえばチックボックス1と4にチェックが入っていたとします。コンマの間と間のデータを取得しようとすると、1列目のデータは日付なので、2列目と5列目を取得したいと思いますがうまくいきません。  チェックボックスの1番目にレ点があると下記のようになります。 If Me.Controls("CheckBox1").Value = True Then If Me.Controls("CheckBox2").Value = True Then If Me.Controls("CheckBox3").Value = True Then して行くと、200以上のチェックボックスがある場合それを200以上作らないといけません。 また、下記のようにすると。 ....................... For i = 1 To 200 If Me.Controls("CheckBox" & i).Value = True Then ~~~~~~~~~ else ~~~~~~~~~ next i .......................... たとえば1と4列目が正(True)の場合であっても、テキストの中身のデータを的確に2列目と5列目を取得するのが難しいです。 どなたか簡単にできる方法を教えていただけますでしょうか。どうぞよろしくお願いいたします。

  • エクセルで列の取得

    A1セルに名前、A2セルに番号、A3セルに趣味と入ったエクセルがあり、B行から各々のデータを入れたものがあります。 このデータを使って別のエクセルに、A1に趣味、A2に名前と順番を変えたシートを作りたいんですが、コピペでやるのが早いのは分かるんですが作業が面倒なので、なにかしら関数を入力してあるエクセルファイルに、元となるエクセルデータをsheet1にいれれば勝手にsheet2が生成されるみたいなことをやりたいです。あるファイルの列を違うsheetに並べ替える関数なんてものは存在するのでしょうか?また、このようなことがしたい場合方法はありますでしょうか? やりたいことがうまく説明できないんですがよろしくお願いします。

  • 住所の区切り方

    住所を都道府県や市区町村などの区分で分ける場合、「東京都」は都道府県、「港区」は市区町村だと思うのですが、それより下の 「新橋1-○-×」の部分は何と呼ぶのでしょうか? 特に「1-○-×」の部分を「番地」だとすると「新橋」の部分は何と呼ぶのでしょうか?

  • Excel VBAで列ごとのデータをテキストファイルへ書くには?

    エクセルのシート(たとえばSheet1)が以下のようになっているとします。 A B C D E F 1 商品A 11111111 あいうえお 3 1000 2 商品B 22222222 かくくけこ 1 2500 3 商品C 33333333 さしすせそ 2 3500 ・ ・ これを決まった列ごとにテキストファイル(固定ファイル名)に書き出すということは、エクセルのVBAで可能でしょうか? テキストファイルの内容は以下のようにしたいのです。 E列を数量として、その分だけのテキスト行を書き出したいのですが… <<bbb.txt>> 商品A 商品A 商品A 商品B 商品C 商品C ・ ・ <<ccc.txt>> 11111111 11111111 11111111 22222222 33333333 33333333 ・ ・ <<fff.txt>> 1000 1000 1000 2500 3500 3500 ・ ・ また、このようなことが参考になるHPがあればお教え願いたいのですが。 以上よろしくお願いします。

  • ExcelUserForm,Txtデータを列取得

    Txtファイルにあるデータがコンマで区切られています。並びをAからJとします。Aの前には日付が入っています。複数のテキストファイルを持ちいります。 ExcelのUserFormを使い、テキスト(拡張子Txt)のデータを列ごと取得しようと思っております。たとえば図のようにBのチェックボックスにチェックを入れ、ExecuteButton1を押すと「-509999.9987」データと日付のみ、新しいExcelファイルにデータを入れるという方法です。 並びとしましてUserForm1の中にPage1がありその中にFrame1が入って、Checkboxがあります。 テキストオープン>新規のExcelシートを作成する>選択したタグを列で取得する>新規のExcelシートに取得したデータを詰めて張り付ける(その時日付とデータを張り付ける)。 たとえばチックボックス1と4にチェックが入っていたとします。コンマの間と間のデータを取得しようとすると、1列目のデータは日付なので、2列目と5列目を取得したいと思いますがうまくいきません。  チェックボックスの1番目にレ点があると下記のようになります。 If Me.Controls("CheckBox1").Value = True Then If Me.Controls("CheckBox2").Value = True Then If Me.Controls("CheckBox3").Value = True Then して行くと、200以上のチェックボックスがある場合それを200以上作らないといけません。 また、下記のようにすると。 ....................... For i = 1 To 200 If Me.Controls("CheckBox" & i).Value = True Then ~~~~~~~~~ else ~~~~~~~~~ next i .......................... たとえば1と4列目が正(True)の場合であっても、テキストの中身のデータを的確に2列目と5列目を取得するのが難しいです。 どなたか簡単にできる方法を教えていただけますでしょうか。どうぞよろしくお願いいたします。

専門家に質問してみよう