• ベストアンサー

ExcelVBAを使ってシートの行の情報をテキストファイルに書き込みたいのですが...

ExcelVBAを使ってシートの行の情報をテキストファイルに書き込みたいのですが... (とりあえず、一行分をテキストファイルに書き込みたいです) 色々なサイトを見ても難しそうなことが多く書いてあったので、上記のような例でサンプルを使って(なるべくシンプルな形で)ご教授していただける方がいらっしゃればお願いいたします。

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

  • ベストアンサー
  • hisajiro
  • ベストアンサー率37% (124/329)
回答No.1

Const cnTITLE = "HTMLファイル出力処理" Const cnFILTER = "全てのファイル (*.*),*.*" Dim xlAPP As Application ' Applicationオブジェクト Dim intFF As Integer ' FreeFile値 Dim strFILENAME As String ' OPENするファイル名(フルパス) Dim bufStr As String 'ファイルの内容 Dim GYO As Long ' 収容するセルの行 'A1~?1までセルに文字が無い所までカンマ区切りで変数に格納 GYO = 1 Do If Worksheets("データ入力").Cells(1, GYO).Value = "" Then Exit Do Else strAft = strAft + Worksheets("データ入力").Cells(1, GYO).Value strAft = strAft + "," End If Loop 'ここからファイル操作 ' Applicationオブジェクト取得 Set xlAPP = Application ' 「名前を付けて保存」のフォームでファイル名の指定を受ける xlAPP.StatusBar = "出力するファイル名を指定して下さい。" strFILENAME = xlAPP.GetSaveAsFilename(InitialFilename:="hoge.txt", _ FileFilter:=cnFILTER, Title:=cnTITLE) ' キャンセルされた場合は以降の処理は行なわない If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then Exit Sub ' FreeFile値の取得(以降この値で入出力する) intFF = FreeFile ' 指定ファイルをOPEN(出力モード) Open strFILENAME For Output As #intFF ' レコードを出力 Print #intFF, bufStr ' 指定ファイルをCLOSE Close #intFF とりあえずこれで試してみてください。 あくまで1行分だけです

x20ajus
質問者

お礼

ありがとうございました。 試してみましたが、思ったような動きができました!

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

