
「エクセルファイルが開いていたら開かない」としたいです。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBでExcelが起動されているか知りたい
Visual Basic(VBA)
-
すでにファイルが開かれている時のエラー回避
Visual Basic(VBA)
-
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
-
4
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
5
【VB.NET】Excelの最終行までの取得方法
Microsoft ASP
-
6
.NET上でエクセル上に罫線を引く
Visual Basic(VBA)
-
7
VB.NETで起動させたExcelの多重起動を禁止させるには?
Visual Basic(VBA)
-
8
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
9
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
10
VB.NETで起動したExcelの閉じ方について
Visual Basic(VBA)
-
11
vb.netからエクセル関数書き込み
Visual Basic(VBA)
-
12
既に開いているエクセルを閉じるには?
その他(Microsoft Office)
-
13
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
14
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
15
起動中のEXCELファイル(EXCELプロセスではなく)のうちひとつを終了したい(C#.NET2003)
その他(データベース)
-
16
VBで既存エクセルシートを新規ブックにコピー
Visual Basic(VBA)
-
17
DataGridView 列ごとの入力制限
Visual Basic(VBA)
-
18
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
19
CloseとDisposeの違い
Visual Basic(VBA)
-
20
VB.net(2005)でエクセルの特定名称のシートを操作したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動かなくなってしまった古いVBA...
-
VB6でUTF-8ファイルの読取りを
-
ffftpでファイル取得が0バイト...
-
Long型で表現できないファイル...
-
VB.net XMLの作成方法 Iniの代替
-
エクセルのVBAで開いている...
-
Wordテンプレート一括変更での...
-
エクセルのプロパティーでセキ...
-
frxファイルの役目
-
xcopyでのバッチコピー方法でコ...
-
[virtualbox] Windows XP のVHD...
-
[エクセル]コピーするとオブジ...
-
エクセルvbaでdocuworksprinter...
-
デスクトップの画像をhtmlに表...
-
バッチファイル XCOPYで上書き...
-
エクセルで複数のコメントのサ...
-
フォルダにリンクを貼りたい
-
DXFファイルをVBで取り込み、図...
-
ドライブレターの大文字・小文...
-
Windows10でコマンドプロンプト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動かなくなってしまった古いVBA...
-
「エクセルファイルが開いてい...
-
ffftpでファイル取得が0バイト...
-
サブフォルダ含むフォルダ内の...
-
Long型で表現できないファイル...
-
タイムスタンプの更新の方法2
-
VB6でUTF-8ファイルの読取りを
-
FileDialog オブジェクトでファ...
-
vbs ブック共有を解除
-
vbaサブフォルダーをワイルドカ...
-
AccessからOLEオブジェクト型の...
-
ファイルを複数選択した時のフ...
-
webブラウザからローカルファイ...
-
EXCEL VBAを使ったファイル解析...
-
エクセルのVBAで開いている...
-
VBAでCSVファイルを読み込もう...
-
【ACCESS VBA】アクセスからデ...
-
VBAでのファイル名と更新日(作...
-
Wordのプロパティ・総ページ数...
-
「AccessViolationException」...
おすすめ情報