• ベストアンサー

【Excel】特定セルの内容をテキストファイルに書き出したい

こんにちは セルA1に =A2&A3&A4 A2からA4までの文字を繋げて表示しています。 このA1に表示されている内容を テキストファイル(例:abc.txt)に 簡単に保存できるマクロを教えて下さい。 Excel2003 です。

  • hee1
  • お礼率32% (137/422)

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

テキスト形式で保存 ↑をマクロの自動記録してみてください。 新規シート追加 ↓ 保存したいセル範囲を新規シートにコピー ↓ 新規シートを新規ブックに移動 ↓ 新規ブックをテキスト形式で保存 ↓ 新規ブックを閉じる 以上でできます。 でも、下のような簡単な方法もあります。 フォルダの指定がないのでデスクトップにしてあります。 ub txtkakidasi() Dim txtmei As String Dim newtxtstr As String Dim fnum As Integer newtxtstr = ActiveSheet.Range("A1").Value txtmei = "C:\Documents and Settings\hoge\デスクトップ\abc.txt" fnum = FreeFile Open txtmei For Output As #fnum Print #fnum, newtxtstr; Close fnum End Sub Sub txtkakidasi2() Dim txtmei As String Dim newtxtstr As String Dim FSO As Object Dim f As Object newtxtstr = ActiveSheet.Range("A1").Value txtmei = "C:\Documents and Settings\hoge\デスクトップ\abc.txt" Set FSO = CreateObject("Scripting.FileSystemObject") Set f = FSO.CreateTextFile(txtmei) f.write newtxtstr f.Close Set f = Nothing Set FSO = Nothing End Sub

hee1
質問者

補足

こんにちは。 回答頂き有難うございます。 マクロで・・・と言っておきながらマクロはほとんど分かりません。 教えて頂きましたマクロを実行すると 「コンパイルエラー:プロシージャの外では無効です」 となってしまいました。 また、abc.txtを保存すると、このExcelファイルが「abc.txt」となってしまうので、 保存終了の際に「名前をつけて保存」をしなければなりません。 abc.txtは別に常に上書きされて、 このExcelは.xlsで保存して終了したいのですが・・・。 ややこしくてすみません。

その他の回答 (2)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

#1で提示したコードは、既同名のファイルが存在したらエラー になります。 "abc.txt"は定数ですが、 Dim txtmei As String Dim fol As String Dim txtpath As String fol = CreateObject("WScript.Shell").SpecialFolders("Desktop") txtmei = "abc" txtpath = fol & "\" & txtmei & ".txt" というようにフォルダ、テキストファイル名ともに変数で指定することも出来ます。 また、 If Dir(txtpath) <> "" Then MsgBox txtpath & VbCrLf & "は既に存在するファイル名です。" Else 'テキストファイル保存するコード End If というように既にファイルが存在するか判定して条件分岐することも可能です。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

マクロの記述で出来ると思います ツールバーのマクロ=>マクロの記録 1、A1セルのコピィ 2、ファイル=>新規作成 3、新規ブックのA1セルに貼り付け 4、新規ブックの終了=>ファイル名 abc ファイルの種類 テキスト形式 5、コピィモード終了(Esc) マクロの終了で作成できたコードをアレンジしてみてください。

