Excelで「名前をつけて保存」しようとすると別ファイルが開く

このQ&Aのポイント
  • Excelで「名前をつけて保存」しようとすると、別のExcelブックが開いてしまう現象が起きて困っています。特定のExcelブックにマクロのコードがあり、関係している可能性があります。
  • 新規ブック保存時にはこの現象が起きません。問題の解決方法を教えてください。
  • WinXPとExcel 97を使用しています。名前をつけて保存を選択すると、特定のExcelブックが開いてしまう問題が発生しています。解決策をお教えください。
回答を見る
  • ベストアンサー

Excelで「名前をつけて保存」しようとすると、別ファイルが開くのですが・・・

こんにちは。いつもお世話になります。 WinXp、Excel97を使用しています。 Excelで、メニューバーから「ファイル(F)」→「名前をつけて保存(A)」を選択すると、 「ファイル名をつけて保存」ダイアログの表示される前に、 別の、ある特定のExcelブックが開いてしまう現象が起きて困っています。 この特定のブックですが、マクロが組んであり、 その中に次のようなコードがありますが、関係しているでしょうか。 Sub Auto_Open() With Application.CommandBars("Worksheet Menu Bar") '"ファイル(F)"を選択 With .Controls(1) '"名前を付けて保存(A)"を選択 With .Controls(5) 'ダイアログボックス表示関数を呼ぶ .OnAction = "Dialog_Open" End With End With End With End Sub ちなみに、新規ブック保存時に、「標準」ツールバーの フロッピーアイコン(上書き保存)を押下した時はこの現象は起きません。 ぜひ、解決のヒントをください。よろしくお願いします。

  • ef81
  • お礼率96% (112/116)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

OnActionはクリック時に実行するマクロを名前で指定します。 "Dialog_Open"-この名前のモジュールがどういうものか載っていませんが、そこにブックを開くコードが入っているのでしょう。 Dialogはファイル・オープン・コモンダイアローグに由来するのではないですか。 仮にOnAction = ""と改変すると、質問の現象は消えるでしょう。 ただあとは現状に戻してください。他に影響が出るかも知れないから。

ef81
質問者

お礼

ありがとうございます。お礼が遅くなり申し訳ありません。 OnAction = ""としてみました。ご指摘のとおり、後続のマクロの中に「Dialog_Open」があり、 このコードは実行されなくなったようです。 しかし、特定のブックが開かれてしまう現象には変わりありませんでした。 質問の仕方が悪かったのですが、 そもそも、「このブック(マクロ)を開きたくないのに、開いてしまう」状況です。 メニューバーを操作したときに、勝手にマクロが実行されることから、 Excelの環境とか、なにかに起因していることはないでしょうか。 ウィルスに感染はしていないようですが、再インストールしないとダメでしょうか。 恐れ入りますが、何かヒントがあれば教えてください。よろしくお願いいたします。

ef81
質問者

補足

この欄をお借りして、ご報告です。 その後ですが・・・解決しました! あちこちのサイトを見て回った結果、 どうも「メニューバー」が「カスタマイズされている」らしい・・・という推測にたどり着きました。 そのリセット方法によると・・・ 「ツール」→「ユーザー設定」→「ツールバー」タブ→ ツールバー一覧の「ワークシート メニュー バー」を選択して、 右にある「リセット」ボタンを押下 すると、くだんの現象が起きなくなりました! マクロを含んだブックを操作しているうちに、何かの拍子で メニューバーの設定を変えてしまったんでしょうか・・・。 この現象が、職場の他のPCでも発生したので、 何かウィルスか、とんでもないバグを含んだコードなのか?とも考えました。 (実害はないのですけれど) imogasi様、親身にご相談にのっていただいて、ありがとうございました。 Excelがないと仕事できない環境にいながら、恥ずかしいことに まだまだ使っていない機能がたくさんあります。 VBAも、ぜんぜん詳しくありません(^^;)。 質問のコードは他人が作成したもので、何とか読むことはできますが、 これを機に、少しずつ勉強していきたいと(改めて)思いました。 また何か助けていただくかもしれません。そのときはよろしくお願いいたします!

