VBScriptでエクセルを開き、
そのエクセルにテキストを書き込んでセーブしてから閉じる。
という処理を行っているのですが、
テキストを書き込んでいる間に、エクスプローラー上で別のエクセルファイルを開こうとすると、VBScriptで開いている同じエクセルアプリケーションで開いてしまい、
VBScriptのセーブしてから閉じるという処理が走ると、同様に閉じてしまいます。
希望としては、
テキストを書き込んでいる間に、エクスプローラー上で別のエクセルファイルを開こうとすると、別エクセルアプリケーションが開き、VBScriptとは、別として動作してほしいと考えていますが、
私の至らぬ知識ですとどうしても解決できません、ご協力をお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
>VBScriptでエクセルを開き、そのエクセルにテキストを書き込んでセーブしてから閉じる。
これ自体、VBScriptのコードがきちんと書かれていれば、何の問題もないはすです。
だいたい、VBScript を使うということは、タスクで一定の時間に、自動実行しているということだと思います。コードを出してみたらどうですか?「テキストを書き込んで」の意味が良く分かりません。
オートメーション・オブジェクトで開いたブックは、エクスプローラーでダブルクリックで開いたExcelとは、別の動作をします。ただし、そのブックは、セキュリティが利きませんので、自己管理が必要です。
No.1
- 回答日時:
『セーブしてから閉じる』時に、.Workbooks.Countが2以上だったら該当Bookだけ閉じて、
Excelは閉じないようにすれば良いような気がしますが、
表示されたExcelでユーザー操作されてしまうとエラーが出たりする状況なのでしょうか?
その場合、ExcelをSDIで使うように設定を変える方法も考えられますが、
コード実行ごとにレジストリを弄くるのもちょっと...って感じですね。
なので
処理中に.Workbooks.Countをチェックして
bookが開かれたらフルパスを記憶した上で閉じて、新規プロセスのExcelで開き直す。
...みたいな方向性ではどうでしょう。
If xlApp.Workbooks.Count > 1 Then
With xlApp.Workbooks
With .Item(.Count)
newFile = .FullName
.Close False
End With
End With
If IsEmpty(xlApp2) Then
Set xlApp2 = CreateObject("excel.application")
xlApp2.Visible = True
End If
xlApp2.Workbooks.Open newFile
End If
凡そこんなイメージ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のアプリケーションのテキス...
-
変数に256文字以上のテキストを...
-
VB6.0 でメニューを作りたいん...
-
FLashでメモ帳などから文字を読...
-
IP Address 入力フォームについて
-
テキストボックスにセルの値を...
-
外部テキストにリンクが貼れません
-
VS2008 C# ボタンのテキストを...
-
UIScrollBarで表示したテキスト...
-
Adobe Flash Player 9 のテキ...
-
RPG(AS400)の本、サイトってあ...
-
GoogleAPIで「&」を含むURLをQ...
-
POIでのテキストボックス作成に...
-
テキストボックスの中身をリセ...
-
VB.NET2005 DataGridViewでレコ...
-
コモンダイアログのshowopenに...
-
photoshopで書いた四角の枠の中...
-
【VB.NET】別Formのボタンが押...
-
ダブルクリックと2回クリックの...
-
VBAユーザーホームテキストボッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のアプリケーションのテキス...
-
変数に256文字以上のテキストを...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
POIでのテキストボックス作成に...
-
全てのテキストボックスをセル...
-
VB.NET2005 DataGridViewでレコ...
-
VB6.0 でメニューを作りたいん...
-
VBSでMid関数を使ったらエラー...
-
RPG(AS400)の本、サイトってあ...
-
テキストエリア内の文字列にリ...
-
漢字入力した値のカタカナ変換...
-
IP Address 入力フォームについて
-
'2465'指定した式で参照してい...
-
VB.NETで数十行のプログラムを...
-
pdfのテキスト全文コピー、テキ...
-
アクセスのフォームから検索を...
-
pg_escape_string()
-
ただただ無駄な
-
FLASH上で日数カウントダウン
おすすめ情報