- 締切済み
ExcelデータをTxtファイルへ貼り付けるマクロ?について
ExcelのデータでA列(日付データ)、C列(名前)、E列(電話番号)とある会員の電話番号を管理しているデータがあります。毎回このデータをテキストファイルに値貼付けしているのですが、マクロで作成できないでしょうか? このデータは毎回会員数が違うので、データが入力されている行までを選択してテキストファイルへ値貼付けできればありがたいです。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
#2のものです。CSVファイルを作るとして述べます。 シートにコマンドボタンを1つ貼りつける。 そのコマンドボタンをダブルクリックして出てくる コマンドボタンのClickイベントプロシージュアに下記を貼りつける。 デザインモードを脱して、 保存したいシートのセルの範囲を範囲指定して、ボタンをクリック。 Private Sub CommandButton1_Click() Open "c:\my documents\aabb1.csv" For Output As #1 t = Selection.Row b = Selection.Rows.Count For i = t To t + b - 1 a = Cells(i, "A") c = Cells(i, "C") e = Cells(i, "E") Write #1, a, c, e Next i Close #1 End Sub sss",444,"京都" "ddd",555,"名古屋" "ddd",666,"浜松" と言うようなファイルが出来ました。 「シートのセルの範囲を範囲指定させて」保存実感を持たせていますが、それをさせないで、最下行まで保存するなら (略) b = Range("a1").CurrentRegion.Rows.Count For i = 1 To b (略) のようにしてください。
- imogasi
- ベストアンサー率27% (4737/17069)
下記のどれがご希望ですか。 (1)エクセルの1シートデータの「全部を」1本のテキストファイルに保存。 (2)エクセルの1シートデータの「一部を」、1本のテキストファイルに保存。本日分のみなど。 (3)今あるテキストファイルの中間行または最後行以後に、エクセルの1シートデータを全部または一部を挿入。 前日までのテキストファイルに追加。 (4)メモ帳のようなエディタに既存テキスト文書を開いて、任意の行に挿入。 「値貼りつけ」と言う表現からすると(4)のようにも取れるがどれでしょう。 (1)から(4)にしたがって、プログラムが難しくなりそう。#1のご回答は(1)のようですが。
- wakky_tom
- ベストアンサー率40% (20/50)
こんにちは 手続き的な部分をかなり端折っていますが・・・ Sub TXT_Create() Open "Dirve名:Path名\File名" For Output As #1 Do i = i + 1 日付データ = Sheets("シート名").Range("A" & i) 名前 = Sheets("シート名").Range("C" & i) 電話番号 = Sheets("シート名").Range("E" & i) If 日付データ = "" Then Exit Do Print #1, 日付データ, 名前, 電話番号 Loop Close #1 End Sub でいかがでしょう?
補足
回答ありがとうございます。 (2)が希望です。会員データがありその中のA列,C列,E列のデータを貼り付けたいのです。ただ日によって会員数(行)が違います。データが入っている分だけテキストファイルに貼りつけたいのです。