• ベストアンサー

(VBA) 保存できない

指定ディレクトリー(TurgetFolder)に保存しようとして  下記のコードを利用していますが、エラー(1004)が出ました。  添付画像参照下さい(丸数字有り) ------------------------- 'テキストデータにしたいシートを新しいブックとして作成し、そちらからテキストファイルを作成する Ws2.Copy ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText ---------------------------- ①、②、④はエラー原因では無かった。 原因は、③で  フォルダー名に [ ] (左カッコ、 右カッコ)  を利用した事でした。  でもフォルダー名及びファイル名に同じ [ ]  があっても読み取り時は問題なく処理されます。 使用してはいけない文字があっても   他に保存する方法ありますか ? 例えば、  事前にダメ文字を書き換えて保存するとか ? EXCELの仕様で難しいのであれば諦めます。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.5

> コードにある \temp\FName.txt 相当のファイルを削除したいので >  以下のURLを参考にしましたが >   書き込み禁止となって上手くいきませんでした。 開いているので削除(DeleteFile)も移動(Move)もできませんから ActiveWorkbook.SaveAs のあとにすぐ ActiveWorkbook.Close とするか なにか操作をするのでしたら操作の後に Workbooks(FName & ".txt").Close で閉じてみてください。

NuboChan
質問者

補足

削除問題にも回答いただき感謝します。 >ActiveWorkbook.SaveAs >のあとにすぐ >ActiveWorkbook.Close >とするか とコメントを頂いたので、下記のようなコードにしました。 ---------------------------------------------------- STOP 'FNameをTEXTで書き出した後で 1階層下(TurgetFolder)へもコピー Set fso = CreateObject("Scripting.FileSystemObject") ActiveWorkbook.SaveAs Filename:="C:\Users\Nubo\Downloads\temp\" & FName & ".txt", FileFormat:=xlText  <-- マーク ActiveWorkbook.Close Call fso.copyFile("C:\Users\Nubo\Downloads\temp\" & FName & ".txt", TurgetFolder) Kill "C:\Users\Nubo\Downloads\temp\" & FName & ".txt" Set fso = Nothing End Sub --------------------------------------------------- STOP まで処理が進み、停止後に  F8でステップインで1行ずつトレースしていきました。  コード中の <-- マーク まで進んだ時点で  添付画像の選択画像が出た後で保存、   保存しないのいずれを選択(クリック)しても  直後に先の添付画像(10:24)のような状態に至ります。 添付画像(選択) https://imgur.com/MGsOHPB  この時点でVBAの画面には何も表示されていないので   トレースも何も出来なくなり、   エクセル画面の右上のXで閉じるしか選択肢が無くなります。    やはり、ActiveWorkbook.Close を記載すると上手くいきません。 又、コメントの解釈に誤りがありますか ?

その他の回答 (9)

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.10

>  考え方を分かりやすく解説されているURLなどを 分かりやすいかどうかは分かりませんが シートのコピーに関して簡素にまとめられています。 コピーの後にどこがアクティブになるのかの説明もあります。 VBA シートをコピーする https://www.tipsfound.com/vba/10004

NuboChan
質問者

お礼

kkkkkmさん、サンプルマクロで  どんな状況になるか視覚的に理解できたので    たいへん勉強になりました。    (個人的に視野が広くなる案件です。) https://imgur.com/sqcMXu2      >エクセルの画面をフル画面で見ていると分からないかもしれませんから、 >エクセルをモニタより小さくして確認してください) 今回もエクセル画面を大きく表示していたので  全く気が付いていませんでした。   VBAの画面で    左側のVBAProjectをチェックしていれば    BOOKが追加で作成されているのを確認できたはずですが    全くスルーしてマクロコードの画面しか見ていませんでした。 教えてもらった「VBA シートをコピーする」を参考に   もう少し調べてみます。 ----------------- 今回も大変参考になりました。  改めて、協力に感謝いたします。

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.9

No8の補足です。 Testを実行した後でBook1を選択するとActiveWorkbookはBook1になります。

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.8

