
「エクセルファイルが開いていたら開かない」としたいです。
VB2010です。
--------------------------------------------------------------
Imports Microsoft.Office.Interop '参照設定済み
Module Module1
Sub ExcelOpen()
Dim ExcApp As Excel.Application
Dim book As Excel.Workbook
Dim MyPath As String
MyPath = "C:"
ExcApp = CreateObject("Excel.Application")
ExcApp.Visible = True
book = ExcApp.Workbooks.Open(MyPath & "\test.xlsm")
End Sub
End Module
--------------------------------------------------------------
で、ファイルを開くのですが、既にファイルが開いている場合は、2個開いてしまい、
最後に開いたファイルが読み取り専用になってしまいます。
IFで、開いているかどうかを取得して、
開いているのなら「既に開いています」として、ExitSubがしたいです。
ご協力よろしくお願いします。
No.2ベストアンサー
- 回答日時:
VB2010で新たな「方法」があるかもしれませんが
古典的?な方法です。
花ちゃん さんの
指定のファイルが使用中かどうかを調べる (015)
http://hanatyan.sakura.ne.jp/vbhlp/excel03.htm
おしまいの方にあります。
Function モジュールに作りかえれば使い回しが出来ます。
No.1
- 回答日時:
こんにちは。
今、私の新しいパソコンには、VB.Net はインストールしていないので試せないのですが、二重起動の問題ですよね。いくつか方法はあると思うのですが、
ひとつの方法ですが、
ExcApp = CreateObject("Excel.Application")
このコードの前に、GetObject(, "Excel.Application")で、もし、オブジェクトが取れれば、メッセージを出すという方法があるはずです。
他は、WMIやWin32 APIで、取る方法もありますが、上記方法が、もっとも簡単だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
このQ&Aを見た人はこんなQ&Aも見ています
-
VBでExcelが起動されているか知りたい
Visual Basic(VBA)
-
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
すでにファイルが開かれている時のエラー回避
Visual Basic(VBA)
-
-
4
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
5
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
6
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
7
DataGridView 列ごとの入力制限
Visual Basic(VBA)
-
8
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
9
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
10
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
11
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
12
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
13
vb.netからエクセル関数書き込み
Visual Basic(VBA)
-
14
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
-
15
矢印(左右)キーでイベントを発生させたい。
Visual Basic(VBA)
-
16
既に開いているエクセルを閉じるには?
その他(Microsoft Office)
-
17
VB.NET ファイルの種別取得方法
Visual Basic(VBA)
-
18
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
19
VB.netでメソッドからコントロールを取得
Visual Basic(VBA)
-
20
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FileDialog オブジェクトでファ...
-
ファイルを複数選択した時のフ...
-
Long型で表現できないファイル...
-
Wordのプロパティ・総ページ数...
-
【ACCESS VBA】アクセスからデ...
-
VBAで色々な種類のファイルを開く
-
VBAでCSVファイルを読み込もう...
-
iniファイルへの追記について
-
フォルダ内のファイル存在監視...
-
複数のワークブックのVBAを変更...
-
MAPIコントロールでファイル添...
-
フォルダー名の検索で開くこと...
-
コモンダイアログでフォルダを...
-
ffftpでファイル取得が0バイト...
-
ExcelのVBAコードについて教え...
-
ファイルを開く時間測定のスク...
-
VBAでのファイル名と更新日(作...
-
VB.Netソリューションでフォー...
-
webブラウザからローカルファイ...
-
エクセルマクロを使ってファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動かなくなってしまった古いVBA...
-
「エクセルファイルが開いてい...
-
FileDialog オブジェクトでファ...
-
vbaサブフォルダーをワイルドカ...
-
VBAでフォルダ内のhtmlファイル...
-
エクセルのVBAで開いている...
-
VB6でUTF-8ファイルの読取りを
-
excel マクロ PDF化の際のエラ...
-
Accessのウインドウサイズの固定
-
タイムスタンプの更新の方法2
-
vbs ブック共有を解除
-
ffftpでファイル取得が0バイト...
-
EXCEL VBAを使ったファイル解析...
-
サブフォルダ含むフォルダ内の...
-
ExcelVBA 文字コード変換
-
VBAでのファイル名と更新日(作...
-
AccessからOLEオブジェクト型の...
-
「AccessViolationException」...
-
フォルダ階層・ファイル名・ペ...
-
Filesearchオブジェクトを使用...
おすすめ情報