- ベストアンサー
エクセル・マクロ(VBA)で、指定範囲を保存したい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
私が考えていたのと、ちょっと趣旨がちがっちゃったですね。 #1 のレスについていたのをちょっと付け足して、変更してみました。 Sub test_1() Worksheets("sheet1").Range("A1:F12").Copy With Workbooks.Add ActiveSheet.Paste Application.DisplayAlerts = False '同じ名前があった時上書き ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\システム\" & Date$ & ".xls" _ , FileFormat:=xlNormal _ , Password:="00000000" _ , WriteResPassword:="11111111" _ , ReadOnlyRecommended:=True _ , CreateBackup:=False Application.DisplayAlerts = True .Close False '閉じる End With End Sub '***************************************** 以下は、私が考えたものです。参考にしてみてください。 つまり、同名のファイルがあった時の処理を考えてみました。 少しは、参考になるかもね。(^^; Sub Selection_CopySave() Dim Rng As Range Dim rtn As Boolean Set Rng = Selection 'マウスで複数のセルを選択してください。 If Rng.Count = 1 Then Exit Sub Rng.Copy With Workbooks.Add ActiveSheet.Paste Do rtn = FileCheck Loop While rtn = True .Close False '閉じる End With Application.CutCopyMode = True End Sub Private Function FileCheck() As Boolean Dim Fname As String Dim rtn As Integer Dim flg As Boolean flg = False Fname = Application.GetSaveAsFilename(Date$, "エクセルブック (*.xls), *.xls") If Fname <> "False" Then If Dir(Fname) = "" Then Application.DisplayAlerts = False ActiveWorkbook.SaveAs Fname _ , FileFormat:=xlNormal _ , Password:="00000000" _ , WriteResPassword:="11111111" _ , ReadOnlyRecommended:=True _ , CreateBackup:=False Application.DisplayAlerts = True Else rtn = MsgBox("同名のファイルがあります。上書きしますか?", vbYesNoCancel) If rtn = vbYes Then ActiveWorkbook.Save ElseIf rtn = vbNo Then flg = True ElseIf rtn = vbCancel Then FileCheck = False Exit Function End If End If End If FileCheck = flg End Function
その他の回答 (4)
- at121
- ベストアンサー率41% (85/206)
sheet2 sheet3 がつくのがいやな場合 保存先パスは定時・定型業務に応じて固定 Sub 選択範囲を新規Book_YYYYMMDDに保存() ' 保存先パス = ".\" '保存先パス = "C:\Documents and Settings\システム\" 保存新規Book名 = Format(Now, "データYYYYMMDD") & ".xls" 保存シート名 = Date$ If Dir(保存先パス & 保存新規Book名) <> "" Then If MsgBox(保存新規Book名 & vbCrLf & "既存のFileを削除・新規上書きします。 ", vbOKCancel) = vbOK Then Kill (保存先パス & 保存新規Book名) Else Exit Sub End If End If Selection.Copy Sheets.Add before:=Sheets(1) ActiveSheet.Paste Application.CutCopyMode = False Sheets(1).Move Sheets(1).Name = 保存シート名 ActiveWorkbook.SaveAs Filename:=保存先パス & 保存新規Book名 ActiveWindow.Close End Sub
お礼
回答いただきまして、大変ありがとうございました。 素人同然の小職に回答下さいまして感謝しております。 今後も、皆様にご迷惑をお掛けすることもあるとおもいますが、よろしくお願いいたします。
- KenKen_SP
- ベストアンサー率62% (785/1258)
#1です。 あらら、、出遅れましたね。ほとんどWendy02さんと同じですが、、 違いは、 Selection.Copy Worksheets("sheet1").Range("A1:F12").Copy ですかね。 Wendy02さんがコメントされてますが、私も同名ファイルがあった場合の処理を考えた方が良いと思います。 Sub Sample() '選択範囲コピー Selection.Copy '新規ブックの追加 Set WB = Workbooks.Add '一応新規ブックをアクティブにする WB.Activate 'アクティブシートに貼り付け ActiveSheet.Paste '保存する WB.SaveAs _ Filename:="C:\Documents and Settings\システム\" & Date$ & ".xls", _ FileFormat:=xlNormal, _ Password:="00000000", _ WriteResPassword:="11111111", _ ReadOnlyRecommended:=True, _ CreateBackup:=False '変数の解放 Set WB = Nothing Application.CutCopyMode = False End Sub
お礼
たった今、拝見したばかりですので、これからよく見させていただきます。 VBAは、初めてで、これからいろいろと作成していきたいものがありますので、参考に致します。 小職のような者のために、皆様に助けていただきたい変換謝しております。 また、お世話になることがあると思いますが、よろしくお願いいたします。
- masa0690831
- ベストアンサー率58% (17/29)
データをどのように利用することを考えておられるのかわかりませんが、 マクロでWorksheetの部分データをCSV形式又はTXT形式で書出す、それを読み込むことが出来ます。 Sampleを呈示することも出来ますが、利用方法を教えて下さい。 下記にVBAに関するサイトの一部をあげておきます。 特に参考URLのサイトにはご希望に近い内容が含まれているようです。ご参考に。 http://www.voicechatjapan.com/excelvba/ http://www.max.hi-ho.ne.jp/~happy/YNxv8316.html http://www2.moug.net/app/bbs/thread.php?cat=acm_v http://homepage3.nifty.com/bear/
お礼
ありがとうございました。 今後、参考とさせていただきます。 VBAは、初めてで、これからいろいろと作成していきたいものがありますので、参考に致します。 また、お世話になることがあると思いますが、よろしくお願いいたします。
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。 ご質問の意味がわかりません。 >ファイルに保存したい どのように保存するのですか?新規ブック?テキスト? >セル範囲を指定してその指定した部分だけ 連続しない(とびとびの)セルが選択されている場合は、どうするのですか? もっと具体的に「やりたいこと」を示していただかないと回答できないと思いますよ。 まず、「やりたいこと」を「新しいマクロの記録」で記録してみたらどうですか? その上で、 ・記録されたコード ・具体的にやりたいこと ・マクロの記録で作成されたマクロでは上手く機能しない部分 を補足して下さい。
補足
済みませんでした。 ワークシート内の指定した範囲内だけを新規ブックとして保存したいのです。なお、連続しないセルは無い状態です。 マクロ記録を行ってみたのですが、ブック全体を保存してしまい、指定した部分だけを保存するという方法がわかりませんでした。 記録したマクロは、以下の通りです。 With Worksheets("sheet1") .Range.Cells("A1:F12").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\システム\("&Date$ & ").xls" _ , FileFormat:=xlNormal , Password:="00000000" , WriteResPassword:="11111111" , ReadOnlyRecommended:=True , CreateBackup:=False End With 『ActiveWorkbook.SaveAs ・・・』の部分を『ActiveCells.saveAs ・・・』に変更してみたのですが、うまく動きませんでした。
関連するQ&A
- エクセルVBAで範囲指定の方法をおしえてください
エクセルVBAで範囲指定の方法をおしえてください こんばんは。 以下のようにデータがあるとします。 222 111 333 555 888 999 454 665 222 111の文字列を含むセルから888の文字列を含むセルまでをVBAで範囲指定したいのですが 方法がわかりません。 エクセルに読み込むファイルによって目的の情報の位置が変わるため、文字列を基に範囲指定したいのです。 本当に困っていますよろしくお願いします。
- ベストアンサー
- Visual Basic
- Excel VBA 指定したセル範囲のみ保存
指定したセル範囲のみをエクセルファイル形式で保存したいのですが、わかりません。御教授下さい。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- Excelで指定範囲だけを(.prn)保存する
Excelで(.prn)(スペース区切りテキストファイル)保存する際、指定範囲だけを保存する方法はないでしょうか?。もちろん、余計な範囲を削除する方法では、他のセル参照などマクロが狂ってくるので、そんな単純な方法ではありません。この機能はロータス123にあった機能で、Excelで色々と試しているのですが、どなたかご存じでしたらご教示をよろしくお願いします。
- 締切済み
- Excel(エクセル)
- Excel2007、pdfで保存範囲を指定する方法
VBAでの質問です。 Excel2007の名前を付けて保存のpdfでExcelファイルブック全体を保存したいのですが、 各シートの余白に計算用のセルが多数存在しており、そのまま保存を行うと それもpdf化されてしまいます。 余白を除いた部分をきれいにまとめたものを、配布用のpdfにしたいのですが VBAでpdfの保存範囲を指定することは可能でしょうか? 印刷範囲の指定は聞いたことがありますが、保存範囲の指定は聞いたことがありません。 ご存知の方がいらっしゃいましたら、ご教授お願い致します。
- ベストアンサー
- Visual Basic
- EXCEL VBA で指定した範囲に入力があるかどうか?
こんばんは!! EXCEL VBAを使い出して、初日からつまずいてます・・・。 みなさん、アドバイスよろしくお願いします!! で、早速、質問なんですけど、 指定したセル範囲のいずれかに入力があるか調べたいんですけど、それができるプロパティとかってあるんでしょうか? 地道にセル毎にチェックするしかないいんでしょうか?? たとえば、範囲をA1:H1として、その範囲内のセルに何か入力があったらTrueが返ってくるとか・・・。 もし、知ってる方がいらっしゃたら教えてください!! よろしくお願いします!!!!!
- ベストアンサー
- Visual Basic
- Excel VBAでファイルを開くとマクロを実行させるにはどのように記
Excel VBAでファイルを開くとマクロを実行させるにはどのように記述すればいいのでしょうか? 例えば、ファイルを開くと指定のセルの削除させるような。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル VBA 範囲指定方法
エクセルVBA初心者です。 以下の範囲指定について教えてください。 一つの表のK列の一番下のセル(不定)を選択→Range("K65536").End(xlUp).Select その選択されたセルからA3(固定)まで範囲を選択したいのですが、不定セル:固定セル の範囲指定方法が分かりません。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- エクセルのマクロのセルの範囲指定
エクセルのマクロで、うまくセルの範囲を指定できません。 例えば、 Range(Cells(5.6), Cells(8, 7)) = "AAA" と、指定した時は、F5:G8のセルにAAAという文字を代入するつもりで書いています。 ところが、マクロを実行すると、F1:G8まで、AAAの文字が代入されます。 どうしてでしょうか。 宜しくお願い致します。
- ベストアンサー
- Excel(エクセル)
- 《エクセル》 マクロ-セルの範囲指定の式
いつもお世話になります。 2つお聞きしたいのですが、エクセルで、 ・「A列のデータのあるセル範囲のみを指定する」と、 ・「A列のデータのあるセル範囲の、隣(B列)のセルを指定する」 というマクロの式はどのように書けば良いのでしょうか。
- ベストアンサー
- CAD・DTP
- EXCEL VBAでのセル高の範囲指定コピーについて
いつも活用させて頂いております。 ExcelのVBAで、範囲指定したセルのコピーを行い、コピー先のセルに コピー元のセルの高さをコピーさせるロジックを組みました。 始めは、範囲指定してセル高もコピーしようとしたのですが、 上手く行かなかったので、現在は、ループさせて1行ずつ行っています。 できれば、範囲指定して一括で行いたいのですが、 そのような事は可能なのでしょうか? ご教授願います。
- ベストアンサー
- オフィス系ソフト
お礼
たった今、拝見したばかりですので、よく見させていただきます。 取り急ぎご挨拶まで。 VBAは、初めてで、これからいろいろと作成していきたいものがありますので、参考に致します。 また、お世話になることがあると思いますが、よろしくお願いいたします。