[[20100310162811]] 『エクセルマクロ 名前を付けて保存について』(うさぎさん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセルマクロ 名前を付けて保存について』(うさぎさん)

 マクロで名前を付けて保存できるボタンを作成したいと思うのですが、シート名とA1セルに入力してある文字を入れて、保存することなんてできますでしょうか?

 たとえば、A1セルに うさぎ と入っている場合でシート名が振込用紙の場合、
 振込用紙(うさぎ)として、名前を付けて保存したいです。
 こんなことできますでしょうか???


 ボタンではなくマクロを直接実行することを想定した方法ですが、
 下記のような感じでどうでしょうか。
 現在アクティブなシートを対象に処理をします。

 Sub SaveWS()
    Dim savePath As String
    savePath = ThisWorkbook.Path & "\" & ActiveSheet.Name & "(" & ActiveSheet.Range("A1").Value & ")" & ".xls"

    If Dir(savePath) <> "" Then
        MsgBox savePath & vbNewLine & "は既に存在しています。"
        Exit Sub
    End If

    ActiveSheet.Copy
    ActiveWorkbook.SaveAs savePath
    ActiveWorkbook.Close
    MsgBox savePath & vbNewLine & "を保存しました。"
 End Sub
 マクロにショートカットを割り当てれば、汎用性が広がるかと思います。
 (Mook)

Mook様

 ありがとうございました。感動です。できましたー。
 現在、デスクトップに保存するマクロだと思うのですが、これをマクロで「作業フォルダ」というフォルダを
 自動で作成して、その中にこのシートを保存するようなこともできますでしょうか?

 よろしくお願いします。(うさぎさん)

 現在の仕様はデスクトップではなくマクロのある EXCEL ファイルと同じ
 フォルダに作成しています。

 フォルダを作成するのでしたら、
 If Dir( ThisWorkbook.Path & "\作業フォルダ" ) = "" Then '// フォルダの確認
     mkdir ThisWorkbook.Path & "\作業フォルダ"
 End If
 でEXCELファイルのあるフォルダ下に作業フォルダができます。

 保存先を
    savePath = ThisWorkbook.Path & "\作業フォルダ\" & ActiveSheet.Name & "(" & ActiveSheet.Range("A1").Value & ")" & ".xls"
 とすれば希望通りになるでしょうか。
 (Mook)


Mook様

 はじめの1回はちゃんとできるのですが、2回目以降は実行時エラー75 パス名が無効ですとでてしまいます。
 1回目に作業フォルダを作成して保存し、2回目に保存する場合、作業フォルダがあればそのフォルダへ、
 作業フォルダが作られてなければ作成して保存なんてことはできませんでしょうか?

 >現在の仕様はデスクトップではなくマクロのある EXCEL ファイルと同じ
 フォルダに作成しています。

 デスクトップに作業フォルダを作成して、保存することはできませんでしょうか?
 お手数ですがよろしくお願いします。
(うさぎさん)

IF文などで、もしデスクトップ上に作業フォルダがある場合、その中へ保存し、そうでない場合は作業フォルダを作成して保存という感じにはできませんでしょうか?

 また、デスクトップ上の保存は、多数の端末から使用する場合はパスが指定できないのですが、何かいい方法はありますでしょうか?
 難しいようでしたら、mookさんからご教授いただいたようにEXCEL ファイルと同じフォルダに作成でもかまいません。

 おわかりになりましたらぜひ教えて下さい。(うさぎさん)

 何で消えてるんだろ。。。
 取りあえず、↓ 追加質問は新規にされた様なのでリンク。
[[20100311174616]] 『IF文を使っての保存』(うさぎさん)

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.