• ベストアンサー

テキストファイルのデータをエクセルへコピーのやり方

よろしくお願いします。 エクセル2000を使っています。 テキストのデータで A1/B1/C1    /はスペースです。 D1/E1/F1    データの長さは全部違います。 A2/B2/C2     D2/E2/F2 A3/B3/C3     D3/E3/F3      ・    ・(続く) といったものがあります。これをエクセルで    A列 B列 C列 D列 E列 1行 A1 B1 C1 D1 E1 2行 A2 B2 C2 D2 E2  ・・・ 3行 A3 B3 C3 D3 E3  (続く)          ・          ・(続く) という感じで別々のセルにいれて貼り付けしたいのです。 テキストデータを別々のセルに貼り付けする方法は 過去ログで「区切り位置」というのをつかえばいいというのはわかりましたが、この場合の複数行にわたるテキストデータをエクセルの1行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。 良い解決法をお願いします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.5

データ並びが一定でなくても構わないようにしています。 テキスト何行を1行分にして読込むか、設定出来ます。(今は2行に設定) マクロを実行するとファイル名指定のダイアログがでますので、テキストファイルを 指定すると、アクティブシートにデータが読み込まれます。 宜しかったら詳しい手順を書きますのでテストしてみてください。 1.Alt + F11 で VBE(Visual Basic Editor)を開きます。 2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。 3.モジュールウィンドウに下記コードをコピーして貼り付けます。 4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。 5.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を  「中」にして[OK]します。 6.実行するときは、Alt + F8 (メニューから[ツール]-->[マクロ]-->[マクロ])で  「テキスト複数行を1行で読込」を指定し、[実行]ボタンを押します。 Sub テキスト複数行を1行で読込() Dim FNum As Integer, R As Integer Dim Col As Integer Const RwSet As Integer = 2 '<-- 読取り行数単位指定 Dim N As Integer, Rw As Long Dim FileName, InData, Ary FileName = Application _ .GetOpenFilename("テキスト ファイル(*.csv;*.txt),*.csv;*.txt") If FileName = False Then Exit Sub FNum = FreeFile Open FileName For Input As FNum Col = 1: Rw = 1 Do Until EOF(FNum)   For R = 1 To RwSet     If EOF(FNum) Then Exit Do     Line Input #FNum, InData     Ary = Split(Trim(InData), " ")     For N = 0 To UBound(Ary)       Cells(Rw, Col).Value = Ary(N)       Col = Col + 1     Next N   Next R   Rw = Rw + 1   Col = 1 Loop Close #FNum End Sub

tadasi1971
質問者

お礼

回答ありがとうございます。 早速、指示されたとおりにやってみるとできました。 しかし、本番のケースはテキストファイルが職場にあるので、後日に結果を報告させてもらいます。本番の場合はもう少し複雑なデータですが・・・ とりいそぎお礼を申し上げます。

tadasi1971
質問者

補足

VBAはよくわからないのですが、 なんとかやりたいことができました! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

1列分が2レコードに別れているために、区切り位置では出きず、区切り文字をカンマやTABに変えてもだめだと思います。そこでVBAの登場です。 (テストデータ)メモ帳で aaaaa bbbb ccc dddd eeeeeee fff ggggg hhhhh ii jjjjjjj 名前を付けて保存でbbd.txtと言うファイルを作りました。 (VBAコード)エクセルのVBEの標準モジュールに Sub test01() Open "c:\my documents\bbd.txt" For Input As #1 j = 1 While (Not EOF(1)) Line Input #1, a b = Split(a, " ") For i = 0 To 2 Cells(j, i + 1) = b(i) Next i '---- Line Input #1, a b = Split(a, " ") For i = 0 To 1 Cells(j, i + 4) = b(i) Next i j = j + 1 Wend Close #1 End Sub を貼りつけて、実行します。 (結果)エクセルのシートに A列   B列    C列   D列    E列 aaaaa bbbb ccc dddd eeeeeee fff ggggg hhhhh ii jjjjjjj がセットされました。 本番の場合、どこを変えたら良いか判りますか。 ファイル名、スタート行j等でしょうか。 A-CとD-Fに来るレコードは、必ず2レコードはペアであること。