> (Ws2.CopyでActiveWorkBookが >     ThisWorkBookでは無くなって >      処理対象が移行されるような認識ですか ?) はい 新しいブックを1個だけ開いて Sub Test() MsgBox "This = " & ThisWorkbook.Name & vbCrLf & "Active = " & ActiveWorkbook.Name Sheets("Sheet1").Copy MsgBox "This = " & ThisWorkbook.Name & vbCrLf & "Active = " & ActiveWorkbook.Name End Sub を実行してみてください。 Sheet1のコピーが新しいブックとして出来上がります。(今回の質問でしたらWs2のシートのコピーが新しいブックとして出来上がる) マクロのある方がBook1で新規がBook2です。実行するたびに新規はBook2はBook3,Book4・・・と変化していきます。 (エクセルの画面をフル画面で見ていると分からないかもしれませんから、エクセルをモニタより小さくして確認してください) MsgBoxの結果でActiveWorkbookが移行したのがわかると思います。

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.7

> ws2.copyを現在のコードの最初に追加すると >  先の添付画像(10:24)のような状態になることなく >   正常に終了して削除すべきファイルも削除されました。 過去にWs2.Copyについては 2021/09/18 11:08 回答No.4 にて 質問では Ws2.Copy ActiveWorkbook.SaveAs ですので、以下略 と、ふれてます。

NuboChan
質問者

お礼

kkkkkmさんは、  Ws2.Copyが存在するものとしてのアドバイスされていて 初心者の(無知な)私は、それを認識していないことが  ボタンのかけ違いの大きなミスを招く結果になりました。 長々と説明がされているのに   理解が追いつかずすいません。  kkkkkmさんは、  >Ws2.Copy  >がありコピーしたシート(Ws2はシートだと思います)でできた  >新規ブックがActiveな状態の時に保存(ActiveWorkbook.SaveAs )しているわけではないのですか  >でなければActiveWorkbookはThisWorkbookと同じになると思います。 とコメントされています。 私の認識では、  ThisWorkBookは、   現在マクロを実行しているワークブック  ActiveWorkBookは、   複数のブックを処理対象にしている場合に   現在、操作対象としているワークブック  との認識でした。 以下は今回の質問で  素人の勝手な想像(認識)ですが  意見をお聞かせください。  今開いているEXCELファイルは一つで   処理するブックも一つなので   ThisWorkBook=ActiveWorkBook  と思っていたのですが、  Ws2.Copyがあると    処理するブックが違う     ThisWorkBook=ActiveWorkBook    の関係が崩れる。  (Ws2.CopyでActiveWorkBookが     ThisWorkBookでは無くなって      処理対象が移行されるような認識ですか ?) ----------------------------------- 素人の私には理解不足が甚だしいのですが、  考え方を分かりやすく解説されているURLなどを  ご存じなら紹介ください。   

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.6

質問に Ws2.Copy がありコピーしたシート(Ws2はシートだと思います)でできた新規ブックがActiveな状態の時に保存(ActiveWorkbook.SaveAs )しているわけではないのですか でなければActiveWorkbookはThisWorkbookと同じになると思います。

NuboChan
質問者

お礼

kkkkkmさん、  やっと先の添付画像(10:24)のような状態になる原因がわかりました。 最初の質問では、下記のコードでした。 ------------------------- 'テキストデータにしたいシートを新しいブックとして作成し、そちらからテキストファイルを作成する Ws2.Copy ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText ---------------------------- で現在のコードは、教えてもらった下記のコードです。 --------------------------------------------------- 'FNameをTEXTで書き出した後で 1階層下(TurgetFolder)へもコピー Set fso = CreateObject("Scripting.FileSystemObject") ActiveWorkbook.SaveAs Filename:="C:\Users\Nubo\Downloads\temp\" & FName & ".txt", FileFormat:=xlText  <-- マーク ActiveWorkbook.Close Call fso.copyFile("C:\Users\Nubo\Downloads\temp\" & FName & ".txt", TurgetFolder) Kill "C:\Users\Nubo\Downloads\temp\" & FName & ".txt" Set fso = Nothing --------------------------------------------------- つまり、  Ws2.Copy は 削除していました。 (------ と ---------- の間に囲まれたコードを    単純に入れ替えていました。) ws2.copyを現在のコードの最初に追加すると  先の添付画像(10:24)のような状態になることなく   正常に終了して削除すべきファイルも削除されました。

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.4

