
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
[VB.net] ボタン(Flat)のEnable...
-
【ExcelVBA】値を変更しながら...
-
Excel VBA 選択範囲の罫線色の...
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
VB.net 文字列から日付型へ変更...
-
VBAで特定の文字が入った行をコ...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
【マクロ】並び替えの範囲が、...
-
ダブルクリックで貼り付けた画...
-
VBAでユーザーフォームを指定回...
-
エクセルのマクロについて教え...
-
算術演算子「¥」の意味について
-
【VBA】値を変更しながら連続で...
-
【ExcelVBA】値を変更しながら...
-
Excel 範囲指定スクショについ...
-
Vba Array関数について教えてく...
-
【マクロ】売上一覧YYYYMMDDHHS...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数に256文字以上のテキストを...
-
全てのテキストボックスをセル...
-
テキストボックスの中身をリセ...
-
別のアプリケーションのテキス...
-
RPG(AS400)の本、サイトってあ...
-
テキストボックスにセルの値を...
-
POIでのテキストボックス作成に...
-
VB6.0 でメニューを作りたいん...
-
VBからPDFファイルの埋め込みテ...
-
VBAからPDFのテキストフィールド
-
フォームのテキストの入力数字...
-
delphi6を使ってます。
-
漢字入力した値のカタカナ変換...
-
時計の:を点滅させたい
-
ホームぺージ制作で間違って重...
-
ただただ無駄な
-
Flashで恋愛ゲームを作りたいの...
-
空白で入力フォームのボタンを...
-
VB.NET2005 DataGridViewでレコ...
-
IP Address 入力フォームについて
おすすめ情報