• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelへシート別の書き込み)

Excelへシート別の書き込み

このQ&Aのポイント
  • Excelへの書き込み方法を改善したい場合、異なるシートに書き込みをする方法を模索しています。
  • 現在は全てのファイルをシート1に書き込むことができますが、テキストファイルの内容に応じてシート1またはシート2に書き込みをするようにしたいです。
  • いくつかのアプローチを試しましたが、まだ最適な方法が見つかりません。アイデアやアドバイスがあれば教えてください。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 テキストファイルを読み込んで、その内容に従って、シート1へ書き込むか、シート2へ書き込むかをIf文などで条件分岐してやればいいだけだと思いますが。 テキストファイルを読み込む方法がわからないということでしょうか。

snowsaab
質問者

お礼

すいません。お礼が遅くなりましたm(__)m 単純な問題でした。If文でシート名が存在するかで条件分岐し、 なかった場合にはシートを追加するとすればよかったんですね。 早合点し、もうちょっと考えてから質問すればよかったです。 ありがとうございました。

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

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

TEST┰001.txt → テキストファイルAに書き込む   ├002.txt → テキストファイルAに書き込む   ├003.txt → テキストファイルAに書き込む   ├004.txt → テキストファイルAに書き込む   └005.txt → テキストファイルAに書き込む            → テキストファイルAを読み込む。必要ならシートをコピーする。 TEST┰001.txt → 判断してテキストファイルAに書き込む   ├002.txt → 判断してテキストファイルAに書き込む   ├003.txt → 判断してテキストファイルBに書き込む   ├004.txt → 判断してテキストファイルAに書き込む   └005.txt → 判断してテキストファイルBに書き込む            → テキストファイルAを読み込む・・・BookX            → テキストファイルBを読み込む・・・BookY            → BookYのシートをBookXにコピーする。 事前に数多いテキストファイルを1つにしたり、まとめてしまう方法です。 エクセルへの読み込み方法は、  OpenTextメソッドを使って読み込んだ後、シートをコピーしたり、  テキストファイルを直接読み込んだりと色々あるでしょう。

snowsaab
質問者

お礼

お礼が遅くなってすいません。 無事問題解決しました。 ありがとうございましたm(__)m

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

以下Book1のシートへまとめるものとする。 (1)テキストファイルaaa.txtをワークブックに読みこむ。 Workbooks.OpenText "c:\My Documents\aaa.txt", , 1, xlDelimited ブック名aaa.txtのシート名aaaの1シートが出来る。 既存のブックへ(ブック名を指定して)シート名を指定して OpenTextで読みこむことは出来ない。 DOS-Basic式のOpen,INPUT#の方法も あるがOpenTextを使ってみた。 (2)a = Workbooks("aaa.txt").Worksheets("aaa").Range("b1")とか で値を参照できるから、その値でBook1のどのシートに コピーするか判別し決める。---(a) どの諸セルの内容で、シートを振り分けるかは、質問に書いてなくて、省略する。 (3)Rangeのコピーをするため、  読みこんで出来たシートのデータの最下行を知る。 l = Workbooks("bbb.txt").Worksheets("bbb").Range("a1").CurrentRegion.Rows.Count等で知る。 (3)Book1のシート(a)へコピーする。 BOOK1のシート(上記(a)のシート)の最下行を知り、その次行にActiveにしておく。 s = "a1:j" & l1 (jは最右列を見積もった列の例え) Workbooks("bbb.txt").Worksheets("bbb").Range(s).Copy l = Workbooks("book1").Worksheets("sheet1").Cells(1, 1).CurrentRegion.Rows.Count Workbooks("book1").Worksheets("sheet1").Cells(l + 1, 1).Activate ActiveSheet.Paste s = "a1:j" & l2 Workbooks("aaa2.txt").Worksheets("aaa2").Range(s).Copy l = Workbooks("book1").Worksheets("sheet1").Cells(1, 1).CurrentRegion.Rows.Count Workbooks("book1").Worksheets("sheet1").Cells(l + 1, 1).Activate ActiveSheet.Paste これでBook1の指定のシートへ(1)振り分け(2)累積 方法の説明したつもり。        

