• 締切済み

Excel VBAテキストのコピー

(例)のようなテキストファイルをコピー元とし、 TITLE_NAME行のTITLE_NAMEの後ろ8文字がInputBoxで入力された値と同じだった場合、TITLE_NAMEの本文をTITLE_NAMEが変わるまでコピーしたいのですがどのようなコードを書けばいいでしょうか? (この場合だとTITLE_MANEの後ろがBBBBBBBに当たる箇所の本文をコピーしたいです。) TITLE_NAMEの後ろは最大8文字ですが、必ずしも8文字というわけではありません。 どなたか教えていただけないでしょうか? テキストファイルの内容はこんな形です。 (例) TITLE_NAME AAAAA (本文数行) TITLE_NAME AAAAA (本文数行) TITLE_NAME BBBBBBB (本文数行) TITLE_NAME BBBBBBB (本文数行) TITLE_NAME CCCCCC (本文数行) TITLE_NAME CCCCCC (本文数行) [EOF]

みんなの回答

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.3

回答がついてますので、それでOKの場合は無視してください。 >TITLE_NAMEの本文をTITLE_NAMEが変わるまでコピーしたい 同じTITLE_NAMEの行が2行ありますが、こういう場合どんなファイルを作りたいのですか。 ・始めに見つかったTITLE_NAMEの本文だけをファイルにする ・見つかったTITLE_NAMEの本文を全てつなげて1つのファイルにする ・それぞれ別々のファイルにする(その場合のファイル名は?) あと、TITLE_NAMEの行自身はコピーしなくてもいいんですよね。 以上、補足お願いします。

  • aji70
  • ベストアンサー率100% (1/1)
回答No.2

