
過去の質問も参照しましたが
当てはまる物が無くて質問しました!
シート上にボタンを作成して
クリックするとそのシートのみ
指定するファイルにコピーさせたいです!
下記の部分で何処を変化させればよいのでしょうか?
(1)~(2)の部分で困っています。
Private Sub CommandButton1_Click()
Dim FileName As String
Dim FileExt As String
’(1)の質問!○=の部分をSheets(セルのA1の値をファイル名に入れたいです)
FileName = "○"& Format(Now, "yyyy-mm") & ".XLS"
'====
FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName)
If FileName = "" Then
Exit Sub
Else
If Right(FileName, 4) <> ".XLS" Then
MsgBox "ファイル名が異常です。"
Exit Sub
End If
End If
'====
FileName = "D:\保存\ケア\計画\" & FileName
If Dir(FileName) <> "" Then
'##ファイルが既に存在する
If MsgBox("既に指定のファイルが存在します。 上書きしますか?", vbOKCancel, "上書きの確認") = vbCancel Then
'##保存せずに終了
Exit Sub
ElseIf ThisSheets.FullName = FileName Then
'##現在開いているファイルと同じなら上書き保存
ThisSheets.Save
Else
'##指定ファイルを削除した後保存
Kill FileName
ThisSheets.SaveCopyAs FileName:=FileName
End If
Else
'##ファイルを新規保存
ThisSheets.SaveCopyAs FileName:=FileName
End If
ThisSheets.Saved = True
End Sub
(2)ThisSheets&指定してもう一つだけ
保存先にコピーしたいです!つまり
2つのSheetのみ保存させたいのですが・・
ここからどのようにしたら良いのか
お願いします!教えて下さい。
No.7
- 回答日時:
こんにちは。
ANo.3 です。
以下のように変更してみてください。
Private Sub CommandButton1_Click()
Dim FileName As String
Dim FileExt As String
Dim BkName As String
Dim OldWkbook As Workbook
Dim NewWkbook As Workbook
Const StName1 As String = "ko"
Const StName2 As String = "ti"
'
Application.DisplayAlerts = False
Set OldWkbook = ActiveWorkbook
'
'ファイル名を取得
BkName = OldWkbook.Sheets(StName1).Range("A1").Value
FileName = BkName & Format(Now, "yyyy-mm") & ".XLS"
'
FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName)
If FileName = "" Then
Exit Sub
Else
If Right(FileName, 4) <> ".XLS" Then
MsgBox "ファイル名が異常です。"
Exit Sub
End If
End If
'
OldWkbook.Sheets(Array(StName1, StName2)).Copy
Set NewWkbook = ActiveWorkbook
For wIx = 1 To NewWkbook.Sheets(1).Shapes.Count
NewWkbook.Sheets(1).Shapes(wIx).Delete '←シート1のボタンを削除
Next
NewWkbook.Sheets(1).Name = StName1
NewWkbook.Sheets(2).Name = StName2
'
FileName = "D:\保存\ケア\計画\" & FileName
'
If Dir(FileName) <> "" Then
'##ファイルが既に存在する
If MsgBox("既に指定のファイルが存在します。 置き換えますか?", vbOKCancel, "置き換えの確認") = vbCancel Then
NewWkbook.Close savechanges:=False
'##保存せずに終了
Exit Sub
End If
'##指定ファイル置き換え保存
NewWkbook.SaveAs FileName:=FileName
Else
'##ファイルを新規保存
NewWkbook.SaveAs FileName:=FileName
End If
'
NewWkbook.Close savechanges:=False
Application.DisplayAlerts = True
End Sub
この回答への補足
本当にありがとうございます!
おかげで上手くいきました!
Sheet上はボタンが2つあり
1つは消えますが
For wIx = 1 To NewWkbook.Sheets(1).Shapes.Count
NewWkbook.Sheets(1).Shapes(wIx).Delete '←シート1のボタンを削除
どの部分を変化させれば良いのでしょうか?
No.5
- 回答日時:
「特定のファイルの特定のシートを特定の場所に特定の名前を付けたファイルを作りたい。
」という質問として、回答します。○特定の場所に特定の名前を付けたファイルの名前付け。
(シートAAAのセルA1に特定の名前が記述されていると仮定して)
FileName = "D:\保存\ケア\計画\" & Sheets("AAA").Range("A1").Value & Format(Now, "yyyy-mm") & ".XLS"
○特定のファイルの特定のシートをだけの仮ファイルを作る。
(シートAAAとシートBBBとシートCCCだけの仮ファイルを作る仮定して)
Sheets(Array("AAA", "BBB", "CCC")).Copy
この記述だけで、シートAAAとシートBBBとシートCCCだけを含んだBook1という名前の仮ファイルが出来ています。
この方法で仮ファイルを作ると、シートの諸要素全て(マクロや心配されている印刷設定等も含みます。)がコピーされるので、不要になるコマンドボタンを削除する必要があります。
○仮ファイルをFileNameに変更し保存する。
ActiveWorkbook.SaveAs Filename:=FileName
これで、Book1という名前の仮ファイルが、FileNameとして保存されます。
その他の記述は、不要です。Excelが持っている機能で、上書きするかどうかを聞いてくれます。また、FileNameに".XLS"と記述したからにはファイル名の適不適を判断する必要はありません。
No.4
- 回答日時:
そういうことでしたら、まず、「シートの移動またはコピー」作業を「マクロの記録」してください。
≪操作手順≫
(1)シート("ko")とシート("ti")をCtrlキーを押しながらクリックして選択
(2)選択したシート見出しの上で右クリック
(3)メニューから「移動またはコピー」をクリック
現れたダイアログボックスで
(4)「コピーを作成する」にチェック
(5)「移動先ブック名」で、「(新しいブック)」を選択
(6)「OK」ボタンをクリック
ここまでで、シート("ko")とシート("ti")が新しいブックにコピーされます。
新しいブックがアクティブになっています。そのまま
(7)名前を変えて保存
以上で参考になるコードが得られます。
次に、得られたコードの内容をCommandButton1_Clickマクロに追加編集してみてください。
それで解らないところを質問してください。
≪注意≫
作業終了後、元ブックの、シート("ko")とシート("ti")の選択状態を解除しておいてください。
作業グループ状態のままだと、一方のセルデータを書き換えると、他方の同じ番地セルのデータも書き換えられます。
親切なコメントで
分かりやすく説明していただき
感謝しています!
No3の方の記述で上手くいきました!
ありがとうございました。
出来れば、No3の方にも補足説明
しましたが印刷範囲設定と
ヘッダー・フッターは既存のままに
したいのですが・・・
教えて下さい!
No.3
- 回答日時:
こんにちは。
少し変えて見ました。参考として。。。
Private Sub CommandButton1_Click()
Dim FileName As String
Dim FileExt As String
Dim BkName As String
Dim OldWkbook As Workbook
Dim NewWkbook As Workbook
Const StName1 As String = "ko"
Const StName2 As String = "ti"
'
Application.DisplayAlerts = False
Set OldWkbook = ActiveWorkbook
'
'ファイル名を取得
BkName = OldWkbook.Sheets(StName1).Range("A1").Value
FileName = BkName & Format(Now, "yyyy-mm") & ".XLS"
'
FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName)
If FileName = "" Then
Exit Sub
Else
If Right(FileName, 4) <> ".XLS" Then
MsgBox "ファイル名が異常です。"
Exit Sub
End If
End If
'
'新しいブックを生成
Workbooks.Add (xlWBATWorksheet)
'シートを1枚追加→2枚になる
Sheets.Add after:=Worksheets(Worksheets.Count)
Set NewWkbook = ActiveWorkbook
'シート2枚をコピー
OldWkbook.Worksheets(StName1).Cells.Copy Destination:=NewWkbook.Sheets(1).Range("A1")
NewWkbook.Sheets(1).Name = StName1
OldWkbook.Worksheets(StName2).Cells.Copy Destination:=NewWkbook.Sheets(2).Range("A1")
NewWkbook.Sheets(2).Name = StName2
'
FileName = "D:\保存\ケア\計画\" & FileName
'
If Dir(FileName) <> "" Then
'##ファイルが既に存在する
If MsgBox("既に指定のファイルが存在します。 置き換えますか?", vbOKCancel, "置き換えの確認") = vbCancel Then
NewWkbook.Close savechanges:=False
'##保存せずに終了
Exit Sub
End If
'##指定ファイル置き換え保存
NewWkbook.SaveAs FileName:=FileName
Else
'##ファイルを新規保存
NewWkbook.SaveAs FileName:=FileName
End If
'
NewWkbook.Close savechanges:=False
Application.DisplayAlerts = True
End Sub
この回答への補足
ありがとうございました!
早速してみました!上手く出来ました。
本当に感謝しています!
すいませんがもう一つ
教えて下さい!
上手くフォルダにコピーが2つ
入れる事はできましたが
(1)印刷プレビューで印刷範囲設定を
しています!
(2)ヘッダーとフッターも無くなって
いました!
これはNewWBookとしたからなのでしょうか?
お願いします!
Sheet上のボタンはいらないですが
(1)(2)だけはそのままにしたいのですが
教えていただけないでしょうか?
No.2
- 回答日時:
(2)について
>(2)ThisSheets&指定してもう一つだけ
> 保存先にコピーしたいです!つまり
> 2つのSheetのみ保存させたいのですが・・
意味が把握できません。
もうすこし説明をしていただけないでしょうか。
ちょっと疑問があります。
ThisSheets.Save
の
ThisSheets
は何を表わしているのでしょうか。
これで上手く動いていますか?
この回答への補足
すいません!
以前、ここでブックそのままの
保存コピーを教えていただいたので
ThisWorkbook=ThisSheetsに変えてみただけです!
安易なやり方なので
勿論動きません!
(2)は例えばSheet("ko")上の
CommandButton1を作成しています!
そこをクリックすると
そのSheet("ko")とSheet("ti")の
2つのSheetのみが
保存コピーとして"D:\保存\ケア\計画\"
保存できるようにしたいです!
入力エクセルBookが重い(容量が大きい)為
Sheet2つだけフォルダにいれたいです!
入力エクセルは常に入力だけで(原本)
すいません!教えて下さい!
No.1
- 回答日時:
まず(1)について
>'(1)の質問!○=の部分をSheets(セルのA1の値をファイル名に入れたいです)
>FileName = "○" & Format(Now, "yyyy-mm") & ".XLS"
下記のようにすればよいとおもいます。
FileName = Sheets("Sheet1").Range("A1").Value & Format(Now, "yyyy-mm") & ".XLS"
変数を使って
Dim celldata As String
celldata = Sheets("Sheet1").Range("A1").Value
FileName = celldata & Format(Now, "yyyy-mm") & ".XLS"
のようにすればスッキリします。
早速のお返事ありがとうございました!
(1)出来ました!
変数に関しても出来ました。
本当にすいません!(2)の方もお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/04 10:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで「ページレイアウト...
-
「名前を付けて保存」のデフォ...
-
Wordで作成したものをUSBに保存...
-
フッター、ヘッター、印刷設定
-
ワードのスタイルを解除するには?
-
ACCESSからexcelブックを開いて...
-
HPからWord文書が開けない
-
テンプレート使用文書の保存先...
-
Excel に貼り付けた図形が、保...
-
至急!教えてください!!「Mic...
-
アクセスVBAで既に開いているエ...
-
B'z gold7でチャプターわけする...
-
メールでCADデータが送られまし...
-
何も表示されないPowerPointフ...
-
microkorgのsound editorの設定...
-
ワードの 揃え 機能について
-
vixソフトについて
-
Wordを起動したときのタイトル...
-
EXCELを起動したとき120%の表...
-
メールソフトThunderbirdに関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで「ページレイアウト...
-
Wordで作成したものをUSBに保存...
-
エクセルで「名前を付けて保存...
-
ACCESSからexcelブックを開いて...
-
エクセル「名前を付けて保存」...
-
word文章をexcelで…
-
ドキュメントの回復について
-
エクセル マクロを使って同じ...
-
エクセルのワークシート上書き...
-
Excel起動時に漢字かなモードを...
-
EXCELで保存する際に、必ず別名...
-
HPからWord文書が開けない
-
コマンドボタンで保存先のフォ...
-
Excelで書式やページ設定の既定...
-
共有フォルダで上書き保存できない
-
ワード・エクセル保存について
-
エクセル シートのみ 保存
-
EXCELのクリップボードの...
-
Excel オートシェイプの規定値
-
Word2010で文書が保存されてい...
おすすめ情報