関連するQ&A

  • テキストファイルの内容をエクセルのセルごとに入れたい。

    テキストファイル(*.txt)の内容をエクセルのセルごとに 区切って入れたい場合どうすればよいのですか? 初歩的な質問で申し訳ないですが教えてください。 よろしくお願いいたします。 例) (.txt文字列) abcdefghijklmn 12345678901122 ↓ (エクセル表) ------------------------ | abcd | efgh | ijklmn | ------------------------ | 1234 | 5678 | 901122 | ------------------------

  • 【エクセル】セルの内容をテキストエディタに書き出す

    どなたかご教授お願いします。 エクセルのセルの内容をテキストエディタに書き出し、 希望のファイル名で保存したいと思っております。 例。    A     |     B 1  長文1      1111 2  長文2      2222 3  長文3      3333 4  長文4      4444 ↓ ↓ ずっと1000番ほどまで続きます。 このように、 セルAの内容をテキストファイルに書き出し、 セルBという名前でテキストファイルを保存したいと思っております。 「セルA1」 書き出し → ファイル名「セルB1」 「セルA2」 書き出し → ファイル名「セルB2」 「セルA3」 書き出し → ファイル名「セルB3」 ・・・ という風に、ずっと続きます。 どなたか、良い方法はありませんか? エクセルのマクロの使い方も全くわかりませんので、 できるのであれば、どんな方法でも結構です。 申し訳ありませんが、 マクロの場合は、初心者でもわかるように、 マクロのコードを教えてください。 しばらく色いろと試しましたが、 方法が全くわからず、お手上げ状態です。 どうぞ、よろしくお願いします。

  • セルで指定した名前のテキストファイルをインポートするマクロの作り方

    例: A1セルに5,B1セルに1を入力。(5月1日を表しています) その後マクロを実行し、0501.txtという5月1日に相当する テキストファイルをインポートするというものです。 該当のフォルダ内には各日付ごとのテキストファイルが 複数存在しており、インポートしたいテキストファイル をエクセルファイルのセル上で指定するのが目的です。 インポートするファイル名を固定しないというマクロの 作り方がわかりません。 どうぞよろしくお願いします。

  • Excel「テキストファイルのインポート」

    Excelの「テキストファイルのインポート」によってテキストファイル(仮に「a.txt」)をワークシート上に読み込んだ状態で、「a.txt」を削除しようとすると、「ファイルが開かれているため削除できない」旨のエラーメッセージが表示されます。 このとき、Excel上では「a.txt」が開かれていることは確認できませんが、マクロを使うなどの手段を用いると「a.txt」を閉じることはできるのでしょうか? 「a.txt」をインポートしたファイルを保存してしまえばいいことはわかっているのですが、あくまでインポートした直後の状態で「a.txt」を削除する手段を探しています。

  • 【マクロ】セル内のテキストを隣のセルにハイパーリンクしたい

    マクロ初心者です。過去の質問を検索したのですが、同様なものが見つかりませんでしたので、新たに質問させていただきます。 エクセルで、A1セルに入力されたテキスト(ファイル名)を、隣のB1セルのテキストにハイパーリンクしようと思います。 ※セルは全部で1000行程度 ※A列セルのテキスト内容は全て同じ文字数で、テキストの途中で4桁のみ内容が変わる ※実際の例をあげると次のような感じです。 A1→あいうえお/at0****.xdw B1→かきくけこ(※文字数はバラバラ) A2→あいうえお/at0****.xdw B2→さしすせそたちつてと 試しにマクロの自動記録を使ってみたのですが、マクロにテキスト内容が記録されてしまい、他のセルで実行するとテキスト内容が上書きされてしまいます(当たり前ですが・・・)。 初心者なりに学習しながら答えを見つけなければと思うのですが、毎回急を要する時にしかマクロを使わないため、上達しません。頼ってばかりで申し訳ないのですが、ご教授いただけると助かります。よろしくお願いいたします。

  • 指定ファイル内の指定場所へセルの内容を記載したい

    エクセルマクロ初心者です。 今、指定ファイル内の指定場所へセルの内容を記載するマクロを考えています。 指定ファイルは.txtではなく、Notepadやメモ帳等で開くことができるファイルです。 仮にtest.abc(拡張子が.abc)とします。 先ほどセルといいましたが、正確にはA列、B列です。行は複数ありA列とB列の行数は同一です。 i=1から始まり、空白行まで進んだら処理は終了です。 指定ファイルの存在場所は決まっています(C:\temp\test.abc)。 test.abcは下記のようにフォーマットとして決まっており、セルA1の内容、セルB1の内容を記載したらセルA2、セルB2の内容を記載していく・・・。としたいです *set(1) *creat(1) "" *input("#abc"," セルA1の内容 ",1,2,3) *mark(1) *name(comp,"abc"," セルB1の内容 ") *sel(0) *set(1) *creat(1) "" *input("#abc"," セルA2の内容 ",1,2,3) *mark(1) *name(comp,"abc"," セルB2の内容 ") *sel(0) *set(1) *creat(1) "" *input("#abc"," セルA3の内容 ",1,2,3) *mark(1) *name(comp,"abc"," セルB3の内容 ") *sel(0) セルの内容をベタ書きするというのは検索すると出てくるのですが、ファイル内の指定場所に書き込むというのが、応用が利かずどうにも分かりません。 どうぞご教示下さい。宜しくお願い致します。

  • .xlsxのセルに.txtの文字wコピーするVBA

    テキストファイルの テキスト.txtにおいて 文字列が <a>A<b>B という文字列があるとしまして エクセルマクロを使って エクセルファイルのM.xlsxを作成して そのエクセルファイルのA1セルに テキスト.txtの 文字Aをコピーし また同様に M.xlsxのエクセルファイルのB1セルにテキスト.txtの 文字Bをコピーする そういう操作をするVBAコードを 御教示いただけますでしょうか よろしくお願い致します win10 office365

  • 1行単位のデータをテキストファイルに保存するマクロ

    エクセルに入力済みの連続したデータを1行単位で以下のような内容でテキストファイルを作成し、 かつテキストファイル名を、セルに入力されている文字を使って保存するマクロを作りたいのですが、 どのようにしたら良いのでしょうか?よろしくお願いします。 *エクセルシート (ファイル名:aaa.xls シート名:sheet1 エクセルシートがあるフォルダ名:yyy) _|A |B |C | 1|x |y |z | 2|a1|a2|a3| 3|b1|b2|b3| *テキストファイル(保存するフォルダ名:zzz) ---テキストファイルの内容(ファイル名:a1.txt) x a1 y a2 z a3 --- ---テキストファイルの内容(ファイル名:b1.txt) x b1 y b2 z b3 --- エクセルはExcel2000でWindows2000を使用しております。

  • エクセルのセルをテキストファイル出力する方法教えてくれませんか。

    初心者ですが、 どなたか、エクセルのセル1つを、 テキストファイル出力できる方法をご存知ですか? 詳細には、 エクセルファイルの列Aの内容がテキストファイル名で、 列Bの内容が本文であるテキストファイル出力を 約3000個、順次したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、 002.txtは本文が「かきくけこ」、 003.txtは本文が「さしすせそ」というように、 エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • ワークシートの内容をテキストファイルに書き込む際に、テキストファイルでは改行が”↑”と表示されるだけで困っています

    エクセルのデータをテキストファイルに出力させたいのですが、テキスト出力の際に"↑"が表示されるだけで改行がうまくできません。 マクロの組み方でアドバイスをいただけないでしょうか? ------------------------------ <↓具体的に、、、、。> ・エクセルデータは、同一セル内に改行させたデータがあります。      列A   列B   行1 No,1  1-111111              1-1111       行2 No,2  2-2222    ←セル"B1"と"B2"のデータを     2-22222    テキストでも改行させて表示したい。 ・テキストでは、下記のように出力させたい ◆No,1 1-111111 1-1111 ◆No,2 2-2222 2-22222 ---------------------- <↓私が試しているコードです。> 'Test.txt 開く Open "C:\Test.txt" For Output As #File_Number '列Aのセルに空白文字列が入るまで、処理を繰り返す i = "3" Do While Worksheets("sheet1").Cells(i, 1) <> "" Print #File_Number, "◆" & Cells(i, 1) Print #File_Number, Cells(i, 2) i = i + 1 Loop 'Test.txt を閉じる Close #File_Number このマクロだとテキストでは ◆No,1 1-111111↑1-1111 ◆No,2 2-2222↑2-22222 となります。 アドバイスの程、よろしくおねがいします。

専門家に質問してみよう