• ベストアンサー

Excel画面で複数のファイルを開けないようにする

Excelで入力用のシートを作り、VBAにてスクロールバーの設定や画面サイズの変更を 行っています。 このファイルを開いている状態で、他のExceファイルをオープンすると、後から開いたExcelファイル が、アクティブ画面として表示される為、入力用のシートが見えなくなってしまいます。 入力用シートのExcelファイルは常に表示しておきたいので、1つのExcelの画面に、入力用シートのExcelファイル以外を開けないようにしたいのです。 何かいい方法があれば教えて下さい。 お願い致します。

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.4

>他のExcelファイルを開く際、入力用シートのExcel画面と別のExcel画面の中に開くようにしたいのです。 マクロを以下のように書き換えて下さい。 Private Sub Workbook_Deactivate()   Dim fn As String '←この行を追加   For Each w In Workbooks     If w.Name <> ThisWorkbook.Name Then       fn = w.Path & "\" & w.Name '←この行を追加       w.Close savechanges:=False '←TrueだったのをFalseに変更       Shell """" & Application.Path & "\Excel.exe"" """ & fn & """", vbNormalFocus '←この行を追加     End If   Next w End Sub これで、同じExcelで開こうとした方を自動的に閉じた後、別プロセスでExcelを起動して別窓でブックを開き直しします。

na21bua1
質問者

お礼

お礼が遅くなりすみません。 教えて頂いた方法で、解決することができました。 本当にありがとうございました。

その他の回答 (4)

  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.5

蛇足ですが。 エクスプローラーでxlsファイルをダブルクリックした場合「既に起動しているExcelがあると、そのExcelで開いてしまう」のが初期状態になっていますが、xlsをダブルクリックした時に、個々に別々のExcelを起動させる事もできます。 http://www.asahi-net.or.jp/~ef2o-inue/kankyo/sub02_03_02.html を参考に、 実行するアプリケーションの所に「%1」を付け足す 「DDEメッセージ」の「[open("%1")]」を消す と言う2つ作業を行って下さい。 こうすると「xlsファイルをダブルクリックするたびに、別々のExcelが立ち上がる」ようになります。

  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.3

追記。 ANo.2の方法では「Excel自体を、もう1つ起動」してしまった場合は対処出来ません。 とは言え、普通にエクスプローラーからxlsファイルをダブルクリックすれば、既に起動していて入力用シートが開いてあるExcelで開こうとするので、ANo.2の方法で問題は起きない筈です。

  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.2

>何かいい方法があれば教えて下さい。 入力用のシート(ブック)を、Book1.xlsと仮定します。 Book1.xlsを開く→「ツール」→「マクロ」→「Visual Basic Editor」→プロジェクトツリーから「ThisWorkBook」を右ボタン→「コードの表示」→コードウィンドウの上の左側のリストから「Workbook」を選ぶ→右側のリストから「Deactivate」を選ぶ 以下のコードが表示されるので Private Sub Workbook_Deactivate() End Sub 2つの行の間にプログラムを書き足して、以下のようにする。 Private Sub Workbook_Deactivate()   For Each w In Workbooks     If w.Name <> ThisWorkbook.Name Then       w.Close savechanges:=True     End If   Next w End Sub 「ファイル」→「Book1.xlsの上書き保存」→「ファイル」→「終了してMicrosoft Excelへ戻る」 これで、元のBook1.xlsの画面に戻るので「ファイル」→「上書き保存」でBook1.xlsを上書き保存。 この状態で、他のブックを開いて見て下さい。

na21bua1
質問者

補足

回答ありがとうございます。 質問の補足をさせて頂きます。 入力用シートのExcelファイルを開いたExcel画面には、他のExcelファイルを開きたくないのですが、 他のExcelファイルが全く開けなくなるのは困ります。 ですから、他のExcelファイルを開く際、入力用シートのExcel画面と別のExcel画面の中に開くように したいのです。要はExcelを別に起動し、そこに他のExcelファイルを開きたいのです。 説明がうまくないので、わかりにくいと思いますが宜しくお願い致します。

