「エクセルファイルが開いていたら開かない」としたいです。
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も見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
VBでExcelが起動されているか知りたい
Visual Basic(VBA)
-
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
-
4
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
5
DataGridViewの各セル幅を自由に決め、その幅で固定したい
Visual Basic(VBA)
-
6
すでにファイルが開かれている時のエラー回避
Visual Basic(VBA)
-
7
VB2010でExcelの行をコピーして挿入する
Visual Basic(VBA)
-
8
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
9
コントロールを移動できない
Visual Basic(VBA)
-
10
C#でExcelのシートを選択する方法
その他(プログラミング・Web制作)
-
11
VBからExcelを起動しExcel終了を判定したい
Visual Basic(VBA)
-
12
VB.NETの配列にExcelから読み込んできたデータを格納したい
Visual Basic(VBA)
-
13
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
14
OpenFileDialogを使った後にもう一度開くと以前のファイルを表示させたい。
Visual Basic(VBA)
-
15
VB.net 引数で配列変数を渡す際の要素数
Visual Basic(VBA)
-
16
VB.NET ファイルの種別取得方法
Visual Basic(VBA)
-
17
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
18
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excel マクロ PDF化の際のエラ...
-
vbaサブフォルダーをワイルドカ...
-
ffftpでファイル取得が0バイト...
-
フォルダ内のファイルを上から...
-
MSHFlexGridコントロールについて
-
FileListBoxコントロールで扱え...
-
FileDialog オブジェクトでファ...
-
タイムスタンプの更新の方法2
-
「エクセルファイルが開いてい...
-
コモンダイアログで拡張子の無...
-
動かなくなってしまった古いVBA...
-
Excel VBA Outlookメールにエ...
-
コモンダイアログでフォルダを...
-
フォルダ内のファイル存在監視...
-
VBAでCSVファイルを読み込もう...
-
VBAで次のような処理をできるか...
-
【VBAマクロ初心者】Excel VBA...
-
ファイルを複数選択した時のフ...
-
エクセルのVBAで開いている...
-
ExcelVBA 文字コード変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サブフォルダ含むフォルダ内の...
-
vbs ブック共有を解除
-
動かなくなってしまった古いVBA...
-
vbaサブフォルダーをワイルドカ...
-
「エクセルファイルが開いてい...
-
ffftpでファイル取得が0バイト...
-
Accessのウインドウサイズの固定
-
FileDialog オブジェクトでファ...
-
VB6でUTF-8ファイルの読取りを
-
excel マクロ PDF化の際のエラ...
-
VBAでフォルダ内のhtmlファイル...
-
VBからExcelファイルを開くとき...
-
Wordのプロパティ・総ページ数...
-
フォルダ階層・ファイル名・ペ...
-
コモンダイアログでフォルダを...
-
vbsでのアスタリスクとファイル...
-
VB.net XMLの作成方法 Iniの代替
-
エクセルのVBAで開いている...
-
ファイルを開く時間測定のスク...
-
AccessからOLEオブジェクト型の...
おすすめ情報