• ベストアンサー

Excel VBA ワークブック閉じる

ExcelのVBAのコード記述についてなのですが、 ブックを閉じるの動作で、読み取り専用として開いているブックのみを閉じる方法ってあるのでしょうか? 補足ですが、2つブックを開いていて、ブック名も同じ名前で、読み取り専用を名前を付けないように閉じてもう一方のブックが見られる状態にしたいです。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

>2つブックを開いていて、ブック名も同じ名前で との事ですが、Excelでは、例え別のフォルダーにあるファイルであっても、全く同名のブックは、例え読み取り専用モードであっても開く事は出来なかったと思います。  ですから、その2つは一見するとブック名が同じである様に見えても、例えば片方の拡張子が.xlsのBookで、もう一方が.xlsxの拡張子を持つBookであると言ったように、厳密には異なるファイル名のBookではないかと思います。  その場合は以下の様なVBAを使う事で、現在、読み取り専用モードで開いている全てのBookを、名前を付けずに閉じる事が出来ます。 Sub QNo9088918_Excel_VBA_ワークブック閉じる() Dim i As Long For i = Workbooks.Count To 1 Step -1 With Workbooks(i) If .ReadOnly = True Then .Close SaveChanges:=False End With Next i End Sub

pigumin
質問者

お礼

回答ありがとうございます。 よく確認した結果、拡張子が少し違いました。 ありがとうございました。

その他の回答 (1)

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

開いている読み取り専用エクセルファイルをclose方法の一例です。 同名ファイルはフォルダーが違っても同時に開くことは出来ないはずですが。 Sub test() Dim wb As Workbook For Each wb In Workbooks If wb.ReadOnly = True Then wb.Close SaveChanges:=False End If Next wb End Sub

pigumin
質問者

お礼

回答ありがとうございます。 参考にさせていただきます。