>  TurgetFolderには、過去に教えてもらった下記のコードで >    C:\Users\Nobu\Downloads\temp\ が代入されていますが でしたら >  フォルダー名に > [ ] (左カッコ、 右カッコ) >  を利用した事でした。 は無いと思いますが…。申し訳ないですが、理解が及びません。 >  ActiveWorkbook.Closeの為だと思うのですが 質問では Ws2.Copy ActiveWorkbook.SaveAs ですので、SaveAsの後に他のブックをActiveにしない限り(SaveAsの後にActiveWorkbook.Closeを即実行など)シートコピーされた新規ブックが閉じるだけだと思います。 また ActiveWorkbookを閉じられない場合 fso.copyFile か ActiveWorkbookを閉じられた後 fso.moveFile どちらかでいいと思います。

NuboChan
質問者

お礼

チェックが不足ですいません。  TurgetFolderには   C:\Users\Nobu\Downloads\temp\ ではなく  1階層したの   C:\Users\Nubo\Downloads\temp\The One [Full]¥  でした。 >ActiveWorkbookを閉じられた後 >fso.moveFile 上記コードは削除して >ActiveWorkbookを閉じられない場合 > fso.copyFile 上記コードのみ残したら  先の添付画像(10:24)のような状態には成らなくなりました。 (正常に終了します。) 反対に  私の検証不足や他のコードの影響があるのかもしれませんが    copyを削除してmoveを残すコードでは先の添付画像のようになるようです     一応やりたいことはcopyの方を残すで出来ましたので万々歳です。) 又しばらく、解決にはしないので  何かコメントあればお願いします。 ------------------------- 追伸 --------------------- コードにある \temp\FName.txt 相当のファイルを削除したいので  以下のURLを参考にしましたが   書き込み禁止となって上手くいきませんでした。 https://www.tipsfound.com/vba/18006 https://hosopro.blogspot.com/2017/06/excel-vba-file-delete.html 善後策ですがEXCELを終了して手動でファイルを削除するようにしました。 ファイルの削除は、  今回の相談内容とは違う内容になるので   削除できない件については、Pending扱いとさせて下さい。 以下現在のコードです。 ----------------------- 'FNameをTEXTで書き出す > 1階層下(TurgetFolder)へコピー Set fso = CreateObject("Scripting.FileSystemObject") ActiveWorkbook.SaveAs Filename:="C:\Users\Nubo\Downloads\temp\" & FName & ".txt", FileFormat:=xlText Call fso.copyFile("C:\Users\Nubo\Downloads\temp\" & FName & ".txt", TurgetFolder) Set fso = Nothing

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.3

> setの後で、 > ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText > で保存=作成 ?を行うとダメ文字が存在してもエラーが出ないとの事でしょうか ? いえ、それでは駄目なので No2の ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText は ActiveWorkbook.SaveAs Filename:="C:\temp\" & FName & ".txt", FileFormat:=xlText でした なのです。No1で変更する前のコードをコピペしてたのでNo2で訂正しました。 一旦tempフォルダに保存してTurgetFolderにコピー(移動)するというコードです。

NuboChan
質問者

お礼

