- ベストアンサー
Excelへシート別の書き込み
- Excelへの書き込み方法を改善したい場合、異なるシートに書き込みをする方法を模索しています。
- 現在は全てのファイルをシート1に書き込むことができますが、テキストファイルの内容に応じてシート1またはシート2に書き込みをするようにしたいです。
- いくつかのアプローチを試しましたが、まだ最適な方法が見つかりません。アイデアやアドバイスがあれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 テキストファイルを読み込んで、その内容に従って、シート1へ書き込むか、シート2へ書き込むかをIf文などで条件分岐してやればいいだけだと思いますが。 テキストファイルを読み込む方法がわからないということでしょうか。
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
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メソッドを使って読み込んだ後、シートをコピーしたり、 テキストファイルを直接読み込んだりと色々あるでしょう。
お礼
お礼が遅くなってすいません。 無事問題解決しました。 ありがとうございましたm(__)m
- imogasi
- ベストアンサー率27% (4737/17069)
以下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)累積 方法の説明したつもり。
お礼
すいません。お礼がおそくなりました。 無事問題解決しました。 ありがとうございましたm(__)m
お礼
すいません。お礼が遅くなりましたm(__)m 単純な問題でした。If文でシート名が存在するかで条件分岐し、 なかった場合にはシートを追加するとすればよかったんですね。 早合点し、もうちょっと考えてから質問すればよかったです。 ありがとうございました。