Excel2003です。
数シートあるうちの特定のシートのみを別のbookとして「名前を付けて保存」する下記のコードを書きました。一応うまく動くのですが、実はこの特定のシートには行の非表示部分があります。しかし、下記のコードではもちろん非表示部分も開かれた状態で保存がされますよね。
この非表示の状態で保存するにはどのようにすればよいのでしょうか?
【以下現在のコードです】
------------------------------------------------
Sub 名前を付けて保存()
'報告書を"名前を付けて保存"
Sheets("報告書").Select
Dim 既定ファイル名 As String
Dim 保存ファイル名 As Variant
既定ファイル名 = "報告書"
保存ファイル名 = Application.GetSaveAsFilename(既定ファイル名, "Excel ブック(*.xls),*.xls")
If 保存ファイル名 = False Then
MsgBox "保存は中止されました。"
Else
With ThisWorkbook.ActiveSheet
Workbooks.Add
.Cells.Copy ActiveSheet.Range("A1")
ActiveWorkbook.SaveAs 保存ファイル名, xlNormal
ActiveWorkbook.Close False
End With
Sheets("報告書").Select
Range("A1").Select
MsgBox "報告書を作成しました。"
End If
End Sub
----------------------------------------------------
No.3ベストアンサー
- 回答日時:
Sub 名前を付けて保存()
'報告書を"名前を付けて保存"
Sheets("報告書").Select
Dim 既定ファイル名 As String
Dim 保存ファイル名 As Variant
既定ファイル名 = "報告書"
保存ファイル名 = Application.GetSaveAsFilename(既定ファイル名, "Excel ブック(*.xls),*.xls")
If 保存ファイル名 = False Then
MsgBox "保存は中止されました。"
Else
With ThisWorkbook.ActiveSheet
Workbooks.Add
.Copy After:=ActiveWorkbook.Sheets(1)
Application.DisplayAlerts = False
ActiveWorkbook.Sheets(1).Delete
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs 保存ファイル名, xlNormal
ActiveWorkbook.Close False
End With
Sheets("報告書").Select
Range("A1").Select
MsgBox "報告書を作成しました。"
End If
End Sub
でどうでしょう。
この回答への補足
すみません。
「お礼」の欄で書かせた内容を訂正いたします。
ちょっと私混乱しておりました。非表示の件は、修正なしでは解決していませんでした。
ご指摘のコードで解決です!!
ありがとうございました。
すみません。
Excel2003とは書いたのですが、実はExcel2007で作成をして保存をする時にExcel97-2003で互換性のある形で保存しております。これがいけなかったのでしょうか・・・
本日改めて本当のExcel2003のソフトで保存したところ、コードの修正をすることなく非表示の件もうまくいきました。
もちろん、ご指摘いただいたコードでもうまくいきました。
Exscel2007は最近使用し始めたばかりで、よくわかっていません。
No.4
- 回答日時:
こんにちは。
提案1
他の不要のシートが必要ない場合。
With ThisWorkbook.ActiveSheet
.Copy
ActiveWorkbook.SaveAs 保存ファイル名, xlNormal
ActiveWorkbook.Close False
End With
提案2
PasteSpecial を使う方法。
With ThisWorkbook.ActiveSheet
Workbooks.Add
.Cells.Copy
ActiveSheet.Cells.PasteSpecial
ActiveSheet.Cells(1, 1).Select
ActiveWorkbook.SaveAs 保存ファイル名, xlNormal
ActiveWorkbook.Close False
End With
Application.CutCopyMode = False '必要に応じて
No.2
- 回答日時:
#1です。
補足します。そちらのコードをそのまま実行すると別のブックを新規で作成して
おり(Workbooks.Add)、そのブックのSheet1がアクティブシートと
いう状態で下記のコマンドを実行しています。
.Cells.Copy ActiveSheet.Range("A1")
ActiveWorkbook.SaveAs 保存ファイル名, xlNormal
ActiveWorkbook.Close False
ですから空のファイルができているのではないかと思いますが・・
マクロ実行時にステップで行うと動きがわかりますよ。 F8で
次の行を順次実行していきます。
ご確認ください。
No.1
- 回答日時:
こんにちは
下記のような感じでどうですか?
Sub 名前を付けて保存()
'報告書を"名前を付けて保存"
Sheets("報告書").Select
Dim 既定ファイル名 As String
Dim 保存ファイル名 As Variant
既定ファイル名 = "報告書"
保存ファイル名 = Application.GetSaveAsFilename(既定ファイル名, "Excel ブック(*.xls),*.xls")
If 保存ファイル名 = False Then
MsgBox "保存は中止されました。"
Else
'With ThisWorkbook.ActiveSheet コメントアウト
'Workbooks.Add コメントアウト
'.Cells.Copy ActiveSheet.Range("A1") コメントアウト
Sheets("報告書").Copy '追加 シートを別ブックにコピー
Range("A1").Select '追加 A1を選択
'ActiveWorkbook.SaveAs 保存ファイル名, xlNormal コメントアウト
ActiveWorkbook.SaveAs Filename:=保存ファイル名 _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False '文法を修正(マクロの記録で簡単にチェックできます。)
ActiveWorkbook.Close False
'End With コメントアウト
Sheets("報告書").Select
Range("A1").Select
MsgBox "報告書を作成しました。"
End If
End Sub
訂正箇所
ブックを新しいファイルにコピー
Save時の文法を修正
以上、ご参考まで
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleドライブで保存した(自...
-
VBAを使って、上書き保存の...
-
保存すると背景が真っ黒になっ...
-
イラストレーターのファイルが...
-
ファイル名の後につくversionと...
-
「Word2019」の自動保存を解除...
-
AdobeイラストレーターCS5保存...
-
2年前のブリーチ剤は使っても...
-
web単一アーカイブで保存する方法
-
マックで88×31ピクセルに保存す...
-
イラストレーターに取り込んだ...
-
【アイコンの背景色が黒塗りに...
-
ペイントのBMPで作ったアイコン...
-
Snipping Toolのキャプチャ画面...
-
保存した画像の余白カットしたい
-
Bitmapの256色と24ビットの違い
-
PDFファイルの色を濃くしたい
-
イラストレーター、配置した白...
-
画像の拡大率を固定したまま次...
-
JPEG画像にテキストや矢印を挿...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleドライブで保存した(自...
-
保存すると背景が真っ黒になっ...
-
シールテープの代わり
-
VBAを使って、上書き保存の...
-
パワーポイントの図をGIF形式の...
-
「Word2019」の自動保存を解除...
-
GIFファイルの保存ってできない...
-
拡張子が jfif のファィ...
-
Instagramの 王冠を逆さにした...
-
イラレデータのPDF保存 サイズ...
-
saiで絵を書いてるんですけど P...
-
windows10で作業を終了する際の...
-
ウェブサイトを保存のアプリ
-
(VBA)特定のシートのみを名前...
-
Wordで内容変更後別名保存する...
-
Webページとして保存、発行...
-
ASP.NETでPOSTで送信されたデー...
-
エクセルVBAで保存がうまくいき...
-
safariで画像保存 端が切れる
-
画像の保存について
おすすめ情報