回答ありがとうございます。 ActiveWorkbook.SaveAs Filename:= で  TurgetFolderでは無く"C:\Users\Nobu\Downloads\temp\”とすればエラー無く処理できました。 実際は、  TurgetFolderには、過去に教えてもらった下記のコードで    C:\Users\Nobu\Downloads\temp\ が代入されていますが    変数(TurgetFolder)では無く、ちゃんと「C:\Users\Nobu\Downloads\temp\」と明示して    コードに記入しないといけないのですね。 ------------------------------------------------------------- 'フォルダーを一覧から選択 (自由に選べること) With Application.FileDialog(msoFileDialogFolderPicker) If .Show = True Then If Len(.SelectedItems(1)) = 3 Then ' c:\の場合とサブフォルダーの場合 TurgetFolder = .SelectedItems(1) Else TurgetFolder = .SelectedItems(1) & "\" End If End If End With -------------------------------------------------------------- 処理事体は下記コードで上手く出来たのですが、  ActiveWorkbook.Closeの為だと思うのですが  起動していたエクセル(.xlsm)がCTR画面から消えて  (添付画像参照ください。) https://imgur.com/WnfY4RD   C:\Users\Nobu\Downloads\temp\ に 新しく今まで起動していたエクセル(.xlsm)が作成(コピー?)されていました。 CTRから消えた時点で、一瞬何が起こったのか焦りました。 これを精神安定上良い方向に出来ないのでしょうか?  (具体的には、どんなのが良いのかはアイデアはありません。) --------------------------------------------------------------   'テキストデータにしたいシートを新しいブックとして作成し、そちらからTEXTを作成する Set fso = CreateObject("Scripting.FileSystemObject") ActiveWorkbook.SaveAs Filename:="C:\Users\Nobu\Downloads\temp\" & FName & ".txt", FileFormat:=xlText Call fso.copyFile("C:\Users\Nobu\Downloads\temp\" & FName & ".txt", TurgetFolder) ActiveWorkbook.Close Call fso.moveFile("C:\Users\Nobu\Downloads\temp\" & FName & ".txt", TurgetFolder) Set fso = Nothing --------------------------------------------------------------

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.2

ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText は ActiveWorkbook.SaveAs Filename:="C:\temp\" & FName & ".txt", FileFormat:=xlText でした あと、ActiveWorkbookを閉じた後でしたらMoveが使えます。 ActiveWorkbook.SaveAs Filename:="C:\temp\" & FName & ".txt", FileFormat:=xlText ActiveWorkbook.Close Call fso.moveFile("C:\temp\" & FName & ".txt", TurgetFolder)

NuboChan
質問者

補足

