- 締切済み
テキストファイルからエクセルに転記するマクロ?というものを作成したいと
テキストファイルからエクセルに転記するマクロ?というものを作成したいと思っていますが、何をどうすればよいかぜんぜんわからないでします。 お手数ですが作り方や参考になるHPがあれば教えていただきたいと思います。 ちなみにエクセル2000をつかっています。 <前提条件> あるフォルダ配下に複数のテキストファイルがあり、各テキストファイルに文字列が書かれています。 それらのファイルをある条件でひとつのエクセルファイルのセルに転記していきます。 すべてのファイルから抽出した文字列をエクセルの1シートに転記していきます。 <テキストファイルの中身のイメージ> ■文字列文字列文字列■□もじ□もじ□■文字列文字列文字列■□文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列□■文字列文字列文字列■□文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列文字列□文字列□文字列文字列文字列文字列文字列文字列文字列文字列□ <テキストファイルからの転記条件> (1)■と■ではさまれた文字列をA1のセルへ転記 (2)■の次の文字列(□)から次に出てくる■までの文字列(□もじ□もじ□)をB1のセルへ転記 (3)(1)(2)を繰り返し、それぞれA2,3,4・・・のセル、B2,3,4・・のセルに転記。 (4)次の■が見つからない場合、そのファイルの検索を終了し、フォルダ内の次のファイルを取得します。 (5)上記(1)から(4)をすべてのテキストファイルに対して行います。 以上がやりたいことです。 お手数ですがよろしくおねがいいたします。
- ghshy54y
- お礼率10% (1/10)
- Visual Basic
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- DOUGLAS_
- ベストアンサー率74% (397/534)
【1】 >あるフォルダ配下に複数のテキストファイルがあり これは、#1 さんがお書きの「Dir関数のヘルプ」をご覧ください。 MyPath = "D:\hoge\" MyName = Dir(MyPath & "*.txt") Do While MyName <> "" ▼ここで繰り返し処理 MyName = Dir Loop 【2】 >各テキストファイルに文字列が書かれています。 >テキストファイルからエクセルに転記する FileSystemObject オブジェクト の ReadAll メソッド でも使ってみましょうか。 Set objFSO = CreateObject("Scripting.FileSystemObject") としておいて、 With objFSO.OpenTextFile(MyPath & MyName) buf = .ReadAll ▼ここで、文字列変換 .Close End With 【3】 ><テキストファイルからの転記条件> これは、列区切りを「■」にすれば済みますが、「■A列に入る文字列■□B列に入る文字列□■」という書式ですので、「□■」を行区切りと考えて、一旦分割し、さらに「■」で分割します。 buf = Split(buf, "□■") For i = 0 To UBound(buf) myStr = Split(buf(i), "■") If UBound(myStr) > 0 Then With Range("A" & Rows.Count).End(xlUp).Offset(1) .Value = myStr(UBound(myStr) - 1) .Offset(, 1).Value = myStr(UBound(myStr)) & "□" End With End If Next i 以上で、"D:\hoge\" という「フォルダ配下に」ある「複数のテキストファイル」の中の >(5)上記(1)から(4)をすべてのテキストファイルに対して行います。 なお、変数の宣言は Dim objFSO As Object Dim MyPath As String Dim MyName As String Dim buf As Variant Dim i As Long Dim myStr As Variant でいけると存じます。
- layy
- ベストアンサー率23% (292/1222)
すぐに使えるエクセルVBAマクロ集 EXCELでお仕事 この2つのサイト、よく使うので参考に。 VBAを使いますからこれが初めてなら基本からみること。 テキストを行単位で読みセルにセットする、 フォルダのファイル名を列挙する はありますから組み合わせます。 1行の中の文字検知は 文字数分1文字ずつ判定繰り返す、INSTR関数使う、区切り箇所にカンマ入れて2段階、等考えられます。文字列操作の関数をみて下さい。
- TYWalker
- ベストアンサー率42% (281/661)
そのテキストファイルどこでもらってくるんですか。 文字列A1(タブ)文字列B1(改行) 文字列A2(タブ)文字列B2(改行) 文字列A3(タブ)文字列B3(改行) 文字列A4(タブ)文字列B4(改行) っていう形式なら、エクセルで開いて、形式を変えて保存するだけで、望みの形になります。 ということで、この形式でテキストファイルを作るようにするか、テキストファイルを文字列変換ユーティリティでこの形に変換するかしてからExcelに持ってくるのが早いでしょう。 その他の部分では (1)1つのテキストファイルを開いて、エクセルで保存し、終了するマクロを作る (2)それを複数のフォルダに適用するように改造する のが早いでしょう。 (1)はマクロ記録で作れるでしょう。 (2)はDir関数を使います。Dir関数のヘルプを見てください。
関連するQ&A
- エクセルのマクロで転記
シート1とシート2があり、 シート1の20Aから39Lまでのセルの中に情報を書き込んでいます。 シート1の20Lから39LのL行で、数値が入っているセルがあれば、その行のA、B、I、L列と、J2、A7を取り出し、シート2の2行目から下に転記していくのですが、 シート2のA列にはシート1のJ2を、B列にはシート1のA7を、C列以降は、シート1のA、B、I、Lを入れるようにします。 また同じ条件がシート1で発生すれば、シート2の3行目以降に転記していく感じです。 どのようにすればいいでしょうか。
- ベストアンサー
- その他MS Office製品
- 急!!Excel VBA 転記マクロを教えて下さい
Excel VBA超初心者です、 急ぎ作らなければならない資料があり、ご助力願います。 次の様な転記するアクションをコマンドボタンに設定したいです。 Sheet1の列A(先頭セルA2)に入力したデータを、 追加した(入力間違い等を除き、保存した)データ分だけ Sheet2の列B(先頭セルB3)の最終行から転記させていく。 列Aに入力したデータは、並び替えをするので (この分は、今回のVBAに含みません。入力・転記後、Sheet1で普通に並び替えをします。) 列Aと列Bのデータの順番が異なる。 以上です。 どうぞ宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCELのマクロでテキストを読み込む方法
EXCELのマクロを使って、テキストファイルから、ある文字列を検索し、コピーしEXCELのシートのセルにペーストするマクロの書き方をご存知の方は、ご教示願います。 例えば、テキストファイル中の「dog」という文字列を検索して、EXCELの決まったセル(A、1)にコピペするというマクロです。 よろしくお願い申し上げます。
- ベストアンサー
- Visual Basic
- エクセルでフォルダとファイルを作りたい
お世話になります。 エクセル2007で質問です。 下記のような表をエクセルで作り、A列の名称でフォルダを作り、 そのフォルダの中にすべて同じファイル名のテキストファイルを作り、 その内容をB列の文字としたいのですが、マクロなどでの作成方法を教えてくだい。 A列 B列 a1 ああああああ a2 いいいい a5 かかかかか いままで使っていたマクロはテキストのファイル名がすべてバラバラだった ので同じフォルダ内に書き出していましたが、変更があり同じファイル名で内容が 違うデータが必要となってしまいましたので、違う名称のフォルダの中に、 同じ名称のテキストデータを格納したいと思っています。 テキストデータの名称は何でもいいです。 作成するデータの数は決まっていなく、最大で1000くらいあります。 ぜひ、ご教授お願いします。
- ベストアンサー
- その他MS Office製品
- エクセルのマクロ
あるエクセルのファイルにLIST(A列に呼びだすエクセルファイル名、B列からD列に呼びだしたエクセルに貼り付ける文字列があり、それが100行程度ある)があり、そのLIST A列に書かれているエクセルファイルを開き、その開いたエクセルファイルのある特定のセルにB列からD列にあるセルをそれぞれに貼りつける作業を繰り返すようなマクロはできないでしょうか? [流れ] LISTに書いてあるエクセルファイルを呼び出す→文字列を貼りつける→保存(できれば名前を変えて保存(その場合は、LISTのE列に名称を記載)→閉じる→次のLISTのエクセルファイルを開く→それをLISTの最後の行まで終わるまで繰り返す。 よろしくお願いします。
- 締切済み
- Visual Basic
- Excelマクロでエクセルファイルのファイル名を変更して保存、他
Excel97のマクロを使用して以下の作業を実施したいのですが どなたかご教示お願い致します。 1.フォルダ内の複数ファイルから任意の一つのファイルAを開き、そのファイルA内の任意のセル(1A)の文字列をファイル名にして保存する。 2.あるファイルBを開き、ファイルB内のあるセル(1A)の"文字列が含まれるフォルダ"を検索してそのフォルダ内に保存する。 3.あるフォルダ(\1)内のあるファイルCを開き所要の作業を実施し閉じたあと、そのファイルCを別のフォルダ(\2)へ移動する。 4.あるフォルダ(\3)内のファイルDを開き、ファイルDのファイル名と同じ文字列を含むフォルダ(\4)を検索し、そのフォルダ(\4)内から、 ファイルD内のあるセル(1A)の文字列と同じファイル名のファイルEを検索して開く。 いくつも質問して真に厚かましいですが 解る物だけでも結構ですので 何卒、宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセルのマクロでHTMLファイルを出力するには
エクセルのマクロでHTMLファイルを出力するには 下記アドレスのソースをもとに、エクセルでHTMLファイルを複数出力できたらと考えています。 内容は、sheet1のA列にテキストが入っていると、それを任意のファイル名(ダイアログ)でテキストとして保存が可能になるソースです。 ttp://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_040.html 出来ればこれを以下のように変えたいと考えております。 ●シート名「1」~「50」の計50シートのA列のテキストを、 それぞれのシート名+任意の文字列で保存をしたい。 ●ファイル名の任意の文字列については、シート内のセル (例:sheet1のA4)に記載されている内容としたい。 ●ファイル形式は、HTML形式で保存をしたい。 ●保存先のフォルダは任意のディレクトリ内 (例:C:\Documents and Settings\All Users\デスクトップ)の配下に、 シート内のセル(例:sheet1のA3)に記載されている内容を フォルダ名として、新規に作成し、その中に保存したい。 恐れ入りますが、ご回答よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 大量のテキストファイルを一つのエクセルファイルに
大量のテキストファイル(以下「テキスト」とします)を、そのテキストを保存しているフォルダ名がわかるように一つのエクセルファイルに書き込みたいと考えています。 例えば「A」というフォルダの中にフォルダ名「1」~「1000」の1000個のサブフォルダがあり、その1000個のフォルダの中にはそれぞれ3~4つのファイルが保存されています(ファイルの種類はバラバラ)。但し、1000個のフォルダには最低でも1つのテキストが必ず保存されており、そのテキストのファイル名はすべて同じです。これら同じファイル名の1000個のテキストを、保存されているフォルダ名がわかるように一つのエクセルファイルの一つのシートの上から順番に書き込みたいのです。 それぞれのテキストは、1行に1情報、改行が10~20ほど、ファイルサイズは1~2KBほどです。エクセルのバージョンは2010です。 書き込み方は、例えばエクセルファイルのSheet1のA列にフォルダパス等のフォルダ名がわかる情報を、B列にテキストの内容を書き込むといった感じで、簡単なデータベースのテーブルを作るイメージです。 上記を実現できる方法はありますでしょうか? もし何らかのプログラミングが必要であれば、当方ほぼ未経験ですので具体的に例示して頂けると大変ありがたいです。 よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- EXCEL VBA 複数ファイル値を集計
yakkunnと申します。 お世話になっております。 下記処理を実現するためのEXCEL VBAコードをご教授いただけないでしょうか。 ■やりたい事 デスクトップに「実績集計.xlsx」というファイルがあります。 このファイルにボタンを配置し、このボタンをクリックしましたら、C3セルに記述されているファイルパス配下を見てその配下ファイルを全て開き、各ファイルの値を「実績集計.xlsx」に全て転記するVBAコードをご教授いただきたく思います。 ■転記内容 例えばA.xlsx~C.xlsxという3つのファイルがあるとします。この3つのファイルを開いて・・ 左が「A.xlsx」、右が[実績集計.xlsx」とします 処理付を転記・・B4セル⇒B7へ転記 コードを転記・・B7セル⇒C7へ転記 商品名を転記・・C7セル⇒D7へ転記 数量を転記・・ D7セル⇒E7へ転記 金額を転記・・ E7セル⇒F7へ転記 これをA.xls~C.xlsまで繰り返し、実績集計.xlsxに値をどんどん転記したいです。 金額のF列の最後に合計金額が出力されれば最高です。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- エクセルマクロ 次のようなプログラム教えてください
エクセルのマクロで、次のようなことをしたいと思っていますが、 素人でわかりません。 教えていただけますか。 ---------------------------------- o動かしているファイルをa.xlsとします。 a.xlsは、3行目からA列に名前、B列~D列にデータが入っていて、 各行ごとのファイルを作りたい。(行数は決まっていない) なお、セルE1にある文字が入っている。 o各ファイルは、原紙としてgensi.xlsとして保存されているファイルに、 a.xlsのB~D列のものを入力したものを作りたい。 (B~D列のデータは、gensi.xlsのそれぞれセルC7・C8・C9に入力する) gensi.xlsは、a.xlsと同じフォルダにあります。 o作成場所は、「C:\date」の中に、セルE1にある文字のフォルダ、A列に ある名前のフォルダに作りたい。 (セルE1の文字のフォルダは、マクロを初めて実施するときは無いと思います が、2回目からは存在すると思います。A列の名前のフォルダはマクロ実施時 にはありません。作成するファイル名は、A列の名前と同じ(フォルダ名と同じ).xls にします。) o実行ボタンを3つ作って、1つは今選択されている行のフォルダ・ファイルを作る。 2つ目は数字を入力させて、今選択されている行から入力した数字の行までを一括 で作成する。 3つ目は、3行目から現在入力されている行すべてを一括で作成する。 ------------------------------- 上記のことをしたいと思っています。 よろしくお願いします。 駄文ですみません。 なお、エクセルは古いバージョンでエクセル2000です。
- ベストアンサー
- オフィス系ソフト