関連するQ&A

  • EXCELのファイルを別ファイルに保存する

    activeperlを使って、サーバ上のexcelファイルを名前を変更して、 別ファイルに保存したいですが、いい方法はありますでしょうか? 今作成したcgiのソースは下記です。 use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; my $excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit') || die "Excelが起動できません。"; my $book = $excel->Workbooks->Open('c:\Inetpub\excel\temp.xls') || die; my $sheet = $book->Worksheets('temp') || die; $book->SaveAs('C:\Inetpub\\excel\dest.xls'); $book->Close(); よろしくお願いします。

    • ベストアンサー
    • CGI
  • (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 ----------------------------------------------------

  • エクセル ファイル名を指定して保存閉じる。

    Sub ブックを開く() Workbooks.Open Filename:="D:\顧客データ\" _ & Range("B1").Value & ".xls" End Sub 上記のマクロでファイルを開き作業をしています。 作業後にファイルを上書保存して閉じるには どのようなマクロになるのでしょうか。 よろしくお願いします。

  • エクセルのマクロでファイルを開く

    エクセルの「ファイルを開く」ダイアログボックスを使用してファイルを開き、その開いたファイルに対してとあるマクロを実行させたいと思っています。 エクセルの「ファイルを開く」ダイアログボックスでパス取得までは理解出来たのですが、その先の処理が分かりません。 「ファイルを開く」と言うのは、「現在アクティブになっているシートにデータを貼り付けて」の処理でも構いません。 Dim Ret As Variant Ret = Application.GetOpenFilename("Excel ブック (*.xls), *.xls, テキストファイル(*.txt),*.txt") If Ret = False Then MsgBox "キャンセルが選択されました。" Exit Sub Else       'ここにRetで取得しているパスのファイルを開いて、sub_WAITのマクロを実行させたいです。 sub_WAIT.Show End If End Sub

  • エクセルのファイルサイズと保存時のファイルの種類との関係について

    エクセルのファイルですが、たいした内容で無いにも関わらず、ファイルサイズが大きく困っておりました。 そこで"名前を付けて保存"を選択して"Microsoft Excel 97-Excel 2003 および 5.0/95ブック"から"Microsoft Office Excel ブック"に変更して保存した所、ファイルサイズが2.53MB→408Kと激減しました。 会社ではExcel97を使っており、自宅ではExcel2003なのですが、同じ現象が起きました。 画像に関しては小さいイラストが何箇所かある程度で、プレビューの絵の保存はしていません。 何故このようになるのか?こうなったことにより何か影響がでるのかがわかる方、教えていただけると助かります。 よろしくお願いします。

  • エクセル 保存是非のダイアログを出さずに保存VBA

    エクセル 保存是非のダイアログを出さずに保存VBA エクセルファイルの ひとつのブック L.xlsxの特定のセルを 別のブックR.xlsxのセルにコピーするを VBAコードで コピーまでは出来たのですが R.xlsxのブックを保存するかどうかの ダイアログが出てしまいます これが出ないで保存できるように ActiveWorkBook.Save これを入れてもやはり保存是非の確認が 出てしまいます コードは -------------------- Sub ID移動() Dim x As Workbook Dim y As Workbook Workbooks.Open Filename:="C:\Users\USER\Desktop\ACCESS\L.xlsx" Set x = Workbooks("L.xlsx") Workbooks.Open Filename:="C:\Users\USER\Desktop\ACCESS\R.xlsx" Set y = Workbooks("R.xlsx") y.Sheets("sheet1").Range("A2") = x.Sheets("output").Range("B2") x.Close y.Close ActiveWorkBook.Save End Sub ------------------ 保存是非のダイアログがでないで 保存できるための方法を 御教示いただけますか win10 office365 すみませんが 宜しくお願い致します

  • Excel VBA ブックが閉じれない

    Excel2016を使用してVBAを使用しています。 VBA初心者ですが、よろしくお願いします。 質問内容は以下になります。 EXCEL起動と同時にUserFormを表示させ、UserForm上のコマンドボタンから ダイアログボックスを表示し、他ブックを開く処理なのですが、 他ブックを開くまでは問題ないのですが、他ブックが閉じれない状態になります。 Private Sub Workbook_Open() UserForm1.Show End Sub Private Sub UserForm_Initialize()  各種処理 End Sub Private Sub CommandButton1_Click() Dim OpenFileName As String SetCurrentDirectory (Worksheets(1).Cells(11, 3)) OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") Workbooks.Open OpenFileName End Sub UserFormを閉じると開いたブックも閉じることが可能です。 タスクマネージャーから強制的に終了しようとすると、以下メッセージが出ます。 ”開いているダイアログボックスがあるため、Microsoft Excel を終了できません。[OK]をクリックしてから、Microsoft Excelに切り替えてダイアログを閉じて下さい。" UserFormを閉じないで他ブックを閉じるには、どうすれば宜しいでしょうか。 申し訳ございませんがご教授下さい、よろしくお願いいたします。

  • Excel VBAを使って、Excelデータを別のExcelファイルに取り込みします

    報告書にexcel VBAを使って、(報告書を開いたまま)報告書のデータを別のexcelファイル(一覧)に取り込みします。 Sub k() Dim ブック As Workbook Set ブック = Workbooks.Open("c:\テスト\" & "一覧.xls") ブック.Worksheets("Sheet1").Cells(3, 2) = Worksheets("企業情報シート").Cells(3, 3) End Sub 報告書の"Worksheets("企業情報シート").Cells(3, 3)"は書き方がおかしいみたいで、正しい書き方を教えてください。

  • 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

  • エクセルで名前を付けて保存ができません

    エクセルで作成したものを保存しようとしたら、 メニューバー⇒ファイルの「名前を付けて保存」がグレーになって 「Webベージとして保存」しか選択できなくなっています。 どこをどうすれば「名前を付けて保存」ができるようになるで しょうか? お知恵をお貸しください。

専門家に質問してみよう