プロが教える店舗&オフィスのセキュリティ対策術

エクセルVBAで作業中のブックの一部のワークシート(2枚)を名前をつけて保存する方法を教えてください。
(例)  《ブックA》 
sheet1 sheet2     sheet3
10/5     10個 10,000円    4個 25,000円
東京     25個 18,500円    6個 42,000円
というブックから『10/5 東京』というブックでsheet2,sheet3の内容を
保存したいのですが・・・
VBAは勉強し始めでほとんどわからないので教えてください。

A 回答 (3件)

No1です。


追加質問について、回答します。
A1セルが空白の時はC1セルとH1セルの値をくっつけて名前とします。
もし、C1,D1,E1,~H1セル全部くっつけたいということでしたら
fn2 = .Range("C1").Value & .Range("H1").Valueの部分に&で書き足してください。

なお、さきほどの回答にあやまり(& "\" が抜けていた)がありましたので修正します。

Sub TEST02()
Dim pt As String, fn As String, fn2 As String
pt = ActiveWorkbook.Path
With Sheets("Sheet1")
fn = .Range("A1").Value
fn2 = .Range("C1").Value & .Range("H1").Value
End With
Sheets(Array("Sheet2", "Sheet3")).Copy
ActiveWorkbook.SaveAs Filename:=pt & "\" & IIf(fn = "", fn2, fn)
ActiveWorkbook.Close
End Sub

この回答への補足

補足の質問にも丁寧に答えていただきありがとうございます。
思っていたとおりのができました。
あと、もう1つ質問です。
保存先を指定するダイアログボックスを表示させたいのですが、
(保存先を指定したい)どうすればよいですか?

補足日時:2006/05/09 18:30
    • good
    • 0
この回答へのお礼

ありがとうございます。
次々と質問してスミマセン。

お礼日時:2006/05/09 20:09

こう次々と初期の質問から飛躍するのはどんなもんでしょうねえ。

本来は、別の質問としてアップするべきと思いますが・・・。

横からですが、一応おこたえします。
No1-2さんのをほとんど丸写しになってしまいますが、そのほうがわかりやすいでしょう。merlionXXさん、すみません。

Sub HOZONN()
Dim pt As String, fn As String, fn2 As String
Dim Rtn
pt = ActiveWorkbook.Path
With Sheets("Sheet1")
fn = .Range("A1").Value
fn2 = .Range("C1").Value & .Range("H1").Value
End With
Sheets(Array("Sheet2", "Sheet3")).Copy
Rtn = Application.Dialogs(xlDialogSaveAs) _
.Show(ARG1:=IIf(fn = "", fn2, fn) & ".xls", ARG2:=1)
If Rtn = False Then Exit Sub
ActiveWorkbook.Close
End Sub
    • good
    • 0
この回答へのお礼

スミマセン。
次回からはそうさせていただきます。

お礼日時:2006/05/09 20:08

10/5 東京ですが、/ はブックやシートの名前に使えないので 10.5 東京 としました。



Sub TEST01()
Dim pt As String
pt = ActiveWorkbook.Path
Sheets(Array("Sheet2", "Sheet3")).Copy
ActiveWorkbook.SaveAs Filename:=pt & "10.5 東京.xls"
ActiveWorkbook.Close
End Sub

この回答への補足

早速ありがとうございます。
質問の仕方が悪かったので申し訳ありませんが、あと少し。
シート名はsheet1のA1のセルの値をつけたい場合と、
A1のセルが空欄でC1からH1のセルの値を結合してつけたい場合は
どのようにすればよろしいですか?
1から10まで聞いてしまいスミマセン。

補足日時:2006/05/09 17:11
    • good
    • 0

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