snowsaab
質問者

お礼

すいません。お礼がおそくなりました。 無事問題解決しました。 ありがとうございましたm(__)m

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

関連するQ&A

  • エクセルの各シートに複数のtxtファイルを取り込む

    Excel2013を用いたデータ整理をしているのですが,複数のファイルを扱う上でマクロを用いた効率化をしたいと思い,質問させていただきました. いま,Folder1 というフォルダに,text1 から text40 までの 40個のtxtファイルがあります. これらのファイルを,エクセル上であらかじめ作成してある Sheet1 から Sheet40 にそれぞれ貼り付けたいと考えています. txtファイルは,4列で構成されており,タブでそれぞれ区切られています. 行数は20,481行です. txtの中には,0 の値が入った箇所もあるため,その情報が消えないで貼り付けられると望ましいです. また,タブのところでしっかり区切られ,違うセルに貼り付けられると,ありがたいです. 質問は以上です. お手数ですが,よろしくお願いします.

  • Excelシートごとに処理

    あるExcelブックがあり、その中には「DUT40」「DUT63」「Sheet1」「Sheet2」「sheet3」というシートが存在します。 処理内容は、まず、「DUT40」について処理をさせ、結果をテキストファイルに保存した後に、テキストファイルの内容を別のExcelブックへ書き込みます。 次にに「DUT63」について処理を行います。 このようにして「DUT*」というシートのみを読み込み処理をさせたいのですが、 私の考えとしましては、シートをループさせたらどうかなと思うのですが、 他に何かよい方法はありますでしょうか?

  • エクセルの各シートに複数のテキストファイルを取り込むには?

    はじめまして。データの整理で困っています。 お力をお借りできたらと思います。 複数のテキストファイルがあります。 これらをエクセルのシートに取り込み、 各シート名を取り込んだファイル名としたいのですが、 何か良い方法はないでしょうか? 例えば、 No1_1001_1.txt、No1_1001_2.txt、No1_1002_1.txt、... というファイル群を Data_No1.xls のSheet1 <- No1_1001_1.txt Data_No1.xls のSheet2 <- No1_1001_2.txt Data_No1.xls のSheet3 <- No1_1001_3.txt ... というようにしたいのですが。よろしくお願いします。

  • 複数のテキストファイルをひとつのエクセルシートにまとめるには?

    複数のテキストファイル(.txt)をエクセルのひとつのシートにまとめるにはどうすればいいですか? またその際、個々のテキストファイルのファイル名を本文の前に挿入したいのですが、 そのやり方も教えていただけると助かります。 ただ、フリーソフトを使わずエクセルの機能だけでやりたいのでよろしくお願いします。 ↓のような感じにしたいです。 ------------------------------------------- test1.txt data data data data data data data data data data data data data data data data data data data test2.txt data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 data2 ------------------------------------------- Sheet1 現在、一つ一つのテキストファイルの名前をF2で選択してセルに貼り付け、 テキストファイルを開いて本文を前文コピーして貼り付け、というやり方でやってますが、 非常に時間がかかって困っています。 よろしくお願いします。

  • Excel VBA別ブックのシートをコピーするには

    Excel2010のVBAで別ブックのシートをコピーしてくる方法 Excelファイル(C:\test\BOOK2.xls)のシート名が TESTというシートを自分のExcelファイル(C:\doc\BOOK1.xls)に コピーするにはどのように記述すればよいのでしょうか。 ・コピー先:自分のExcelファイル(C:\doc\BOOK1.xls)  VBAのコードがあるファイルです ・コピー元:C:\test\BOOK2.xlsのTESTシート  なお、TESTシートを持つ同じ名前(BOOK2.xls)のファイルが  別フォルダにもあります   Workbooks( )の引数にファイル名(BOOK2.xls)は指定できるのですが、 フルパス名(C:\test\BOOK2.xls)で指定できないので困っています。

  • EXCELを使ったファイル削除

    あるフォルダの中に0~1000のように名前のついたファイル(拡張子は全て同じ)があります。 そのうちEXCELファイル1シートのAの列に並んだ数値のファイルのみをフォルダから削除をしたいです。 何かソフトを使ったりして出来るでしょうか? フォルダ内 (1.txt,2.txt,3.txt・・・) EXCELファイル A B C D・・・ 1 2 2 5 3 10 4 999 上の例だとフォルダ内の2.txt,5.txt,10.txt,999.txtを削除する。

  • エクセル2003のVBAを教えてパート3

    kドライブのVBA練習フォルダにある、全てのテキストデータファイル(拡張子.txt)を、エクセルに繋げて取り込こむ(指定のエクセルの1シートに全テキストデータを繋げて取り込む)方法がわかりません。どなたか教えてください。データは、A列にのみに入ります。 テキストデータファイルの数は、1~4ファイルと色々な場合があります。また、行数も1ファイル10行~ 400行と色々です。 次のように、決められた1つのデータなら、プログラムに「元データ.txt」と入力する方法で出来るのでっすが。 Sub テキストファイルの読み込み() '1ファイルのとき  Dim buf As String  Dim cnt As Long  Open "k:\VBA練習\元データ.txt" For Input As #1   Do Until EOF(1)    Line Input #1, buf    cnt = cnt + 1    Cells(cnt, 1) = buf   Loop End Sub

  • エクセルの各シートに複数のtxtファイルを取り込む

    はじめまして. Excel2013を用いたデータ整理でわからない部分があるため, 質問させていただきました. 同じフォルダに入った,複数(40個程度)のテキストファイルを, エクセルの複数のシートにそれぞれ取り込みたいと考えています. 具体的には,同じフォルダに入っている, A001.txt, A002.txt, A003.txt, .... というテキストファイル群を, Data_A.xlsxのSheet1にA001.txt       Sheet2にA002.txt       Sheet3にA003.txt といったように取り込みたいです. テキストファイルは, X_座標 Y_座標 X_速度 Y_速度 の四列で構成されており,タブでそれぞれ区切られています. 行数は20,000程度です. 以前,同様の質問をされた方の回答にありました以下のマクロを実行してみたのですが, ・タブで区切られず,一つのセルに四列分の文字が入力される. ・0の情報が消えてしまう. という二つの問題が発生しました. Sub ReadTextFiles()   Const DirName = "C:\TEMP"   '上記で指定されたフォルダに存在するファイルで、   '拡張子がtxtのものをすべて1シートとして読み込む   Dim fs, dir, fc, f1, stream As Object   Set fs = CreateObject("Scripting.FileSystemObject")   Set dir = fs.GetFolder(DirName)   Set fc = dir.Files   For Each f1 In fc     If LCase(fs.GetExtensionName(f1.Name)) = "txt" Then       Worksheets.Add after:=Worksheets(Worksheets.Count)       Sheets(Worksheets.Count).Name = f1.Name       Set stream = f1.OpenAsTextStream       Do While stream.AtEndOfStream <> True         Cells(stream.Line, 1) = stream.ReadLine       Loop       stream.Close     End If   Next End Sub これらを解決した上で,ファイルを取り込む方法を教えていただきたいです. お手数ですが,よろしくお願い致します.

  • 複数のテキストファイルをエクセルに貼りつける方法

    ディスクトップに、ひとつのフォルダがあるとします。 そのフォルダを開くと、 フォルダ1、フォルダ2、フォルダ3、フォルダ4とこのような感じでフォルダがあり、さらに各フォルダには、複数のテキストファイルが入っています。 現在、エクセルのA列にフォルダ名、B列にtxtファイル名、C列にtxtファイルの内容を手動で貼りつけるといった作業を行っているのですが、数が多いためしんどいです。 何か楽にできる方法はないでしょうか? よろしくお願いいたします。

  • エクセルファイルにあるシートのリンクだけを切りたい

    タイトルの通りです。 いつのまにか共有フォルダにあるエクセルファイルと リンクが結ばれていました。 共有フォルダにあったファイルは必要なくなったので、 削除しましたが、デスクトップにあるエクセルファイルの シートにかかっているリンクは生きています。 このリンクを切りたいのですが、ワークシート化しており、またたくさんのタブを作っていますので、何か 一度ですべてのシートのリンクを切れる方法があれば 教えてください。 以上、よろしくお願いいたします。