• ベストアンサー

エクセルVBAについて

pulsaの回答

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.2

あとは Application.DisplayAlerts = False なんてのもあるね 通常はマクロ終了時に戻るけど、一応最後に「True」しておいた方が良いかも

kenta11
質問者

お礼

回答ありがとございます。 Application.DisplayAlerts = False を試してみました。 こういうやり方もあるんですね!とても参考になりました。

関連するQ&A

  • Excel VBA で困っています。

    Excel VBA で困っています。 下記のプログラムで、「名前を付けて保存」→「キャンセル」 を選択した場合のエラーは回避できたのですが、 「名前を付けて保存」→「保存」→「同じ名前のファイルが既に ありますが置き換えますか?」→「いいえ(またはキャンセル)」 の時にエラーが出てしまいます。 どう直したら良いでしょうか。 よろしくお願いいたします。 Public Sub SaveBook() Dim myBook As Variant '「名前を付けて保存」ダイアログ myBook = Application.GetSaveAsFilename("test.xls", _ "Excelファイル,*.xls", , "Excelブックを保存") 'キャンセル時の処理 If StrConv(myBook, vbUpperCase) = "FALSE" Then Exit Sub 'ブックの保存 ActiveWorkbook.SaveAs Filename:=myBook End Sub

  • Excel マクロで.xlsx形式で保存したい

    マクロでCSVファイルを開き加工を行った後、名前を付けて保存しようとしていますが(.xls) では保存できるのですが、(.xlsx)ではエラー1004が出て保存できません。内容としては「この拡張子は、選択したファイル形式には使用できません。[ファイル名]ボックスでファイル拡張子を変更するか、[ファイルの種類]ボックスで別のファイル形式を選択してください」と記述されています。 ご助言の程、宜しくお願い致します。 Dim initPath As String Dim saveFilePath As Variant initPath = "\\fileserver\ANT\IT\91_Users\700_SUBJECT\その他業務\Excel\" 'saveFilePath = Application.GetSaveAsFilename(initPath, "Excel File (*.xlsx),*.xlsx") MsgBox saveFilePath If Not (saveFilePath = "False") Then ThisWorkbook.SaveAs saveFilePath   '←ここでエラーが発生しています。 Else MsgBox "キャンセルされました。" Exit Sub End If

  • excel vbaで助けてください

    excel2000を利用しています。 ファイルA (sheet1-グラフデータ、sheet2-グラフ)が、あります。 Vbaで、このファイルシートをすべて選択して、コピーして、名前をつけて保存しています。 この時に、作られる ファイルB (sheet1-グラフデータ、sheet2-グラフ)ですが、グラフの元データが、ファイルAになってしまいます。 下記、記述をどのように修正すれば、ファイルBのグラフの元データを、ファイルAでなく、ファイルBにすることが出来るでしょうか。 ご教授お願いいたします。 Thisworkbook.Worksheets.Copy SaveFilePath = Application.GetSaveAsFilename(mypath,"ExcelFile(*.xls),*.xls") If SavefilePath <> "False" Then ActiveWorkbook.SaveAs Filename:=SaveFilePath Else End if

  • (VBA)特定のシートのみを名前を付けて保存

    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 ----------------------------------------------------

  • EXCELのVBAでの保存方法

    EXCELで以下のように記述したところ、 「ファイルを置き換えますか」のメッセージの後に 「いいえ」か「キャンセル」を選択すると 「400」というエラーメッセージが表示されます。 「いいえ」か「キャンセル」を選択した場合は、 エラーメッセージを表示させずに、 特定のシートのセルA1にカーソルを移動させたいのですが、可能でしょうか? ご指導よろしくお願いします。 ________________________ FileA = Application.GetSaveAsFilename( _ InitialFilename:="C:\test.xls", _ fileFilter:="XLSファイル (*.xls), *.xls") ActiveWorkbook.SaveAs Filename:=FileA ________________________

  • VBAでも新規ファイル作成

    Excel2003です。 下記のコードであるシートを別ファイルにして保存するコードを書いています。ただ、このコードでは、コピー元のシートにExcel関数が入っているために、出来上がった新規ファイルを開くときに常に”リンクの更新”を聞かれてしまいます。リンクの更新をする必要はないのでファイルを開くたびに”更新しない”を選択してもよいのですが、初めからこの”リンクの更新”メッセージが出ないようにするには何か良い手立てはないでしょうか? ------------------------------------------------------------- Sub ファイル作成() '報告書を"名前を付けて保存" Sheets("Sheet1").Select Dim 既定ファイル名 As String Dim 保存ファイル名 As Variant 既定ファイル名 = "新規報告書" 保存ファイル名 = Application.GetSaveAsFilename(既定ファイル名, "Excel ブック(*.xls),*.xls") If 保存ファイル名 = False Then MsgBox "保存は中止されました。" Sheets("Sheet1").Select 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("Sheet1").Select End If End Sub ---------------------------------------------------------------

  • ExcelでのA1セルで名前と場所指定したい

    こんにちは、 エクセル2010 でマクロを色々勉強しながらやっているのですが、うまく行かず皆さん助けていただければと思います。 [概要] 1.Sheel1のA1セルをファイル名に。 2.保存場所を指定したフォルダ(会社サーバー内フォルダ) に保存したい こういうマクロを以下のように作ってみたのですが、名前を付けて保存するダイアログがしか表示されなく上手く行きません。 ご教授頂けたらと思います。 Sub TestFileSaveAs() '指定フォルダを置く Const MYPATH = "\\192.000.000.00\所属部\固定フォルダ\" Dim myData As String Dim myFile As String 'A1 にあるデータをファイル名にする If Range("A1").Value <> "" Then myData = Range("A1").Value End If On Error Resume Next Do Err.Clear myFile = Application.GetSaveAsFilename(MYPATH & myData, "EXCELファイル (*.xls), *.xls") If StrComp(myFile, "False") = 0 Then Exit Sub ActiveWorkbook.SaveAs myFile Loop While Err.Number > 0 End Sub

  • VBA 保存

    保存ボタンを作成してファイルに飛ぶように させていますが…どうしてもエラーになります! エラー表示内容> 実行時エラー1004 シートの名前を他のシート、Visual Basicで参照される オブジェクト ライブラリまたは ワークシートと同じ名前に変更することはできません。 下記は実際の記述です。 Private Sub 保存_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 = "計画 グラフ" Const StName2 As String = "ケア一覧" ' Application.DisplayAlerts = False Set OldWkbook = ActiveWorkbook ' 'ファイル名を取得 BkName = OldWkbook.Sheets(StName1).Range("D1").Value FileName = BkName & Format(Now, "yyyy-mm-dd") & ".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(1).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

  • Excelマクロのエラー

    お世話になります。 マクロは、超初心者で只今、本やネットで勉強中なのですが、本の通りに作成しましたが、 エラーが出てしまいます。 急いでおりまして、大変お手数ですがご教示お願いできますでしょうか? Excel2007でマクロを作成中(実際に業務で使用する環境は2003です)。 2点あります。 (1)サブフォルダ内の全ブックを開く  ファイルは開くのですが、下記のエラーが出てしまいます。  C:¥...... "\web保存\"が見つかりません。ファイル名およびファイルの保存場所が  正しいかどうかを確認してください。 (2)開いたファイルをhtm保存する。  htm保存できるのですが、ファイル名が「●●●.xls.htm」  となってしまい、元のファイル名の.xlsの拡張子が付いたままです。  ファイル名を変えず、「●●●.htm」となるようにしたいです。 どうぞ宜しくお願い致します。 (1)サブフォルダ内の全ブックを開く Sub 全ブックを開く() Dim パス名 As String Dim ファイル名 As String パス名 = ThisWorkbook.Path & "\web保存\" ファイル名 = Dir(パス名 & "*.xls*") Do While ファイル名 <> " " Workbooks.Open パス名 & ファイル名 ファイル名 = Dir() Loop End Sub (2)開いたファイルをhtm保存する Sub htm保存() Dim wb As Workbook Dim wbname As String For Each wb In Workbooks wb.Activate If wb.Name <> ThisWorkbook.Name Then wb.SaveAs FileName:=ThisWorkbook.Path & "\" & wb.Name & ".htm", FileFormat:=xlHtml, CreateBackup:=False wb.Close savechanges:=False End If Next End Sub

  • エクセルマクロ BeforSave機能

    ThisWorkbook の Workbook BeforSaveに以下のようにセットして上書き保存すると マイクロソフトに報告する旨のエラーメッセージが出ます。 自ら初めてこの機能を使うのですが、どこがどう間違っているのでしょうか? エラー後に報告「する・しない」で自動復帰した後にそのまま上書き保存すると 何もおこらず上書きできますが、少しでも変更を加えると再度同じエラーとなります。 よろしくお願いします。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim IptA As String, rev As String IptA = Cells(3, 13).Value rev = Cells(8, 13).Value If SaveAsUI = False Then Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\000\" & IptA & "報告" & rev & ".xls", FileFormat:= _ xlNormal, ReadOnlyRecommended:=False _ , CreateBackup:=False End If End Sub