関連するQ&A

  • テキストファイルの行を指定して読み込み

    テキストファイルの読み込みたい行を指定して テキストボックスに表示させたいのですが、 どのようにすればよいでしょうか? StreamReaderには一行分の文字を読み取るReadLine メソッドがありますが、行は指定はできないようです。 良い方法があればアドバイスを頂きたいです。 よろしくお願いします。 --- 開発環境:VS2005 pro OS:Vista

  • ExcelVBAのマクロを使ってテキストファイルの文字を読み込む

    お世話になります 表題のとおりなのですが、ExcelVBAのマクロを使ってテキストファイルの文字を読み込むマクロの書き方を探しています。 具体的には、ExcelVBAで作ったボタンを押すと、あるテキストファイル(TEST.txt)に書かれている文字列をExcelVBAで取得して、それをセルに表示させるものです。 VBA関連のサイトがあまり無く困っています、宜しくお願いします。

  • ExcelVBAを使ったファイルの保存について

    ExcelVBAを使ってファイルを保存するときの、ファイル名のつけ方について教えてください。 一つのBOOKの中に複数のシートがあり、各々のシートには行数200程度、列数5程度のデーターが入っています。 このデーターを上から10行取り出して別の新規ファイルとして保存、更にその下10行を取り出して別のファイルとして保存、・・・これを5回繰り返す作業をVBAを利用して行っています。 そのときファイル名もVBAを使って付けたいのですが、やり方が良くわかりません。 もう少し具体的に書きます。 例えばシート名が「soft」だったとしたら、最初の10行を取り出したファイル名は「soft1」次の10行分のファイル名は「soft2」というようにシート名に連番を打つような形で新しいファイル名をつけていきたいのです。今は次のような形でInputBoxを開き手入力でファイル名を入れています。 FName = InputBox _ ("ブックを保存します") ActiveWorkbook.SaveAs FName これ以外の、もう少し省力化できる方法があればお教えください。 よろしくお願いいたします。

  • 【Excel】1,2行目+個人行→シート別に分ける

    こんにちは。 行が3000行強、列が110列ほどの名簿があります。 1、2行目は見出しで、「名前」「ID」「部署」・・・・というような感じで、 3行目から個人の情報がズラーーっと並んでいます。 この表の1,2行目+個人の1行を1シートにしたいです。 (つまり3000行を一行ずつ1シートに抽出したいということです) 目的は、「あなたの名簿にはこのような情報がありますよ~」を1枚の紙にまとめて、個人別に配布することです。 10人くらいならまだ手作業でコピペできるんですが、3000人を超えているので、できればマクロや関数で一気に作りたいです。 1,2行目+個人の行を1シートにまとめる技をご教授ください。 また、最終的には印刷しますので、印刷しやすい形にできたらしたいです。 何か案があればよろしくお願いします。

  • テキストファイルについて

     ご教授お願い致します。  あるレコードを自動でテキストファイルへ書きこむ作業がありまして  テキストファイルの保存先名の指定はできるのですが  タイトルをテキスト行の一行目につけたいとの要望がありました。  そのレコードのみの書き込みのため一行目に何の題名かが  自動で表示できればいいとの要望でした。  よって、保存先名を指定の場所でファイル名を作成すると同時に  一行目に指定した題名をつけることが可能でしょうか?  ぜひ、ご回答お願い致します。  

  • ExcelVBAでCSVファイル簡単に取り込む

    ExcelVBAでCSVファイル簡単に取り込むコードを教えてください。 OpenコマンドでCSVファイルを開いて、 自分でカンマ毎に切り分けてセルにセットするやり方はできるのですが、 もっと簡単な方法はありませんか? イメージとしてはExcelの「外部データのインポート」機能が近いのですが この機能を使って取り込むと、何やら余計な情報がくっついてしまうようです。 あくまでテキスト情報だけをセルに貼り付けたいのです。 (ちなみに「外部データのインポート」で都合が悪い点は Ctrl+*で65536行目まで選択されてしまうところです。 何行目までデータがあるか?をCtrl+*で調べているためです。 ・・・Range("A65536").End(xlUp)で調べればいいのかもしれませんが・・・) 何か良いやり方をご存知の方はいらっしゃいませんか?

  • テキストファイル→抽出した行をexcelに

    VBAで、下記のようなログファイルのテキストを読み込んで、必要な文字が含まれる行だけを、エクセルに書き込むコードを教えていただけると助かります。 読み込むファイルの例(実際は、数万行あります) (1行目)dammy.co.jp - - [01/Jan/2015:00:03:51 +0900] "GET /west/index.html      HTTP/1.0" 200 ..... (2行目)smotor.co.jp - - [01/Jan/2015:00:03:51        +0900] "GET /drink/orange/index.html HTTP/1.0" 200 ..... たとえば、/west/ が含まれる行だけを抽出して、excelシートに書き込みたい ログファイルは、改行コードがCRLFです。  どなたかお分かりになる方、お助けください。 当方、VBAは初心者なので、説明も加えていただけると非常に助かります。

  • VBAでテキストファイルのデータを読み込んでExcelで開く+α

    テキストファイルをExcelファイルとして読み込む事が多く、その量に加えデータの並び方が特殊な為困っております。 テキストファイルのデータの並びをExcelで上下逆順に読み込ませるにはどのようにすればいいでしょうか? また、まとめて複数のテキストファイルを上記の状態で自動的にシートごとに分けて出力させたりしたいのですが。 (例-1行目は無視) ---テキストデータ(タブ区切り)--- 0 0 10 02 11 05 02 15 01 20 25 12 15 10 ---Excelシートデータ--- 0 0 12 15 10 01 20 25 05 02 15 10 02 11

  • VBA 開いているシート上にテキストファイルを開く

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Win7+Excel2007 でございます。  今開いております「Book1」上に「シート1」「シート2」があるといたしまして、 「シート2」上に、「C:\ファイル1.txt」(←1000行程ございます)を 「1行ずつ読み込むのではなく、Workbooks.OpenTextのように一度に開く」事は可能でございますでしょうか??  行数が多いのでReadLineをいたしますよりは、何か「開いているエクセルファイル上にテキストファイルをドラッグして開いた時のような方法」はないかな、と検索いたしておりまして、 OpenTextを見つけて試しましたが、新規エクセルファイル上で開いてしまいます。。。  もし何かよさそうな方法がございましたら、是非ともアドバイスいただきたく どうぞよろしくお願いいたします。

  • ExcelVBAでフォルダ内の全csvを開き一行に

    ExcelVBAで、指定フォルダ内の全csvファイルのデータを開き 行列変換して一行毎に並べていきたいのです。 csvファイル数は、処理する時により、増減あります 似たような質問もあるようですが、いくつか見比べるとコマンドが異なってると、混乱してしまい、通しで回答いただけると、理解もできるかと質問させていただきます。 よろしくお願いいたします。 ■操作&データ並べるファイル Sheet:menu こちらに、指定フォルダなど入力、マクロ実行ボタン配置 Sheet:data こちらに、1行づつ、csvファイルのデータを貼り付け ■csvデータ:1001.csv、1002.csv、・・・、1010.csv ■各csvデータ の並び A列 B列  C列 日付 04/01 時間 10:32 番号 1001 A1  OK  0.12 A2  OK  4.92 A3  NG  7.89 B1  0.05 B2  0.95 C1  101.2 C2  95.4 ・  ・ ーーーSheet:data の貼り付け後の並びーーーーーーーーーーーーーー 1001 04/01 10:32 0.12 4.92 7.89 0.05 0.95 101.2 95.4 ・ 1002 04/01 10:45 ・  ・  ・  ・  ・  ・  ・ ・  1003  ・  ・  ・  ・  ・  ・  ・  ・  ・ ・ ・ ・ 1010  ・  ・  ・  ・  ・  ・  ・  ・  ・ ・ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー csvのデータは、3列で100行ほどありますが、 必要なデータの場所は、列が変わったりします

このQ&Aのポイント
  • インクカートリッジを交換したのに「インクカートリッジがありません」と表示される問題について質問します。
  • お使いのプリンターが純正品のインクを認識しないトラブルが発生しています。
  • インクカートリッジを交換した後、プリンターが正常に動作しない問題についての質問です。
回答を見る