tadasi1971
質問者

お礼

回答ありがとうございます。 早速、指示されたとおりにやってみるとできました。 しかし、本番のケースはテキストファイルが職場にあるので、後日に結果を報告させてもらいます。本番の場合はもう少し複雑なデータですが・・・ とりいそぎお礼を申し上げます。

tadasi1971
質問者

補足

VBAはよくわからないのですが、 なんとかやりたいことができました! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#13376
noname#13376
回答No.3

#2です。 肝心のことを書き忘れていました(^_^;)。 そうやって、区切りにTabが入った文字列を、そのままコピーして、 その後、エクセル上で開始する左上のセルにカーソルを合わせてからペーストしてやると、そこにきちんとセルにわかれた状態で収まるはずです

tadasi1971
質問者

お礼

早速の回答ありがとうございました。 データの長さの違う「区切り位置」はうまくいったみたいです。  すみませんが、複数行のデータ(質問がよく説明できていないも知れませんが、「A1」「B1」の1の部分は同じ項目のデータでテキストでは複数行に分かれています。この項目が数百あります。)を項目ごとにエクセルの1行に貼り付ける方法も教えていただければありがたいです。

全文を見る
すると、全ての回答が全文表示されます。
noname#13376
noname#13376
回答No.2

テキストデータの(区切りに使っている)スペースを、いったんすべてtabに置換すると可能です。 Tabへの置換方法ですが、WZエディターというソフトの場合、検索文字「 」(空白)、置換文字「\t」と指定します。 また、メモ帳の場合、いったんTabをエディターか何かで入力して、それをコピー、そして、検索文字に「 」(空白)、置換文字にペーストをするとTabが入りますから、全部置換を指定するとできます。

全文を見る
すると、全ての回答が全文表示されます。
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

まず、テキストファイルのデータをメモ帳などで、スペースをカンマに置換します。 それをエクセルで、カンマ区切りで開けば良いと思いますが、いかがですか?

tadasi1971
質問者

お礼

