Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


30326 / 76738 ←次へ | 前へ→

【51679】Re:ショートカットメニューやコマンドメニューを自動で閉じる方法
発言  ichinose  - 07/9/29(土) 15:23 -

引用なし
パスワード
   こんにちは。

>ちなみに私が作ったマクロは以下の通りです。
>
>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で↑こういうことするのは難しいですね!!
(参照だけなら、可能ですが)。


試してみてください。
0 hits

【51668】ショートカットメニューやコマンドメニューを自動で閉じる方法 ZARDist 07/9/29(土) 5:25 質問
【51672】Re:ショートカットメニューやコマンドメニ... n 07/9/29(土) 11:39 発言
【51673】Re:ショートカットメニューやコマンドメニ... ichinose 07/9/29(土) 12:20 発言
【51675】Re:ショートカットメニューやコマンドメニ... ZARDist 07/9/29(土) 13:04 お礼
【51679】Re:ショートカットメニューやコマンドメニ... ichinose 07/9/29(土) 15:23 発言
【51680】Re:ショートカットメニューやコマンドメニ... n 07/9/29(土) 15:50 発言
【51681】Re:ショートカットメニューやコマンドメニ... ZARDist 07/9/29(土) 23:21 お礼
【51674】Re:ショートカットメニューやコマンドメニ... ZARDist 07/9/29(土) 12:35 お礼
【51676】Re:ショートカットメニューやコマンドメニ... n 07/9/29(土) 13:06 発言
【51677】Re:ショートカットメニューやコマンドメニ... n 07/9/29(土) 13:29 発言
【51678】Re:ショートカットメニューやコマンドメニ... ZARDist 07/9/29(土) 13:50 お礼

30326 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free