|
こんにちは。
>ちなみに私が作ったマクロは以下の通りです。
>
>Private Sub Workbook_Open()
>Timer
>End Sub
>
>Sub Timer()
> Dtime = Now + TimeValue("00:05:00")
> Wtime = TimeValue("00:00:00")
>Application.OnTime TimeValue(Dtime),"Autoclose",TimeValue(Wtime)
>End Sub
>
>Sub Autoclose()
>ActiveWorkbook.Close
>End Sub
>
>次に再現手順についてご説明いたします。
>(上記マクロを保存して)
>1.エクセルを「マクロ有効」にして開く
>2.セルを選択し右クリックしてショートカットメニューを表示させる
>(またはコマンドボタンを押してプルダウンメニューを表示させる)
>3.本来なら5分後にブックが閉じるはずなのに閉じない
>4.ショートカットメニューおよびプルダウンメニューを手動で閉じるとブックが自動で閉じる
↑こういう記述があると、多くの方が再現出来ますよね!!
>
>>VBSや別プロセスのExcelから対象Excelを操作すると可能ですよ!!
>すごいですね!びっくりしました!!
>大変恐縮ですがもう2、3ご教示頂けませんでしょうか?
>
>1.特定のブックを開きたい場合vbsのコード上でどのように表記すればよいでしょうか?
>2.特定のブックのみ閉じたい場合vbsのコード上でどのように表記すればよいでしょうか?
dim app,bk,stt,fs
set fs=createobject("scripting.filesystemobject")
Set app = CreateObject("excel.application")
With app
.Visible = True
set bk=.Workbooks.open(fs.GetParentFolderName(wscript.scriptfullname) & "\book1.xls")
bk.worksheets(1).cells(1,1).value="book1.xlsの表示成功"
stt=now()
do while now()-stt<=#00:00:10#
wscript.sleep 500
loop
.visible=false
.visible=true
bk.Close False
'.quit
end With
set app=nothing
set fs=nothing
但し、上記のVbsコードを含むtest.vbsと読み込むブックであるBook1.Xlsは
同じフォルダ内にあるものとします。
(これも行の前後の全角の空白に気をつけてください)
nさん、こんにちは。
>やはりvbsなのかな、という気もしますが、セル編集中に対しての対策は思い浮かびませんので
VBSからだとセルを編集中の場合は、駄目ですね!!
でも、同じ方針で別Excelからコントロールすると私の環境だと
うまくいきましたよ!!(Win2000&Excel2002)
例、
Book2.Xlsというブックの標準モジュールに
'==================================================================
Option Explicit
Dim app As Application
Dim bk As Workbook
Sub main()
Set app = CreateObject("excel.application")
With app
.Visible = True
Set bk = .Workbooks.Open(ThisWorkbook.Path & "\book1.xls")
End With
Application.OnTime Now() + #12:00:05 AM#, "test"
End Sub
'==================================================================
Sub test()
app.Visible = False
app.Visible = True
bk.Close False
' app.Quit
Set app = Nothing
Set bk = Nothing
End Sub
として、読み込むブックBook1.Xlsと同じフォルダ上に保存した後、
実行してみて下さい。
>エクセルブックは共有サーバーに入れていて複数名で交互に編集しますので
Excelで↑こういうことするのは難しいですね!!
(参照だけなら、可能ですが)。
試してみてください。
|
|