プロが教えるわが家の防犯対策術!

フォルダを新規作成して、そのフォルダの中に現在開いているファイルを保存するマクロを教えてください。エクセルで使用します。フォルダ名やファイル名は任意で構いません。フォルダの場所はデスクトップがよいです。よろしくお願いします。

A 回答 (2件)

標準モジュールに


Sub test01()
Path = "C:\Documents and Settings\XXXX\デスクトップ\smp"
If Dir(Path, vbDirectory) <> "" Then
Call MsgBox("ディレクトリは存在します")
Else
MkDir Path
End If
ActiveWorkbook.SaveAs Path & "bbb.xls"
End Sub
デスクトップにsmpと言うフォルダをつくり
今処理しているブックをbbb.xlsと言う名で保存する例。
WEBなどで「フォルダ作成 VBA」などで照会すれば、コード例がすぐ判る課題ですよ。自力で調べる
クセをつけないと。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。質問が悪かったのかもしれませんが、試しにやってみたのですが、デスクトップにsmpというフォルダは作成されたのですが、今処理しているブックがsmpbbbというファイル名で、フォルダの外、つまりデスクトップ上に保存されてしまいました。
smpというフォルダの「中に」保存できるようにするにはどうしたらよいでしょうか。
なにせ、初心者なので改善策がわかりません。よろしくお願いします。

お礼日時:2010/10/19 05:57

追加の回答が無いようなので割り込みますね。


>Path = "C:\Documents and Settings\XXXX\デスクトップ\smp"
の、\ はフォルダの階層を分ける記号と考えてください。

C:\Documents and SettingsのXXXXのデスクトップのsmp
乱暴な言い方ですが、上記の『の』にあたるものと考えてください。
で、No1さんの回答ですが
\ が抜けています。
ご自身でも、『今処理しているブックがsmpbbbと』と
言われていますよね。
なので、もう少しあの回答を私好みにして
Sub NewTest()
Dim Path As String

Path = Environ("userProfile")
Path = Path & "\デスクトップ\smp"

If Dir(Path, vbDirectory) = "" Then

If MsgBox("smp フォルダを作成しますか?", vbYesNo) = vbNo Then
Exit Sub
End If

MkDir Path

End If

ActiveWorkbook.SaveAs Path & "\" & "bbb.xls"
End Sub
    • good
    • 0
この回答へのお礼

nicotinismさん、希望のマクロが実行できました。\の理屈もわかりましたし、フォルダの存在の有無を確認するボックスが開いて確認できるし、とても便利ですね。どうもありがとうございます!!

お礼日時:2010/10/21 04:38

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