プロが教えるわが家の防犯対策術!

Excelでスクリーンキーボードより文字入力していますが
Excelを閉じてもスクリーンキーボードはWinXPに付属している為、閉じないのですがExcelを閉じたらスクリーンキーボードも閉じるようにするにはどのように設定したら閉じますでしょうか?

A 回答 (2件)

エクセルVBAの経験ありますか。


多分操作による、どこかの設定では難しいと思います。
http://officetanaka.net/excel/vba/tips/tips61.htm
を使わせてもらって
エクセル標準モジュールに
Sub Sample2()
Dim WD
Set WD = CreateObject("Word.Application")
If WD.Tasks.Exists("スクリーン キーボード") Then
MsgBox "スクリーン キーボードを終了"
WD.Tasks("スクリーン キーボード").Close
End If
WD.Quit
Set WD = Nothing
End Sub
を入れて、実行すると、終了します。
「スクリーン キーボード」の2語の間は半角スペースでした。

ファイル名を指定して実行で、osk.exeでスクリーンキーボードをhらいておいて、実行して見ました。
エクセルを閉じるときなので
エクセルのThisWorkbookのBeforeCloseイベントに
Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub
に上記のコードを挟む
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sample2
End Sub
こういうのが判らなければ、断念せざるをえない。
たまたまワードにTasks.Existsガあったから簡単なコードでできそうですが。
コンピュター関連では、素人でも簡単に思いつく課題が、解決には、大変な勉強が必要なものが多いですよ。
    • good
    • 0
この回答へのお礼

書込み有難う御座いました。
今、内容はよく理解できていないのですが、ThisWorkbookにマクロを記述しています。

Private Sub Workbook_Open()
    ~省略~
End Sub

この下に
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sub Sample2()
Dim WD
Set WD = CreateObject("Word.Application")
If WD.Tasks.Exists("スクリーン キーボード") Then
MsgBox "スクリーン キーボードを終了"
WD.Tasks("スクリーン キーボード").Close
End If
WD.Quit
Set WD = Nothing
End Sub
とコピーさせていただいたのですがうまく動作しません。
どう記述したらよいでしょうか?








Sample2
End Sub

お礼日時:2007/10/13 22:43

#1です。


違います。Sub Endをネストさせるのではありません。
Sub Sample2()
Dim WD
Set WD = CreateObject("Word.Application")

Set WD = Nothing
End Sub
はイベントプロの中に直接入れるなら
最初の Sub Sample2()
最後の End Sub
の2行だけを除きます。
ーー
独立させるなら
イベントプロの外へ置いて、
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sample2
End Sub
で一まとまり
外に別に
Sub Sample2()
Dim WD
Set WD = CreateObject("Word.Application")

Set WD = Nothing
End Sub
で1まとまりとして、それらを書きます。今回はコピペですが。
ーーー
上記ガうまくいったとして
スクリーンキーボードを使用してないときエクセルを
閉じるとエラーになるでしょう。
開いているかどうか調べる方法は、上記WEB記事に載っています。
本当はこれも入れないといけないが、質問者の補足のレベルでは、ゆっくり勉強してからやってください。
    • good
    • 0
この回答へのお礼

書込み有難う御座いました。
イベントプロの中に直接入れる為
Dim WD
Set WD = CreateObject("Word.Application")
If WD.Tasks.Exists("スクリーン キーボード") Then
MsgBox "スクリーン キーボードを終了"
WD.Tasks("スクリーン キーボード").Close
End If
WD.Quit
Set WD = Nothing
と記述させていただきましたが
ダイアログBOXで"スクリーン キーボードを終了"が出て
それをOKしないと閉じないのですが
Excel右上の[×]で閉じたらスクリーン キーボードが閉じるようにしたいのですがどう記述したら良いでしょうか?

お礼日時:2007/10/20 00:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています