• ベストアンサー

自動的にcsvでエクスポートしてくれるマクロ

sheetがいくつかあり、指定したsheetを自動的にcsvで吐き出してくれるマクロを作成中です。 Sub Macro1407() Dim fText As String Open "C:\Documents and Settings\人事ファイ ル.xls" For Input As #1 Open "C:\Documents and Settings\pgotouy\人事 ファイル.csv" For Output As #2 Close #1 Close #2 End Sub これだとうまくいってくれませんでした。どなたかアドバイスお願いします。出来ればついでにxmlで吐き出すマクロについてもお願いします。

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

  • ベストアンサー
  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.2

csvで、はき出す例。 たとえばこんな感じでしょうか。 Dim outPath As String outPath = "C:\Documents and Settings\pgotouy\" Dim sheetNum As Integer sheetNum = 1 Application.Dialogs(xlDialogOpen).Show Sheets(sheetNum).Activate ActiveSheet.SaveAs Filename:=outPath & ActiveSheet.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWindow.Close うまくできますように

その他の回答 (1)

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

こんばんは。 >Dim fText As String >Open "C:\Documents and Settings\人事ファイ ル.xls" For Input As #1 ? XLMファイルをテキスト・インポートしても、バイナリファイルですから、うまく行くとは思えません。 記録マクロで、標準でブックを開いて、それから、シートを決めて、次に、そのシートをCSVフォーマットで保存するようにすれば、できあがるのではないでしょうか? 同じようにして、XLMフォーマットで保存すれば出来上がります。

