Page 526 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼拡張子をつけずに保存するには? ふじ 03/1/9(木) 15:12 ┣Re:拡張子をつけずに保存するには? ichinose 03/1/9(木) 16:07 ┃ ┗もう少し教えていただけますか? ふじ 03/1/9(木) 17:45 ┃ ┗Re:もう少し教えていただけますか? ポンタ 03/1/10(金) 2:18 ┃ ┗Re:もう少し教えていただけますか? りん 03/1/10(金) 8:03 ┣Re:拡張子をつけずに保存するには? JuJu 03/1/9(木) 17:08 ┃ ┗Re:拡張子をつけずに保存するには? ふじ 03/1/9(木) 17:40 ┗ありがとうございました!出来ました! ふじ 03/1/10(金) 11:53 ─────────────────────────────────────── ■題名 : 拡張子をつけずに保存するには? ■名前 : ふじ ■日付 : 03/1/9(木) 15:12 -------------------------------------------------------------------------
ファイルの拡張子をつけずに保存するには? はじめて質問させていただきます。 複数シートを持つエクセルファイルを一度保存してから、シートごとに テキスト形式(スペース区切)で、フロッピーディスクに保存したいと思っています。 ただ、テキスト形式にはしたいのですが、拡張子(.prn)は付けないように したいのですが、可能でしょうか? なぜかと言うと、FDに保存したデータを会社のオンライン(とっても古い!)に 自動登録したいのですが、拡張子がついていると自動登録が行えないのです。 今は以下のマクロを使い、拡張子は「マイコンピューター」などでファイル一覧を 表示し、「名前の変更」で「.prn」部分を削除する、という非常にまどろっこしいやり方をしています。 超初心者なので、質問の仕方にも不足があると思います。もし、これだけでは助言しようが ない、ということであればその旨ご指摘ください。 よろしくお願いします。 Sub オンライン用データ保存() ActiveWorkbook.Save Sheets("Fmdata01").Select ActiveWorkbook.SaveAs Filename:="A:\fmdata01", _ FileFormat:=xlTextPrinter, CreateBackup:=False Sheets("Szai-ind").Select ActiveWorkbook.SaveAs Filename:="A:\Szai-ind", _ FileFormat:=xlTextPrinter, CreateBackup:=False Sheets("内訳書").Select MsgBox ("FD内に保存されたファイルの拡張子(.prn)を削除してください!!") ActiveWindow.Close End Sub |
▼ふじ さん: こんにちは。 >ファイルの拡張子をつけずに保存するには? >「名前の変更」で「.prn」部分を削除する、という非常にまどろっこしいやり方をしています。 ここをマクロを使用して名前の変更を行うのはどうでしょうか? HELPより、 ファイルまたはフォルダの名前を変更します。 構文 Name oldpathname As newpathname Name ステートメントの構文は、次の指定項目から構成されます。 指定項目 内容 oldpathname 必ず指定します。名前を変更するファイル名を示す文字列式を指定します。フォルダ名およびドライブ名も含めて指定できます。 newpathname 必ず指定します。新しいファイル名を示す文字列式を指定します。フォルダ名およびドライブ名も含めて指定できます。引数 newpathname には、既に存在しているファイル名は指定できません 一旦ブックは、閉じてからこのステートメントで名前を変えるというのはどうでしょうか? >Sub オンライン用データ保存() > > ActiveWorkbook.Save > > Sheets("Fmdata01").Select > > ActiveWorkbook.SaveAs Filename:="A:\fmdata01", _ > FileFormat:=xlTextPrinter, CreateBackup:=False > > Sheets("Szai-ind").Select > > ActiveWorkbook.SaveAs Filename:="A:\Szai-ind", _ > FileFormat:=xlTextPrinter, CreateBackup:=False > > Sheets("内訳書").Select > > MsgBox ("FD内に保存されたファイルの拡張子(.prn)を削除してください!!") > > ActiveWindow.Close > >End Sub |
▼ichinose さん: >ここをマクロを使用して名前の変更を行うのはどうでしょうか? >HELPより、 >ファイルまたはフォルダの名前を変更します。 > >構文 > >Name oldpathname As newpathname > >Name ステートメントの構文は、次の指定項目から構成されます。 > >指定項目 内容 >oldpathname 必ず指定します。名前を変更するファイル名を示す文字列式を指定します。フォルダ名およびドライブ名も含めて指定できます。 >newpathname 必ず指定します。新しいファイル名を示す文字列式を指定します。フォルダ名およびドライブ名も含めて指定できます。引数 newpathname には、既に存在しているファイル名は指定できません > >一旦ブックは、閉じてからこのステートメントで名前を変えるというのはどうでしょうか? 早速教えていただいてありがとうございます! すみません。私本当に超初心者なので、ichinoseさんがコメントしてくださった内容をどうやってやったらいいかがさっぱり分からないのです。 エクセル上での操作ではないんですよね・・・? なのでJuJuさんのご提案の方法を試してみて、出来なかったらもうすこし詳しく教えていただきたいのですが。 出来たかどうかは明日以降にもう一度ご報告します! お手数おかけしますがよろしくお願いします。 |
横から失礼します。 FileSystemObjectを使って書いてみました。 テスト環境でお試しください。 Sub オンライン用データ保存() Dim SheetName(2) As String Dim i As Integer Dim objFs As Object Dim objFile As Object SheetName(1) = "Fmdata01" SheetName(2) = "Szai-ind" ActiveWorkbook.Save For i = 1 To 2 Sheets(SheetName(i)).Select Call ActiveWorkbook.SaveAs("A:\" & SheetName(i), xlTextPrinter) Next Sheets("内訳書").Select Call ActiveWindow.Close(False) Set objFs = CreateObject("Scripting.FileSystemObject") For i = 1 To 2 Set objFile = objFs.GetFile("A:\" & SheetName(i) & ".prn") objFile.Name = Replace(objFile.Name, ".prn", "") Next End Sub |
おなじく、横から失礼します。 たくさんのファイルの拡張子を同時に変更したいだけなら。 DOSプロンプトを表示して、 A: REN *.PRN *. で、DOSプロンプトを終了してください。 |
ふじさん、ichinoseさん、こんにちはぁ >ただ、テキスト形式にはしたいのですが、拡張子(.prn)は付けないように >したいのですが、可能でしょうか? > ActiveWorkbook.SaveAs Filename:="A:\fmdata01", _ > FileFormat:=xlTextPrinter, CreateBackup:=False 邪道っぽいですが、 ActiveWorkbook.SaveAs Filename:="A:\fmdata01.", _ FileFormat:=xlTextPrinter, CreateBackup:=False で動くかも。 ただし、SaveAsの拡張子省略には一部バグがあるので、バージョンに依存するのかもしれませんが、私の環境(Windows2000+Excel2000sp2)では動くようです。 ichinoseさんが書かれている通り、名前を変更する方が無難ですね。 ではではぁ |
▼JuJu さん: ありがとうございます。 "A:\fmdata01.", _ 1のあとに.を入れてみればいいのですね? 明日試してみます! 結果、またご報告しますね。 取り急ぎお礼まで。 |
ichinoseさん JuJuさん ポンタさん りんさん 皆様ありがとうございました!出来ました! どのように解決したか結果をご報告させていただきます。 ポンタさんに書いていただいたものを試してみました。 動作環境のせいなのか、結局FDに保存されたファイルには拡張子.prnがついて しまいました。 そこで、JuJuさんご提案の方法を試してみたら、こちらは大丈夫、思い通り 拡張子なしの状態で保存できました。 ただ、ポンタさんに書いていただいたものは、私が作ったものと違って、 無駄のない書き方になっていて、動作も速かったので、最終的にはポンタさんの案を 使わせていただき、そこにJuJuさんの案をプラスして、このようにしてみました。 Call ActiveWorkbook.SaveAs("A:\" & SheetName(i)&".", xlTextPrinter) Set objFs 〜は使わない。 私が作った案では最後に出したくない警告が出てしまっていたのですが、 ポンタさんのものはそれも出ないので、その点も助かりました。 本当にありがとうございました。 また質問させていただきます。 |