天使と悪魔選手権

初心者です。
Excel2000で決まったテンプレートを使用しています。
必要な情報のみ残したいので
A1のセルとA5~F100までの情報のみ
テキストなどの軽いデータで出力したいです
(区切りはいりません)

コマンドボタンでファイル名を入力して
出力する形がいいのですが出来ますか?

勝手を言って申し訳ないのですが
出来ればマクロの記述をご教授願います。

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/28 22:11

こんな感じ


'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
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/28 22:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!