関連するQ&A

  • Excelマクロで同じブックにCSVを読み込むには

    Excelの指定したシートにCSVファイルを読み込ませたいのですが 以下のVBAマクロを実行すると新しいブックが起動して 新しいブックの方にCSVファイルが読み込まれてしまうのですが これをVBAマクロを実行しているブックの指定のシート(例えばSheet3など)に 読み込ませたいのですがどのように記述すればよいのでしょうか。 よろしくお願いします(Excel2010) Sub Macro1()  ChDir "C:\test"  Workbooks.Open Filename:= "test1.csv" End Sub

  • Excelでファイルを開くをマクロで行いたい

    マクロ初心者です "ファイルを開く"をマクロの記録で記録させると ChDir "C:\Documents and Settings\○○\△△\※※" Workbooks.Open Filename:= _ "C:\Documents and Settings\○○\△△\※※¥LotLog20070131.csv" Windows("●●●.xls").Activate End Sub と記録されます この中で 開きたいファイルネ-ム(上記ならばLotLog20070131.csv)を "●●●.xls"の どこかのセルを参照に開きたいのですが どうすれば宜しいのでしょうか?

  • ExcelVBAでCSVファイル上書き後の読み込み

    マクロ1では元々存在するold.csvファイルを上書きしています。 old.csvはテキストエディタを使い、手で作ったファイルです。 マクロ2では、マクロ1で上書きされたold.csvファイルを読み込み データが終了するまで処理します。 この時、old.csvは存在するのに 実行時エラー '3021' BOFとEOFのいずれかがTrueになっているか、または現在のレコードが削除されています。 要求された操作には、現在のレコードが必要です。 となります。 どなたか解決していただけないでしょうか? Excel2003 SP3です。 どうかよろしくお願いします。 マクロ1 FilePass = "c:\Documents and Settings\デスクトップ\old.csv" A_CONcsv = "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _ "DBQ=c:\Documents and Settings\デスクトップ;" & _ "ReadOnly=1" Call Old_data_UP(StrOld_data, A_CONcsv) 'old.csvファイル出力 Open FilePass For Output As #1 Print #1, StrOld_data Close #1 Function Old_data_UP(FStrOld_data, CONcsv) new_x.csvを読み込みold.csvを更新するための編集をしています。 (old.csvは最初だけ手で作り、次からはマクロ1で更新された物を使いたいです。) 省略します。 End Function マクロ2 FilePass = "c:\Documents and Settings\デスクトップ\new_x.csv" A_CONcsv = "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _ "DBQ=c:\Documents and Settings\デスクトップ;" & _ "ReadOnly=1" A_CONxls = "Driver={Microsoft Excel Driver (*.xls)}; " & _ "DBQ=c:\Documents and Settings\デスクトップ\db\Mydata.xls;" & _ "ReadOnly=1" Call data_match(StrNew_x, A_CONcsv, A_CONxls) 'new_x.csvファイル出力 Open FilePass For Output As #1 Print #1, StrNew_x Close #1 Function data_match(FStrNew_x, CONcsv, CONxls) new.csvとold.csvとMydata.xlsを読み込み new_x.csvを出力するための編集をしています。 new.csvはテキストエディタを使い、手で作ったファイルです。 省略します。 End Function

  • vbsで、フォルダ内にあるcsvファイル全てを開き、マクロを起動させた

    vbsで、フォルダ内にあるcsvファイル全てを開き、マクロを起動させたい。 こんにちは。 お世話になっております。 さて、最初はバッチでどうにかならないかと思っていましたが、下記vbsソースを見つけ、 早速チャレンジしたのですが、ファイルが開くところまではうまく行きますが、「マクロ Macro1がありません」というメッセージが出てしまい、マクロが実行されません。 手動でマクロを実行しようとするときに出てくるマクロ一覧には、PERSONAL.XLS:Macro1と、表示されております。 マクロの保存先をまちがえているのでしょうか? また、あるフォルダのcsvファイル全てに対して1つのvbsキックで処理が行なわれるようにするには、どの様にすればいいでしょうか? よろしくお願いします。 ----------------------------------------------------------------------- Dim obj Set obj = WScript.CreateObject("Excel.Application") obj.Visible = True obj.Workbooks.Open "C:\Documents and Settings\Administrator\My Documents\001.xls" obj.Application.Run "Macro1"

  • VBAマクロ、パスがありませんでとまります。

    Excel2003 VBAのコードを作成して、 実行しましたら ”実行時エラー'76' パスが見つかりません。" と表示されて Open pase ...... の行でとまってしまいます。 なにが原因とかんがえられますか? すいませんが、ご回答よろしくおねがいいたしますm(_ _)m Sub Macro1() Dim strarray() As Variant Dim counter As Integer Dim i As Long pase="C:\Documents and Settings\user\My Documents\" myname=Dir("C:\Documents and Settings\user\My Documents\",vbNormal) Do While myname <> "" If (GetAttr("C:\Documents and Settings\user\My Documents\" &_ myname) And vbNormal) = vbNormal Then ReDim Preserve strarry(counter+1) strarray(counter) = myname counter = counter + 1 End If myname = Dir Loop For i = 1 to counter Open pase & strarray(i) For Input As #1 Do Until EOF(1) ・ '処理 ・ ・ Loop Next i

  • エクセルのマクロについて教えてください。

    エクセルのマクロについて教えてください。 Dドライブのaaaというフォルダにある、何百個あるXLSファイルを開いて、カンマを取った後、CSVに保存したいです。 保存の名前はそのままで、拡張子だけをcsvに変えたいです。 エクセルは初級者レベルなのでプログラムも判らないのですが、自分で作ってみました。 Sub Macro20() ' ' Macro20 Macro ' マクロ記録日 : 2010/4/29 ユーザー名 : ' ' Keyboard Shortcut: Ctrl+e ' Application.ScreenUpdating = False '画面更新を一時停止 CChDir ("D:/aaa") 'フォルダー名取得 Filename = Dir(ThisWorkbook.Path & "\*.xls") 'フォルダ内のXLSファイルを検索 Do Until fname = Empty '全て検索 Set wb = Workbooks.Open(myfdr & "\" & fname) 'そのファイルを開きwbとする。 n = n + 1 'カウントしnとする Workbooks.Open Filename:= _ "C:\Documents and Settings\Owner\My Documents\aaa\1.xls" Cells.Select Selection.NumberFormatLocal = "G/標準" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\Owner\My Documents\aaa\*.csv", FileFormat:=xlCSV, _ CreateBackup:=False fname = Dir 'フォルダ内の次のCSVファイルを検索 Loop '繰り返す Application.ScreenUpdating = True '画面更新一時停止を解除 MsgBox n & "件を処理しましました。" End Sub ↓ 駄目でした>< アドバイスどうかお願い致します。

  • VBマクロで教えて下さい。

    下記VBマクロで上書きしない時はマクロを終了させたいのですがこ指導をお願いします。 Sub Macro2() ' Macro2 Macro ' マクロ記録日 : 2012/9/3  ユーザー名 : HA社    ChDir "C:\Documents and Settings\6464552\デスクトップ"    ActiveWorkbook.SaveAs Filename:= _        "C:\Documents and Settings\6464552\デスクトップ\直送先部品出庫伝票.xls", FileFormat:= _        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _        , CreateBackup:=False  Range("D42:E49").Select    Selection.ClearContents    Range("I32:J32").Select    Selection.Copy    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _        :=False, Transpose:=False    Application.CutCopyMode = False    ActiveWorkbook.SaveAs Filename:= _        "C:\Documents and Settings\6464552\デスクトップ\PPSC部品出庫伝票.xls", FileFormat:= _        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _        , CreateBackup:=False    Application.Quit End Sub

  • VB6 テキストへの書き込み

    VB6 SP6でプログラムを作成中です。 あるテキストボックスに書いた文字列をコマンドを  押すと、#5のテキストへ書き込みたいと思います。コマンドを押すたびに改行させたいのですが、1行目のデータが書き換えられてしまいます。何か良い方法はありませんか? Private Sub Command3_Click() Dim めぐ As String めぐ = Text1.Text Open "C:\Documents and Settings\Owner\デスクトップ\通信データ.txt" For Output As #5 Print #5, めぐ Close #5 End Sub

  • Excel 2010 VBA:ファイル名を読み込む

    下は複数のcsvファイルを一つに合体するVBAです。これにシートの右端に読み取ったファイル名を追加するにはどうしたらよいでしょうか。 よろしくお願いします。 Sub macro1() Dim myPath As String Dim myFile As String Dim s As String myPath = ThisWorkbook.Path & "\" On Error Resume Next Kill myPath & "合体版.csv" On Error GoTo 0 myFile = Dir(myPath & "*.csv") If myFile = "" Then Exit Sub Open myPath & "合体版.csv" For Output As #1 Do Until myFile = "" Open myPath & myFile For Input As #2 Do Until EOF(2) Line Input #2, s Print #1, s Loop Close #2 myFile = Dir() Loop Close #1 End Sub

  • マクロでデスクトップにあるフォルダの中のファイルへリンクさせたい

    エクセルでマクロボタン作成後、ボタンを押せば、デスクトップにあるフォルダの中のファイルへリンクさせるようにしたいのですが。マクロ組んでやりましたができません。なぜなのか教えていただけますか。 リンクするアドレス先→C:\\Documents and Settings\\Owner\\デスクトップ\\指導要綱\\091104\\大阪府\\大阪市 自分が組んだマクロ Sub ボタン4_Click() ' ' ボタン4_Click Macro ' マクロ記録日 : 2010/2/18 ユーザー名 : mako ' Shell "C:\Documents and Settings\Owner\デスクトップ\指導要綱\091104\大阪府\大阪市" End Sub

専門家に質問してみよう