質問 |
||
QNo.3424376 | Excelを閉じたらスクリーンキーボードも閉じるには | |
---|---|---|
質問者:qq4w2299 |
Excelでスクリーンキーボードより文字入力していますが Excelを閉じてもスクリーンキーボードはWinXPに付属している為、閉じないのですがExcelを閉じたらスクリーンキーボードも閉じるようにするにはどのように設定したら閉じますでしょうか? |
|
困り度:
|
||
質問投稿日時: 07/10/13 00:18 |
回答 |
|
ANo.2 | #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記事に載っています。 本当はこれも入れないといけないが、質問者の補足のレベルでは、ゆっくり勉強してからやってください。 |
---|---|
回答者:imogasi | |
種類:アドバイス どんな人:一般人 自信:参考意見 |
|
回答日時: 07/10/13 23:27 |
|
| |
この回答へのお礼 | 書込み有難う御座いました。 イベントプロの中に直接入れる為 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右上の[×]で閉じたらスクリーン キーボードが閉じるようにしたいのですがどう記述したら良いでしょうか? |
回答良回答20pt |
|
ANo.1 | エクセル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ガあったから簡単なコードでできそうですが。 コンピュター関連では、素人でも簡単に思いつく課題が、解決には、大変な勉強が必要なものが多いですよ。 |
---|---|
回答者:imogasi | |
種類:アドバイス どんな人:一般人 自信:参考意見 |
|
回答日時: 07/10/13 09:34 |
|
| |
この回答へのお礼 | 書込み有難う御座いました。 今、内容はよく理解できていないのですが、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 |