• ベストアンサー

軽いデータで出力

初心者です。 Excel2000で決まったテンプレートを使用しています。 必要な情報のみ残したいので A1のセルとA5~F100までの情報のみ テキストなどの軽いデータで出力したいです (区切りはいりません) コマンドボタンでファイル名を入力して 出力する形がいいのですが出来ますか? 勝手を言って申し訳ないのですが 出来ればマクロの記述をご教授願います。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

こんな感じ 'A1,A5:F100を出力 Private Sub CommandButton1_Click() Dim fso, file, filename Dim x As Range, line, i filename = InputBox("出力ファイル名入力", "ファイル名入力") Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile(ThisWorkbook.Path & "\" & filename, 2, True) 'ファイルが既に在る時上書 file.WriteLine Range("A1").Value For Each x In Range("A5:A100") line = "" For i = 0 To 5 'A~Fまでをつなぐ line = line & x.Offset(0, i).Value Next file.WriteLine line Next file.Close End Sub

mama_mari
質問者

お礼

ありがとうございます。 記録マクロしか使った事が無かったので 色々勉強になりました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

ちょっと他のことをしてたら、#1 のBLUEPIXYさんの内容と同じ方法でした。 >テキストなどの軽いデータで出力したいです >(区切りはいりません) 区切りって、デリミタと呼びますが、何もなくても、やっぱりありますよね。 '第一案: 記録マクロで、Prn 出力してしまう方法ですね。 難しいことを考えないで、Prn 出力ではダメなのですか? 記録マクロの範疇です。 フォームボタンにでも、つけてください。 '第二案: Sub Test_CreateText()  Dim Fname As String  Dim objFSO As Object  Dim objText As Object  Dim myPath As String  Dim buf As String  Dim i As Long  Const Delim As String = " " '区切りはは半角空白  Fname = "Test2.txt" '出力ファイル名  Set objFSO = CreateObject("Scripting.FilesystemObject") 'オブジェクト生成  myPath = ThisWorkbook.Path & Application.PathSeparator  Set objText = objFSO.CreateTextFile(myPath & Fname) 'ファイル生成  With objText   .WriteLine (Cells(1, 1))   For i = 5 To 500    buf = Cells(i, 1) & Delim & Cells(i, 2) & Delim & _    Cells(i, 3) & Delim & Cells(i, 4) & Delim & _    Cells(i, 5) & Delim & Cells(i, 6)    '一旦、配列に入れたほうが速いけれど、今回は、こうします。    .WriteLine (buf)   Next i  End With  Set objText = Nothing: Set objFSO = Nothing  MsgBox "終了しました。" End Sub

mama_mari
質問者

お礼

ありがとうございました。 そのまま使わせて頂きます。

関連するQ&A