No.4
- 回答日時:
Zap35さんのいうとおりB.xlsがあれが強制終了させるわけですから
開いてるかどうかはコードで判断させなくてもいいですよね。
で、別解。On Errorを使う方法。
------------------------------------------------
Sub Test(myBook As String)
On Error Resume Next
Workbooks(myBook).Close False
On Error GoTo 0
End Sub
------------------------------------------------
以上です。
No.3ベストアンサー
- 回答日時:
#01です。
B.XLSが開いていなくても動作確認してエラーにはなっていませんが、ファイルがないと確かにエラーになりますね。Sub Macro()
Dim wb As Workbook
Dim FN As String
FN = "B.XLS"
Set wb = GetObject("z:\" & FN)
If Not wb Is Nothing Then
Application.DisplayAlerts = False
wb.Close
Application.DisplayAlerts = True
End If
End Sub
No.2
- 回答日時:
#01です。
B.XLSが開いていたら強制終了するのであれば、開いているかどうかの判断は不要で「無条件にClose」でよくありませんか?GetObjectを用いたのは「同一PC内の別のエクセルアプリケーションでB.XLSを開いている」可能性があるからです。
Sub Macro()
Dim wb As Workbook
Dim FN As String
FN = "B.XLS"
Set wb = GetObject("z:\" & FN)
Application.DisplayAlerts = False
wb.Close
Application.DisplayAlerts = True
End Sub
マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択します。
この回答への補足
再度ご回答いただき、ありがとうございます。
試したところ、
B.XLSが起動されている場合は問題なく強制終了できました。
しかし、B.XLSが起動していない・ファイルが存在しない場合は、
「実行時エラー '432'
オートメーションの操作中にファイル名またはクラス名を
見つけられませんでした」
とエラーメッセージが表示され、そこで処理はストップしてしまいます。
いかがでしょうか?
やはりB.XLSの起動中を判断し、
起動中の場合のみ強制終了するように組み立てなければ
ならないのではないでしょうか?
まことに恐れ入りますが、回避策を教えていただけますでしょうか?
すみません、補足内容の訂正です。
>しかし、B.XLSが起動していない・ファイルが存在しない場合は、
→ファイルが存在しない場合のみ
起動していなくても、存在していれば問題なく処理は流れました。
よって、ファイルが存在しない場合のみ回避する場合があるようです。
No.1
- 回答日時:
補足要求です。
そのエクセルファイルは自分のPCにあり、自分が専有していますか? それともネットワークを介して共有されている可能性があるファイルですか。
また「強制終了」の対象は何ですか? 共有されている場合は相手方のエクセルを終了するのでしょうか。
質問文から「共有」の匂いがしなくもないのですが、その場合は下記の過去問が参考になるかもしれませんよ
http://oshiete1.goo.ne.jp/qa2633977.html
この回答への補足
zap35さん
ご回答ありがとうございます。
以下、補足です。
>そのエクセルファイルは自分のPCにあり、自分が専有していますか? それともネットワークを介して共有されている可能性があるファイルですか。
→自分のPCにあり、自分が占有しています
また「強制終了」の対象は何ですか? 共有されている場合は相手方のエクセルを終了するのでしょうか。
→A.xlsから、B.xlsが開いているかどうか判断し、開いている場合は強制終了。なお、Bは固定名称ではなくパラメータを使用します。
以上です、他にも不足部分がありましたら補足させていただきますので、どうぞよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- その他(Microsoft Office) OneDrive Personalについて 1 2022/08/02 18:25
- 画像編集・動画編集・音楽編集 ファイル名一括変換ソフト探してます 1 2023/01/04 01:30
- Windows 10 windowsの回復ドライブや復元ポイントを使用した場合の戻る位置を教えてください。 5 2023/08/19 14:52
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Excel(エクセル) エクセルのファイルを複数のPCで同期する方法は? 7 2022/11/23 17:35
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
エクセルファイル名に更新日時...
-
Wordで差込印刷した後に別々の...
-
EXCEL 検索時の設定
-
ExcelブックをGoogleスプレッド...
-
エクセル UserForm 呼び出しで...
-
パワーポイントの自動開始方法
-
Excel csv保存 列数が異なる場...
-
複数のexcelのファイルを一括で...
-
VBAでパワーシェルを実行したい...
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
カンマ区切りのCSVファイルから...
-
Windows10でコマンドプロンプト...
-
エクセルで複数のコメントのサ...
-
SaveAsの保存先について
-
バッチファイル 別ファイルにリ...
-
バッチファイル XCOPYで上書き...
-
【VB.NET】App.configにファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
ExcelブックをGoogleスプレッド...
-
Wordで差込印刷した後に別々の...
-
Excel csv保存 列数が異なる場...
-
エクセルファイル名に更新日時...
-
エクセル UserForm 呼び出しで...
-
サブフォルダから部分一致のエ...
-
実行時エラー52
-
エクセルでcsvファイルを開いて...
-
マクロ実行後、表示がおかしくなる
-
VBAでマクロを使って、マクロ無...
-
複数のexcelのファイルを一括で...
-
PowerPoint 2002でファイル名を...
-
エクセルのマクロで行と列の削...
-
大量のCSVファイルをExcel形式...
-
EXCEL 検索時の設定
-
For~Nextルーチンで最初の1回...
-
処理速度にムラがあり過ぎる
-
エクセルで、フィルタかけたま...
おすすめ情報