VBAなんて久しぶりなんで、間違っていたらごめんなさい (エラー・例外等は無視して作っています) Const sSearch = "TITLE_NAME " Private Sub CommandButton1_Click() Dim sIN As Integer '/* エラー処理は無視 sIN = Val(InputBox("数字を入力してください")) If sIN > 0 Then Dim bCopy As Boolean: bCopy = False '/* ファイルのOPEN Open "c:\aaa.txt" For Input Access Read As #1 Open "c:\aaa2.txt" For Output As #2 '/* EOFまで繰り替えす Do While Not EOF(1) Dim Str As String '/* 一行読込 Line Input #1, Str MyPos = InStr(1, Str, sSearch, 1) ' /* タイトル行? If MyPos > 0 Then bCopy = False Dim chk As String chk = Replace(Str, sSearch, "") If Len(chk) = sIN Then bCopy = True Print #2, Str End If Else If bCopy = True Then Print #2, Str End If End If Loop Close #1 Close #2 End If End Sub  

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

前回も同じような質問をしていますが、そのときの回答を参考にして御自分で作成してみてから分からないところだけを質問しましょう。 ファイルの入出力やキーコントロールの仕方はほとんど同じです。 http://oshiete1.goo.ne.jp/qa5044985.html 丸々作ってもらってコピーするだけじゃ身につきませんよ。

pavidl
質問者

補足

前回は質問の内容がわかりずらかったので、わかりやすく纏めて新たに質問した形となります。 前回ご回答いただいた内容と、今回やろうとしていることにはズレがあったので、新たに質問させていただきました。

関連するQ&A

  • VBAでのテキストコピー

    10000行ほどのテキストファイルから、先頭5文字が同じ文字の間、別のテキストファイルにコピーし、先頭5文字が変わるまで同じ処理ができるような構文を書きたいです。 どなたかご教授願えませんでしょうか?

  • Foxit Readerで本文をコピーしたい

    タイトル通り、Foxit Readerでpdfファイルの本文をコピーしたいんです。 「テキスト ビューワ」を使って文字データのコピーができるとネットで見たのですが、 テキスト ビューワを使ってもコピーできません。 どなたかやり方を教えてください。

  • 切取り&貼り付け(エクセル)

    初歩的な質問ですみません。 メモ帳、テキストファイル、HTMLファイルから文字列を切取り、エクセルに貼り付けたいのですが、通常の方法はわかりますが、表の(枠組み)のままはりつけたいのです。(エクセルのセルを利用して) 例えば (テキスト) AAAAA-BBBBB-CCCCCC DDDDD-EEEEE-FFFFFF とあるのをエクセル側ではA~Fを各別々のセルに貼り付けたいのです。 わかりずらくすみません。

  • VBA特定文字間を削除し一部を変換したいです。

    こんにちは。質問させて下さい。 エクセルVBAにてA1セルにある特定文字”(”から”)”までを削除し文字の区切りは”;”と”、”が混在しているのを全て”、”に変換しB1セルに表示させたいのですがご教授頂けませんでしょうか。下記例となります。 A1セル(あいうえお)AAAAA;(かきくけ)BBB、(さしす)CCCCCC;(たちつて)DDD ⇒ B1セル AAAAA、BBB、CCCCCC、DDD ()の数や文字数は様々となります。どうぞ宜しくお願い致します。

  • エクセル VBA

    初心者です。 VBAを使って、ファイルを開かずにファイル本文の文字数を取得できないでしょうか。 出来ればテキスト形式・Word形式のファイルで使えると言いのですが・・・。 EXCELは2000です。 詳しい方、よろしくお願いします。

  • エクセルVBAにてテキスト出力がうまくいきません

    エクセルシートの1列に以下のような文字列を打ち込みました。 - a aa aaa aaaa aaaaa - b bb bbb bbbb bbbbb - c cc ccc cccc ccccc - 「-」の2行後をテキストを出力した際のファイル名とし、ファイル名を含んだ次の「-」までの文字列をそのテキストの中に出力したいです。なお、全体の行数は分かっています。 例えば上の文字列に対して実行すると、 a.txt b.txt c.txt というファイルができ、それぞれの中には a aa aaa aaaa aaaaa などがそれぞれ出力されるようにしたいです。 Sub tepa() Dim strFilename As String Dim FileNumber As Integer Dim strREC As String j = 1 For i = 1 To 70 If Cells(i, 1) = "-" Then strFilename = Cells(i + 2, 1) & ".txt" Do While Cells(i + j, 1) <> "-" If i > 70 Then Exit Sub End If FileNumber = FreeFile strREC = Cells(i + j, 1) Open strFilename For Append As FileNumber Print #FileNumber, strREC Close j = j + 1 Loop End If i = i + j Next End Sub さきほど初めてVBAなるものを知り、見よう見まねで書いてみましたが・・・ループに陥ったりテキストファイルが1つめしか出力されなかったりとうまくいきません。 改善点など教えていただけたら嬉しいです。 よろしくお願いします。

  • PDFのテキストのコピーが「・・・」に化けてしまいます

    PDFファイルで「テキスト選択」はできるのですが、 EXCELでもテキストファイルでも、貼り付けると、 すべて「・・・・」としか表示されません。 どうも、文字数はあっているようなのですが、 文字としてコピーできていません。 バージョンは、Adobe Reader 6.0 で、 OSは、ウィンドウズ98SEです。 文字ではなく、アウトライン=絵として保存されているの なら諦めますが、何が何だかわからなくて、非常に困って います。 どなたかアドバイスをお願い致します。

  • VBAで、テキストファイルの削除はどうするのでしょうか。

    VBA で、あるディレクトリにあらかじめ作成、保存してあるテキストファイルを、Input Box からそのファイル名を指定してExcel に読込み、所定の処理をした後、元のテキストファイルをディレクトリ上から削除するにはどうしたらよいでしょうか。 いつも決まった名前のファイルを削除するのは Kill コマンドで容易にできたのですが、InputBox から入力した任意の名前のファイルを削除する方法を教えていただけませんか。

  • コピーした文字を、簡単にテキスト文書にするには

    Mac userです。 コピーした文字列を、簡単にテキスト化するソフトや方法はありますでしょうか? いまは、テキスト化したい文字列をコピーした後、まずテキストエディットに貼付けて、再度テキストエディットからコピーして、目的のところへペーストしています。 ご回答、お願い致します。

    • 締切済み
    • Mac
  • セル内のテキストをクリップボードにコピーするVBA

    EXCELに入力している表からテキストを抜き出して、jpegファイル名に入りつけようとしています。 その際、毎回右クリックしてコピーするのが面倒なので、ボタン(アクティブなセル内のテキストをクリップボードにコピーするVBA)を作ろうとしているのですが、単に Sub copy() ActiveCell.copy End Sub だと、ファイル名にペーストした際、「ファイル名には次の文字は使用できません」と言われてしまいます。(余分なスペースが入っているようです) どうすればうまくできるのでしょうか?

専門家に質問してみよう