kkkkkmさん、回答感謝します。 教えてもらったコードがどんな事をするのか ? 調べてみました。 >CreateObject("Scripting.FileSystemObject") VBAでファイルやフォルダを操作する(作成、削除、移動、コピー等)ときには、 「FileSystemObject」というオブジェクトを使用しないといけない。 では、Excel上に存在しない外部オブジェクト「FileSystemObject」を 使用するのにCreateObject 関数を使用する。 setで変数「FSO」をFileSystemObjectとして使うことが出来るようにする setの後で、 ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText で保存=作成 ?を行うとダメ文字が存在してもエラーが出ないとの事でしょうか ? で次の.copyFile( の存在意味も理解が出来ません。 どういう原理で処理できるのか、 解説願えれば嬉しいです。 ------------------------------------------- Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText Call fso.copyFile("C:\temp\" & FName & ".txt", TurgetFolder) Set FSO = Nothing ------------------------------------ ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText は ActiveWorkbook.SaveAs Filename:="C:\temp\" & FName & ".txt", FileFormat:=xlText でした あと、ActiveWorkbookを閉じた後でしたらMoveが使えます。 ActiveWorkbook.SaveAs Filename:="C:\temp\" & FName & ".txt", FileFormat:=xlText ActiveWorkbook.Close Call fso.moveFile("C:\temp\" & FName & ".txt", TurgetFolder)

  • kkkkkm
  • ベストアンサー率65% (1601/2437)
回答No.1

一旦tempフォルダに保存して Scripting.FileSystemObject 利用でコピーすればいかがでしょう Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") ActiveWorkbook.SaveAs Filename:=TurgetFolder & FName & ".txt", FileFormat:=xlText Call fso.copyFile("C:\temp\" & FName & ".txt", TurgetFolder)

関連するQ&A

  • エクセルファイルをフロッピーに保存するマクロで教えて下さい

    今、フロッピーにファイルを保存する為のマクロを創っているのですが ワイルドカードの使い方を教えて下さい ここから***** Sub フロッピー保存() ' ' Dim fNAME As String fNAME = ActiveWorkbook.Name 'アクティブなブックのファイル名を取得 'ファイルが新規に作成された場合の処理(book1,book2等と成っている場合) If fNAME = "Book*" Then fNAME = Application.InputBox(prompt:="新規ファイルですね。ファイル名を入力して下さい", _          Title:="新規ファイル入力", Type:=2) Else ActiveWorkbook.Save End If '取得したファイル名でフロッピーディスクに保存 ActiveWorkbook.SaveAs Filename:="A:\"&fNAME, _    FileFormat:=xlNormal, _ Password:="",WriteResPassword:="",ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub ここまで***** >>'ファイルが新規に作成された場合の処理(book1,book2等と成っている場合) >> If fNAME = "Book*" Then この、If fNAME = "Book*" Then が有効に働いていないみたいなんです。 「ワイルドカード・・・* や ? はマクロではどの様な書式が正しいのでしょう それと、エラー処理なんですが InputBoxメソッドでキャンセルやファイル名を入力しないで「OK]が押された 場合の処理、又フロッピーが挿入されていなかった場合などの エラー処理の対処法を教えて下さい

  • ExcelVBAでテキスト保存

    ExcelVBAを使って、ワークシートをテキストファイルに保存しようとしています。 CSV形式で保存するときは、   Sheets("test").Activate   ActiveSheet.SaveAs Filename:=ActiveSheet.Name & ".csv", _     FileFormat:=xlCSV, CreateBackup:=False でtest.csvに保存できますが、 単純にテキストファイルとして保存したいときに   Sheets("test").Activate   ActiveSheet.SaveAs Filename:=ActiveSheet.Name & ".txt", _     FileFormat:=xlText, CreateBackup:=False としても、実行時に下記のエラーになってしまいます。   実行時エラー '1004'   アプリケーション定義またはオブジェクト定義のエラーです。 どうしたらよいのでしょうか? また、CSVで保存した時も開いているファイルがtest.csvに変わってしまいますが、できれば、開いているファイルは元のファイルのままでシートだけを保存するにはSaveAsメソッドではなく、他のメソッドを使うのでしょうか? (hogehoge.xlsのtestシートを保存してもhogehoge.xlsが開いたままにしたい) 以上、宜しくお願いします。

  • ActiveWorkBook VBA

    Sub test() Dim myCSV As String Dim Fname As Variant Dim Aname As String Dim Fullp As String Application.ScreenUpdating = False Fullp = ActiveWorkbook.FullName Pos = InStrRev(Fullp, "\") Fname = Left(Fullp, Pos) myCSV = Dir(Fname & "*.csv") Do Until myCSV = "" Workbooks.Open Fname & myCSV Aname = Left(Fullp, InStr(1, Fullp, ".") - 1) ActiveWorkbook.SaveAs filename:=Aname & ".xls", FileFormat:=xlExcel9795 ActiveWorkbook.Close myCSV = Dir() Loop Kill Fname & "*.csv" End Sub あるフォルダにあるcsvファイルをxlsで保存したいと思いましたが、アクティブになるBOOKがバラバラ? で、うまくいきません。csvファイルを開いたときに そのファイルがアクティブになり、うまくloopできないでしょうか?

  • Word 2016 VBA で保存できない

    仕事で月次報告をするのですが、報告書が Word のファイルであり、ファイル名のパターンが決まっているため、VBA でファイル名を生成し、VBA のコードで指定したパスにファイル保存させたいと考えています。 そこで、いろいろと調べて以下のコードを作ってみたのですが、保存する際に [実行時エラー 5152: ファイル名が正しくありません] と表示されます。 試しに以下のコードのうち、ファイルの保存先のパスと保存するファイル名を & でつなぎ Msgbox で表示したところ、ファイルの保存先とファイル名は意図したとおりに生成されています。 SaveAs メソッドに問題があるのではないかと考えていますが、ちょっとこれ以上は私では対処することができませんでした。 恐縮ですが、エラーを回避し、意図したパスに自動的にファイル名を生成して保存できるようにするためのコードを教えていただきたく思っています。よろしくお願いします。 以下は私が作成したサンプルです。 ------------------------------------------------- Sub 保存() 'レポート対象月の取得 dtDate = Format(Date, "yyyymm") '保存先フォルダーの指定 dtSaveFolder = "C:\Users\UserName\Documents\" & Year(Date) & "\" 'ファイル名の指定 dtSaveFileName = "XXXX" & dtDate & "YYYY.docx" '保存の実行 ThisDocument.SaveAs FileName:=dtSaveFolder & dtSaveFineName, FileFormat:=wdFormatDocument End Sub -------------------------------------------------

  • エクセル VBA 保存したCSVファイルについて

    いつもお世話になっています。 早速ですが カンマ区切りのテキストファイルをカンマ区切りで読み込んだあと変更を加え ActiveWorkbook.SaveAs Filename:="Book2.csv", FileFormat :=xlCSV, CreateBackup:=False で保存したものを メモ帳などで開いた時に 不要な箇所にカンマの不要な箇所に沢山カンマが付いてしまいます。 M列まであるのでその分の空白もカンマ区切りで保存されてのだと思うのですが これを、不要な部分の空白を除いた形で保存する方法は無いでしょうか? どうぞよろしくお願いします

  • Excel マクロのsaveasでファイル保存の方法で教えて下さい

    Excel2003で、USBメモリ上の2つのファイル(マクロを保存したmacro.xls及び作業を行うsagyo.xls)を開き、マクロをかけて、最後にxlsファイル形式で上書き保存したいのですが、 (1)ActiveWorkbook.Save で、上書き保存を行うと、なぜかUSBメモリ上にhtmlファイル保存されてしまいます。このため、xlsファイル形式保存をあえて明示し、saveasの既定値であるxlWorkbookNormalを指定し、 (2)ActiveWorkbook.SaveAs , FileFormat:=xlWorkbookNormal とすると、(カレントフォルダである)マイドキュメントに保存されてしまいます。 Q1.(1)のようになる原因は何でしょうか? Q2.USBメモリは、他のPC環境でも使うので、「saveas "F:\sagyo.xls"」などとドライブ指定せずに使いたいのですが、USBメモリ上に上書き保存するマクロの書き方はないでしょうか?

  • EXCEL VBAでカンマ区切りテキストファイルに変換する方法

    EXCELで作成したシートをVBAでカンマ区切りテキストファイル(CSVファイルではなく)に変換する方法を教えてください 下記のプログラムではテキストファイルに変換されますが、カンマ区切りになりませんでした。 Sub Samp() ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\aa.txt", FileFormat _ :=xlText, CreateBackup:=False End Sub

  • 「変更を保存しますか?」と聞かれたくない。

    現在のファイルと同名のCSVファイルを作成したいのですが、 Sub CSV作成() Dim MyFileName As String MyFileName = ActiveWorkbook.FullName MyFileName = Left(MyFileName, Len(MyFileName) - 5) Workbooks.Add ActiveWorkbook.SaveAs Filename:=MyFileName & ".csv", FileFormat:=xlCSV ActiveWorkbook.Save ActiveWindow.Close End Sub をしたときに、「変更を保存しますか?」と聞かれます。 保存しますか?と聞かれても、無条件で保存したいし、そもそも変更してないのに、 なんで聞かれてるのかわかりません。 保存する方法を教えてください。ご回答よろしくお願いします。

  • VBAでのCSV保存

    VBAでExcelのデータを保存したく、 ActiveSheet.SaveAs _ Filename:=xxxxx, _ FileFormat:=xlCSV といった感じにしています。 ほぼこの方法で問題ないのですが、なぜか変形してしまう データがあります。 文字列として2004/6/18といった形で入力しているデータが 6/18/2004のように変化してしまいます。 FileFormatを指定しなければ、2004/6/18のままですが、 それではCSVファイルになりません。 どうしたらいいのでしょうか?

  • VBA でフロッピーに保存が時間かかりすぎる

    excel2000を使用し VBAで フロッピーディスクへの保存 ChDir "A:\" ActiveWorkbook.SaveAs Filename:="A:\請求台帳.xls",FileFormat:=xlNormal のマクロを実行したところ物凄い時間がかかります。 普通に送るから実行するとものの20秒もかかりません。 どうしてかよくわかりません。 フロッピへ送るフアイルは980MB程度です。 よろしくお願いします。

専門家に質問してみよう