
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#2の回答者です。
>bookですか。sheetですか。
>両方で、SaveAsができまが、使い分けがあるのでしょうか。
私は、使い分けは知りません。Sheetで使ったこともありません。
Sheetに対してSaveAsを使ったら、ブックを保存しているようです。一般的には、コードでも、Bookに対して、SaveAs を施すものだと思いますね。その方が読みやすいです。
ご質問者さんが、そういう方法もあって使いたいというのなら、私は問題点はないだろうと思うだけです。ただ、私なら、そういう場合は、Copyを使いますね。
例:
ActiveSheet.Copy
ActiveWorkbook.SaveAs "Test121231.xls"
Bookなら、SaveAs です。
> OutSheet.SaveAs Filename:=OutFileName ←いらないのでは?
> OutBook.SaveAs Filename:=OutFileName
> OutBook.Close
ただ、これって、二重にしてはいませんか?
No.2
- 回答日時:
こんにちは。
#1さんの回答を読ませていただいて、実際の違いは私は知りませんでしたが、ActiveSheet.SaveAs "○○○" という方法は、私は使ったことがありません。
それにご質問のコードは、省略しているいう「ことわり」がない限りは、不自然に感じます。
データのあるシートのみを保存したい、とした場合に、マクロではどうするか、ということになるはずです。そうしたら、私なら、
そのシートを宛先のないコピーをして、ブックを作り、その時点で、保存する、ということになります。
'//
Sub Test1()
'元のブックから新しいブックにデータを写し、保存
ActiveSheet.Copy
With ActiveWorkbook
.SaveAs "TestBook_A.xls"
.Close
End With
End Sub
'//
Sub Test2()
'元のブックから新しいブックにデータを写し、CSVとして保存
ActiveSheet.Copy
With ActiveWorkbook
.SaveAs "TestBook_B.csv", FileFormat:=xlCSV
.Close False
End With
End Sub
'//
この回答への補足
住所録Aと住所録Bがあります。
AとBを比較して、差異をを別ファイルに出力しようとしています。
比較元となるファイルは、AでもBでもかまいません。
比較、判定、ファイルへの出力部分は、省略していますが、保存
する場合は、どこに行うのがよいのですか
bookですか。sheetですか。
両方で、SaveAsができまが、使い分けがあるのでしょうか。
どのように使い分けするのでしょうか。
書き方、使い方のおかしいところを指摘して頂くとありがたい
です。
---------------------------------------------------------------------------------------------------
Option Explicit
Sub test()
Dim ret As Integer
Dim row1 As Long
Dim col1 As Long
Dim row2 As Long
Dim col2 As Long
Dim myRtn As Boolean
Dim fno1 As String
Dim fno2 As String
Dim OutBook As New Workbook
Dim OutSheet As New Worksheet
Dim OutFileName As String
Dim cnt As Integer
Dim I As Integer
ret = MsgBox("処理を開始します。" + Chr(13) + Chr(10) + "よろしいですか。?", _
vbYesNo + vbQuestion)
If ret = vbNo Then
End
End If
myRtn = Application.Dialogs(xlDialogOpen).Show
If myRtn = False Then
MsgBox "[キャンセル]が選択されました" & vbCr & _
"処理を終了します"
Exit Sub
End If
fno1 = Application.ActiveWorkbook.Name
myRtn = Application.Dialogs(xlDialogOpen).Show
If myRtn = False Then
MsgBox "[キャンセル]が選択されました" & vbCr & _
"処理を終了します"
Exit Sub
End If
fno2 = Application.ActiveWorkbook.Name
Set OutBook = Workbooks.Add
Set OutSheet = ActiveSheet
OutBook.Worksheets(1).Name = "テスト"
OutFileName = "テスト.xls"
With Application.Workbooks(fno1).Worksheets(1)
row1 = 1
col1 = 1
cnt = 1
Do While .Cells(row1, 1) <> ""
処理
(省略)
Loop
End With
MsgBox "処理が終了しました。", vbOKOnly + vbInformation, "確認"
Application.Workbooks(fno1).Close
Application.Workbooks(fno2).Close
OutSheet.SaveAs Filename:=OutFileName
OutBook.SaveAs Filename:=OutFileName
OutBook.Close
End Sub
---------------------------------------------------------------------------------------------------
OutSheet.SaveAs Filename:=OutFileName
or
OutBook.SaveAs Filename:=OutFileName
のどちらでも保存ができます。
また、書き方、使い方のおかしいところを指摘して頂くとありがたいです。
No.1
- 回答日時:
機能が違うのは間違いない、下に解説を読むと使い分けがあるようだが、(最後の)こういうのもあるので、Workbooks.SaveAsが安全、ということでは??
http://www.happy2-island.com/excelsmile/smile03/ …
http://www.happy2-island.com/excelsmile/smile03/ …
~~~
実際に保存するときはWorkbooks.SaveAsメソッドを使います。
~~~
ちなみに、CSVファイルを選択したときは、選択しているワークシート(ActiveSheet)をCSV形式で保存します。
ExcelVBAでテキスト保存
http://oshiete.goo.ne.jp/qa/2700825.html
CSV形式で保存するときは、
Sheets("test").Activate
ActiveSheet.SaveAs Filename:=ActiveSheet.Name & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False
でtest.csvに保存できますが、
単純にテキストファイルとして保存したいときに
Sheets("test").Activate
ActiveSheet.SaveAs Filename:=ActiveSheet.Name & ".txt", _
FileFormat:=xlText, CreateBackup:=False
としても、実行時に下記のエラーになってしまいます。
実行時エラー '1004'
アプリケーション定義またはオブジェクト定義のエラーです。
また、CSVで保存した時も開いているファイルがtest.csvに変わってしまいますが、できれば、開いているファイルは元のファイルのままでシートだけを保存するにはSaveAsメソッドではなく、他のメソッドを使うのでしょうか?
(hogehoge.xlsのtestシートを保存してもhogehoge.xlsが開いたままにしたい)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
エクセルを開いた時に強制的に...
-
エクセル文書を保存したらメモ...
-
エクセルでVBAを使用して1分毎...
-
エクセルで保存しますか?のメ...
-
appleworksのファイルをエクセ...
-
Illustratorファイルに読み取り...
-
エクセルで「500時間」を「何日...
-
パワーポイントをエクセルファ...
-
【スプレドシート】IMPORTRANGE...
-
EXCELで上書き保存しないと反映...
-
メモ帳で開く設定を元に戻したい。
-
三四郎のファイルをエクセルで...
-
2つのエクセルファイルをデュ...
-
グーグルマップ
-
エクセルでファイルを閉じても...
-
並び順の違う2つのエクセル表
-
エクセルで複数のブックで「元...
-
web上にあるエクセルをショート...
-
xl
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
いきなりPDFでPDFファイルを開...
-
エクセル文書を保存したらメモ...
-
メール添付されているファイル...
-
Excel画面の自動更新 Excelファ...
-
エクセルでCSVファイルとして保...
-
メールソフト「サンダーバード...
-
Illustratorファイルに読み取り...
-
エクセル 更新していないのに...
-
excelとCSVについて質問です! ...
-
開いてるファイル(エクセル等)...
-
ピボットテーブルの更新ができない
-
EXCELで同一名のファイルがある...
-
エクセルがwindows終了時に未保...
-
エクセル表のCSV化ができない
-
エクセルでVBAを使用して1分毎...
-
エクセル2016 上書き保存が出来...
-
Excelのデーターが一瞬で消えた。
-
エクセルを開いた時に強制的に...
-
エクセル2007で互換モードで上...
おすすめ情報