回答No.1

「Excelを」もうひとつ立ち上げれば別窓になるので メニューからExcelを立ち上げてからファイルを開くか https://www.google.co.jp/search?q=excel+vba+%E5%88%A5%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%A7%E8%B5%B7%E5%8B%95 で。「入力用シートのExcelファイル」からマクロで開くようにすればVBAで対応ができます。 なお、気づいてるかもしれませんが「ファイルを開く際に自動的に」は無理でしょうね。ファイルを開く前には識別もVBAの実行もできませんから。

na21bua1
質問者

お礼

お礼が遅くなりすみません。 今回は、No.4の方法で解決しました。 結局はplay_with_youさんに教えて頂いた方法とほぼ同じなのですが...。

na21bua1
質問者

補足

回答ありがとうございます。 教えて頂いた、マクロからの起動でいけそうですね。 この場合、どのイベントが発生した時に処理すれば、違和感なくファイルを開くことが できるでしょうか。

関連するQ&A

  • Excel2000について

    Excelの一番上のバーで通常、ファイル、編集、表示などが出ているところですが、どこで間違ったのか現在はファイル、編集などの表示が消えてF12初期画面、画面サイズ変更、数式バーの表示、パスワード入力に変わってしまい元に戻せません、戻し方を教えていただけませんか、よろしくお願いいたします。

  • Excelシートのインデックス表示が無くなりました

    Windows7、Excel2010を使用しています。 Excelで作成したシートについて質問です。 一つのファイルに50音順のインデックスを付けていて、最近シート下にあるはずのインデックス表示がありません。 表示タブの「全画面表示」にすればインデックスの表示が出ますが、今度は数式バーから上の表示がなくなります。画面下のスクロールバーもありません。 これも最近のことですが、表の画面を最大化で保存をして再度ファイルを開くと、最小化で表示されます。常にではなくても大体最小化の表示になります。 この現象は、他のExcelファイルでも同じです。 その都度右クリックで「サイズ変更」矢印キーで最大化している状態で、なぜこうなったのか心当たりがなく、困っています。 最小化よりインデックスと下のスクロールバーの表示を何とかしたいです。 ご存じの方、どうかお教えください。 よろしくお願いいたします。

  •  Excel2007での作業が重くて(遅くて)困っています。

     Excel2007での作業が重くて(遅くて)困っています。  特にデータを入力したり、スクロールバーで上下に画面を移動したりする作業が重いです。  1つのエクセルファイルに5つのシート(種々の関数や条件付書式が組み込まれている)があり、シート同士が互いにリンクしています(セルに「=」を入力することにより、あるシートのセルに入力すると、別シートのセルに反映するようにしています)。  全てをコピーして、値を貼り付けるなどしてこれらのリンクをはずせば軽くなるのかなと考えるんですが、作業上これらのリンクは、はずせません。  そこで、ACCESSの「最適化」のような機能があればと考えています。  なお、同じファイルをEXCEL2003がインストールされている別PCで開くと軽く作業ができるんですが、業務の都合上、EXCEL2007で作業しなくてはならず、また、エクセルを軽くするソフトをインストールすることはできません。  どなたかお詳しい方ご教示ください。

  • Excel2007で、最下行のSheet1、Sheet2、…の行が表示されなくなりました。

    Excel2007で、あるファイルの最下行のSheet1、Sheet2、…の行が表示されなくなりました。最下行の左端には"コマンドと、表示されています。また、カーソルは↓で下方には移動でき、またスクロールバーも正常です。他のファイルや新規オープンしたファイルは問題ありません。このファイルだけの問題とすれば、どこかの設定を変えたものと思われます。どこをどうすれば復帰できるでしょうか?

  • Excel2000とExcel2002のVBAの違いについて。

     以前、このカテゴリーにて、Excel2000におけるVBAのマクロを教えてもらったのですが、そのマクロ入力済みエクセルファイルをExcel2002へ移植したら、上手くVBAが働きません。  具体的にいうと、シート1に入力したデータの履歴を、シート2にて保存していくマクロなのですが、Excel2002では履歴のシートに上書きしていくことがあります。(たまに発生する)  Excel2000ではキチンと履歴のセルが全て残ります。  どなたか、この不具合を認識しておられる方。もしくは、対策をご存知の方がいらっしゃいましたら、教えてください。  

  • 【Excel VBA】1つのファイルにまとめる方法

    1つのフォルダの中に複数のExcelファイルが保存されています。 seat1だけを1つに集めたExcelファイルを新規で作成したいです。 ※シート1をどんどん追加させるイメージです。 ※フォルダの中に入っているExcelファイル数は毎月変わります。 手順(1)フォルダに入っているExcelシートを開く 手順(2)sheet1を【シートの移動またはコピー】新規BOOKにコピー 手順(3)フォルダに入っているExcel分繰り返す。 手順(4)シート名を変更する。    どういう風にVBAコードを記入すればいいかわからないので教えていただきたいです。どうぞよろしくお願いいたします。

  • エクセルのスクロールバーに画面がついていかなくなりました。どなたか教えてください。

    エクセルのスクロールバーを動かすと、シートの画面がそれに合わせて上下に移動していたのが、スクロールバーのところに行数を表示するだけで、スクロールバーに合わせての移動ができなくなりました。 戻す方法はありますか。どなたか教えてください。

  • VBAしか使用しないExcelのファイルサイズを軽くしたい

    VBAしか使用しないExcelのファイルサイズを軽量化するにはどうすればよいのでしょうか? 作成したVBAはExcelファイルを開くとInputBoxのダイアログが表示され、 そこにアドレスを入力するとブラウザが開いてそのページを表示します。 ちなみに、ブックのシートは1つだけにしてあり、セルには何も入力していません。 無駄なモジュールはなく、Excelファイルは直接ダブルクリックして開きたいので圧縮は不可です。 これ以上ファイルサイズを減らすことはできるのでしょうか? ご存知の方がおられましたらご回答をよろしくお願いします。 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003

  • [Excel97]一つのファイルを開いたらニつ開いてしまう

    Excel97である管理簿を作成してます。 いつの頃からか、作業後上書き保存して閉じたあと、閉じたはずのそのファイルが背景にもう一つあり、入力した値も同じセル上できちんと残っている現象が続いてます。 いつも不思議には思っていましたが、「きちんと保存されているからまーいっか」と忙しさに取り紛れて気にしなかったんです。 でも今日になって違うExcelファイルと同時に開いていたら、アプリケーションはExcel一つしか開いてないのに画面がフリーズしてしまったんです。 多分合計3つの重いExcelファイルを同時に開いたからだと勝手に思ってるんですが、私としては2つ開いただけのつもりなので、もうこの現象をどうにかしないとまた次もフリーズしてしまうと心配になり質問してみました。 ちなみに、エクスプローラー上ではそのファイルは一つしか表示されていません。 でも、Excelのメニューバー「ウィンドウ」上では「○○○.xls1」と「○○○.xls2」と表示され2つ開いているのが分かります。 普通同じファイルを開く作業をしたら、何かしらのメッセージが出ますよね。 それもまったく出ないので不思議です。 私が何かそういう設定をしてしまったんでしょうか・・・?

  • Excel2007 スクロールバーのサイズ

    Excel2007を使用しているのですが、 PCによってスクロールバーのサイズが変わってしまいます。 (開いているファイルは同じサーバ上のファイルを開いています) Excelの詳細設定を目視で確認したかぎりでは、 設定内容に差分はありませんでした。 スクロールバーのサイズを統一する方法がございましたら是非ともご指導お願いいたします。 状況説明などで不足がございましたら、是非通知お願い致します。

専門家に質問してみよう