関連するQ&A

  • VBAでエクセルのバージョンを取得するには

    エクセルBOOKを開いているアプリケーションがエクセル2007以降かそうでないかを、その開かれているBOOKのVBAで取得するにはどのような記述をすればよろしいでしょうか? 2007以降か、その前かでコードを分岐させたいのです。 よろしくお願いします。

  • エクセル(VBA)のブック間でのコピーペーストについて

    こんにちは。VBA入門レベルのものですが、質問させてください。 ブックAとブックBを開いた状態にし、 ・ブックA⇒VBAを組む&データ貼付け先 ・ブックB⇒データコピー元 ブックBの特定セル(例:D10)からブックAの特定セル(例:E12)にコピー⇒貼付 する方法を探しています。 なお、ブックBは、ブック名とシート名が都度変わるので、「ブックAではない方の開いているエクセルファイルからデータをコピーし、ブックAに貼付ける」の構文にしたいです。 また、コピペの他に数式(イコール)で飛ぶ方式でもかまいません。 この内容でのVBAの記述方法が分かる方、どなたか教えて頂けますでしょうか。 すみませんがよろしくお願いいたします。 ※エクセル2003です。

  • エクセルVBA ユーザーフォームの終了について

    エクセルVBAでユーザーフォームを作成しています。 コマンドボタンにVBAマクロを割り当てしているのですが 思うように動いてくれないので質問します。 コマンドボタンをクリックしたら望む動作 1、ワークシートを選択 2、その後、ユーザーフォームを消す。 と言う動作にしたいのですが、2の ユーザーフォームを消す方法、書き方が分かりません どなたか教えていただけないでしょうか 1の動作は以下のように書いています。その後の書き方を お願いします。 Private Sub CommandButton8_Click() ブック名 = "VBA演習" シート名 = "sheet1" Workbooks(ブック名 & ".xls").Worksheets(シート名).Activate End Sub (ユーザーフォームの名前は"テストフォーム"としてます)

  • エクセルのマクロとVBAについて

    まだあまり多用していないのですが、エクセルでは使っていくアイコンを指定することで(それを利用することで)、マクロを組みそれがエクセルのVBAで記述されるということですが、その逆エクセルのVBAで記述したプログラムを動作に対応したアイコン等の流れで示すことは出来るのでしょうか?もしあったらどのような方法でしょう?

  • Excel VBAで他のワークブックからのコピぺの仕方について

    Excel VBAで開いている全てのワークブックから決められたセルの中身とそのシート名をそれぞれ決められた一つのワークブックにコピぺする マクロを作りたいのですが、どうやって作って良いのかが分かりません。 例えば、 Sub Mac() For i = 1 To 100 Workbooks("Book1.xls").Worksheets("sheet1").Range(Cells(2108, 2), Cells(3108, 2)).Cut Destination:=Workbooks("Book1.xls").Worksheets("sheet1").Cells(13, 2) End Sub みたいにすれば良いと思うのですが、開いている全てのファイルからのコピぺってどうやって記述するのでしょうか? 何卒よろしくお願い致します。

  • EXCEL VBAでファイルを保存しないで閉じたい

    EXCEL VBAでファイルを保存しないで閉じたい EXCEL VBAでコードを書いています。ワーク用EXCELが必要で、新規ブックを作成しています。 新規ブックで処理をさせた後に自動でブックを閉じたいと思っています。 そこで, WB.QUIT WB.CLOSE True と書いたのですが、新規ブックは閉じずにそのまま残っている状態です。 これを保存しないまま閉じるにはどのような処理が必要でしょうか?

  • Excel VBA別ブックのシートをコピーするには

    Excel2010のVBAで別ブックのシートをコピーしてくる方法 Excelファイル(C:\test\BOOK2.xls)のシート名が TESTというシートを自分のExcelファイル(C:\doc\BOOK1.xls)に コピーするにはどのように記述すればよいのでしょうか。 ・コピー先:自分のExcelファイル(C:\doc\BOOK1.xls)  VBAのコードがあるファイルです ・コピー元:C:\test\BOOK2.xlsのTESTシート  なお、TESTシートを持つ同じ名前(BOOK2.xls)のファイルが  別フォルダにもあります   Workbooks( )の引数にファイル名(BOOK2.xls)は指定できるのですが、 フルパス名(C:\test\BOOK2.xls)で指定できないので困っています。

  • VBAでエクセルからエクセルのファイルを開くには?

    D:\に db1.mdb Book1.xls があります。 db1.mdbのフォームのコマンドボタンをクリックして Book1.xlsを開きたいのですが VBAコードをご教授いただけますか? (マクロではなくVBAコードが知りたいです) エクセルからエクセルのファイルを開くなら Workbooks.Open ファイルのフルパス で出来ました。 ご回答よろしくお願いします。

  • EXCEL VBA 他のブックを検索し、値を代入する方法

    EXCEL VBA 他のブックを検索し、値を代入する方法 下記の様な2つのブックがあった時に ブック1(入力用) 顧客コード,作業員コード,チェックボックス ブック2(顧客マスタ) 顧客コード,顧客名,顧客住所,備考 ブック1は日報の様な物です。 ブック2は顧客マスタの様な物です。 ブック2に登録されている顧客数が10件とすると、ブック1は顧客コードを 名前としたブック名で計10個創成されています。 ブック1のチェックボックスにチェックを入れると、ブック1の顧客コードをブック2の顧客コードの中から検索し、そのレコードの「備考」フィールドにブック1の作業員コードを代入する、といった処理を行いたいのですが、 「他のブックを開けて」の後の「検索をかけて、ヒットしたらそのいくつとなりのセルに値を代入」の 記述の仕方が分かりません。 どなたかご教授よろしくお願いします。

  • Excel 仮装読取専用ブックの削除

    VBA の困窮者です。 Excel で UserForm の基本形作成練習用のブックを作りました。 動作はOKだったのですが、コマンドボタンのコードに「'」付きの説明を入れたら終了のときにエラーが出てブックが読取専用になってしまいました。 別名のブックを作り、そちらがOKになっても、読取専用になったブックを削除できません。 原子力燃料廃棄物のようにどんどん溜まり困っています。ディスクから取り去る方法を教えて下さい。よろしくお願いします。