早速の回答ありがとうございました。 データの長さの違う「区切り位置」はうまくいったみたいです。  すみませんが、複数行のデータ(質問がよく説明できていないも知れませんが、「A1」「B1」の1の部分は同じ項目のデータでテキストでは複数行に分かれています。この項目が数百あります。)を項目ごとにエクセルの1行に貼り付ける方法も教えていただければありがたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excelのデータの移動?集約?をしたいです

    よろしくお願いします EXCEL2000を使用しています。OSはXPです。 データがランダムにA~O列 1~200行まであります この量は、その時その時変わるのですが だいだい、その範囲にあります そのランダムに入っているデータを空白のセルを除いて A列に並べたいのです 順番は1行目から横にあるデータを順番に下に並べ 次は2行目のデータで、その次は3行目。。。としたいです 例 A1 B1 C1 D1 E1 A2 C2 E2 A3 B3 D3 というデータを A1 B1 C1 D1 E1 A2 C2 E2 A3 B3 D3 というようにしたいのですが よろしくお願いします

  • エクセルで離れたセルを離れた場所へコピペするには?

    エクセルで 1行目のctrl+コピーで離れたセル(B1,D1,F1)を 3行目(B3,D3,F3)、4行目(B4,D4,F4)、6行目(B6,D6,F6)などに 貼り付けるにはどうすればよいでしょうか? ちなみに、A列、C列、E列には他の数値があるのでコピーしたくないのです。 どなたかよろしくお願いします。

  • テキストをExcel2000に貼り付け

    .txtを参照してファイル内容を、マクロで Excel2000に貼り付けたいと考えています。 先頭の1行は決まっていて2行目からが 対象になります(コロン区切りのファイルです) コロンは削除してA~Jまでの文字を ExcelのA~Jのセルに貼り付ける 例).txtの記述 START :A :B :C :D :E :F :G :H :I :J :A :B :C :D :E :F :G :H :I :J :A :B :C :D :E :F :G :H :I :J ExcelのA1セルから最大20000行まで対応したいです。 どうかご教授願います。

  • 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があればお教え願いたいのですが。 以上よろしくお願いします。

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

  • Excelでのコピー

    Excelで名前の名簿があるとします。 それをコピーして等間隔(2行おきなど)に貼り付けできますか? 例)名前はA1からA9までとします。   それを例えばB1、2行あけて、B4、という感じです。 ちょっと見づらいですが・・・   A  B 1 a  a 2 b 3 c 4 d  b 5 e 6 f 7 g  c 8 h 9 i 少ないデータであれば一個ずつやればいいんですが 大量のデータだとめんどくさいので、何か良いやり方があれば 教えてください。

  • テキストデータの並べ方を変える

    すみません、エクセル操作で困っております。 エクセルは全くの初心者です。 たとえばa,b,c,d,e,f,gと並んでいるtxtデータがあるのですが、 これをExcel2007で開くと a,b,c,d,e,f,gという感じで横方向のセルに従って開いてしまうのですが、 これを a b c d e f g という感じで縦に並べ替えて読み込ませる方法はありませんでしょうか?

  • エクセルで集計

    エクセルでの合計について教えていただきたいのです。 A1~A10000まで日付が、B1~B10000まで数値が入力されています。 B列の数値を50行ごとに合計し、C列に表示する方法。 現在は、sum関数で手作業です。 簡単に表示できる方法を教えてください。 また、C列に合計のある行をD列(D1・D2・D3・・・)、E列(E1・E2・E3・・・)、F列(F1・F2・F3・・・)に並べたいのです。(50行ごとに間引いて表示するような感じです) 現在は、=C50・=C100・=C150のように手作業です。 もっと多量のデータが入力されたシートもあります。また、100行ごと150行ごとなど合計行が違う場合もあります。 エクセル初心者です。 よろしくお願いいたします。

  • VBAでテキストファイルからデータを読み込む方法

    VBAでテキストファイルからデータを読み込む方法を探しています。 コンマ区切りのデータを、エクセルに書き込みたいです。 テキストファイルにはコンマ区切りで6個のデータを書き込んであります。 それを、セルD3からD7に書き込む方法を教えていただきたいです。よろしくお願いします。

  • <EXCELマクロ>テキストデータの貼り付け

    お世話になります。 テキストファイルのデータをEXCELシートに貼り付けるための VBAを教えて頂けないでしょうか。 具体的には下記をご参照願います。 下記「テキスト」に3つのテキストファイルが格納されています。 これの内容を、下記のように、EXCELシートに貼り付けたい と考えています。 以下、具体的説明 <フォルダの場所と名前> C:\テキスト <テキスト形式、TAB区切り> ファイル1  ファイル2  ファイル3 1番 鈴木  A社 米国  判定 ○ 2番 左藤  B社 タイ  判定 △ 3番 田中  C社 韓国  判定 × ・ ・ ・ <EXCELへの貼り付け>   A   B   C   D   E  F 1 1番 鈴木 A社 米国 判定 ○ 2 2番 左藤 B社 タイ 判定 △ 3 3番 田中 C社 韓国 判定 × ・ ・ ・ 注意)A~Fはセルの列、1~3はセルの行を意味します。 説明は以上です。 自分で勉強すべきことと反省していますが、 急いでおりますので、回答のほど宜しくお願い致します。 以上です。

このQ&Aのポイント
  • HHKB Hybridのキーマップについて知りたい方へ。F13以降のファンクションキーはマッピングできるのか、Fnキーの単押しについても調査しています。
  • HHKB Hybridのキーマップについての情報をお探しの方へ。この記事では、F13以降のファンクションキーがマッピング可能かどうか、またFnキーの単押しについても解説しています。
  • HHKB Hybridのキーマップに関する疑問をお持ちの方へ。この記事では、F13以降のファンクションキーのマッピング可能性や、Fnキーの単押しについて解説しています。
回答を見る

専門家に質問してみよう