よろしくお願いします。
エクセル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行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。
良い解決法をお願いします。
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
回答ありがとうございます。
早速、指示されたとおりにやってみるとできました。
しかし、本番のケースはテキストファイルが職場にあるので、後日に結果を報告させてもらいます。本番の場合はもう少し複雑なデータですが・・・
とりいそぎお礼を申し上げます。
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列
aaaaabbbbcccddddeeeeeee
fffggggghhhhhiijjjjjjj
がセットされました。
本番の場合、どこを変えたら良いか判りますか。
ファイル名、スタート行j等でしょうか。
A-CとD-Fに来るレコードは、必ず2レコードはペアであること。
回答ありがとうございます。
早速、指示されたとおりにやってみるとできました。
しかし、本番のケースはテキストファイルが職場にあるので、後日に結果を報告させてもらいます。本番の場合はもう少し複雑なデータですが・・・
とりいそぎお礼を申し上げます。
No.3
- 回答日時:
#2です。
肝心のことを書き忘れていました(^_^;)。
そうやって、区切りにTabが入った文字列を、そのままコピーして、
その後、エクセル上で開始する左上のセルにカーソルを合わせてからペーストしてやると、そこにきちんとセルにわかれた状態で収まるはずです
早速の回答ありがとうございました。
データの長さの違う「区切り位置」はうまくいったみたいです。
すみませんが、複数行のデータ(質問がよく説明できていないも知れませんが、「A1」「B1」の1の部分は同じ項目のデータでテキストでは複数行に分かれています。この項目が数百あります。)を項目ごとにエクセルの1行に貼り付ける方法も教えていただければありがたいです。
No.2
- 回答日時:
テキストデータの(区切りに使っている)スペースを、いったんすべてtabに置換すると可能です。
Tabへの置換方法ですが、WZエディターというソフトの場合、検索文字「 」(空白)、置換文字「\t」と指定します。
また、メモ帳の場合、いったんTabをエディターか何かで入力して、それをコピー、そして、検索文字に「 」(空白)、置換文字にペーストをするとTabが入りますから、全部置換を指定するとできます。
No.1
- 回答日時:
まず、テキストファイルのデータをメモ帳などで、スペースをカンマに置換します。
それをエクセルで、カンマ区切りで開けば良いと思いますが、いかがですか?
早速の回答ありがとうございました。
データの長さの違う「区切り位置」はうまくいったみたいです。
すみませんが、複数行のデータ(質問がよく説明できていないも知れませんが、「A1」「B1」の1の部分は同じ項目のデータでテキストでは複数行に分かれています。この項目が数百あります。)を項目ごとにエクセルの1行に貼り付ける方法も教えていただければありがたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) EXCEL 行内のデータを2行に分けて、表を作り直したいのです。教えてください。 5 2023/06/25 14:00
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) エクセルの表で A1にデータの入力規則でリストを作って、 (リス、キリン、ゾウとします) リストを選 4 2022/07/15 09:29
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 細かい条件での切り...
-
エクセルにて表に入力→一覧に自...
-
「ドゥ」の簡単なローマ字入力方法
-
Google form グーグルフォーム...
-
テキストファイルで改行に置換...
-
一太郎をワードに変換
-
wordの差込印刷(ラベル作成)...
-
Office Word [ここに入力] が...
-
1MBでドレくらいの文章を書くこ...
-
ワードにて スペースを全て改行...
-
googleカレンダーの予定を入力...
-
PDF 入力途中で改行したい
-
WPS OFFICEでの縦書きについて
-
上ハイフンの打ち方
-
一太郎ファイルをExcelで開きたい
-
一太郎で作成した文書をコピペ...
-
作ったマクロを複数のシートで...
-
Notionが、テーブルビューを一...
-
ワードで住所の漢数字番地の縦...
-
一太郎のコピー、貼り付けにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数セル範囲をコピ...
-
AccessからExcelへ
-
従事期間の重複チェック、表示
-
エクセルにて表に入力→一覧に自...
-
エクセル 細かい条件での切り...
-
エクセルの行列方向での並び替え
-
エクセルでのデータ蓄積
-
エクセルで空白の項目セルを削...
-
テキストファイルのデータをエ...
-
Google form グーグルフォーム...
-
「ドゥ」の簡単なローマ字入力方法
-
1MBでドレくらいの文章を書くこ...
-
一太郎をワードに変換
-
エクセルの表を選択し、「画像...
-
一太郎で作った文書をWord変換
-
googleカレンダーの予定を入力...
-
エクセルでセル未入力時の初期...
-
一太郎で作成した文書をコピペ...
-
PDF 入力途中で改行したい
-
テキストファイルで改行に置換...
おすすめ情報