
No.2ベストアンサー
- 回答日時:
こんにちは。
#1の回答者です。
>IMEではなくATOKを使っています。
>Excle内だけでこの設定を有効にしたいのですがマクロを使った方法を使いたいと考えています。
念の為に、このようなキーボードスワップを見つけました。
KeySwap for XP
http://www.vector.co.jp/soft/winnt/util/se228667 …
私が、XPで使っていたものは、ソフトウェアごとに設定できましたが、上記のものはつかったことがありません。
以下は、単に、ESCだけを使えなくするプログラムです。
かなり昔に、話の行きがかりで作ったお蔵入りのコードで、いままで公開したことはありません。
その時は、それだけの勢いがありましたが、もう、私は、おなじようなものを作るだけの力は持っていません。設定は、特定のブックに対してでも、個人用マクロブックでも構いませんが、後者につけると、Excelを使う時には必ずESCが利かない状態になります。
本来は、解除用のプログラムもあるのですが、うまく働いていませんので、割愛しました。もちろん、ブックに取り付けたものですから、Excelを終了すれば解除されます。
'標準モジュールを新しく一つ設けてください。
'Auto_Openなど前のがあったら、削除してください。ただし、ThisWorkbook_Open()は構いません。
'実際に使う時は、失敗のErr の時のメッセージだけ残せばよいです。
'//新規の標準モジュール
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function RegisterHotKey Lib "user32.dll" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
'Private Declare Function UnregisterHotKey Lib "user32.dll" (ByVal hWnd As Long, ByVal id As Long) As Long 'これは使っていません。
Private Const VK_ESCAPE As Long = &H1B
Private HookFlg As Boolean
Sub Auto_Open()
Call Disabled_ESCAPEKey '起動時に設定
End Sub
Sub Disabled_ESCAPEKey() '設定
Dim rtn As Variant
Dim hWnd As Long
hWnd = FindWindow("XLMAIN", Application.Caption)
rtn = RegisterHotKey(hWnd, 1&, 0&, VK_ESCAPE)
If rtn = 0 Then
MsgBox "Not Success", vbCritical, "Err"
Else
HookFlg = True
MsgBox "Success Hotkey Hooked" 'うるさいかもしれません。
End If
End Sub
'//
No.1
- 回答日時:
こんにちは。
本来、IME側のプロパティのEscの設定が、文字を消去するように設定されているからです。
だから、IME側のキー設定を直せばよいです。
MS IMEなら、ツール-プロパティ-全般=編集操作=キー設定で変更をします。
しかし、Excel内で何かに割り当てというのでしたら、
個人用マクロブックの標準モジュールにこのようなコードはいかがですか?
'//個人用マクロブックの標準モジュール
Sub Auto_Open()
Application.OnKey "{ESC}", "SHOW_TIME" '何も反応させない時は、"{ESC}", "" でリセットになります。
End Sub
'//以下は、動いているかどうかを試すためのものです。
'//ステータスバー(下部左側)に日付と時間が出ます。
Sub SHOW_TIME()
Dim myTime As String
Dim STBtext As String
STBtext = Application.StatusBar
myTime = Format$(Date, "yy/mm/dd") & " " & Format$(Time(), "hh:mm")
If STBtext Like "##/##/##*" Then
Application.StatusBar = ""
Else
Application.StatusBar = myTime
End If
End Sub
'//
再起動するか、Auto_Openを実行すれば、設定が完了します。
この回答へのお礼
お礼日時:2015/02/10 13:24
IMEではなくATOKを使っています。
Excle内だけでこの設定を有効にしたいのですがマクロを使った方法を使いたいと考えています。
Sub Auto_Open()
Application.OnKey "{ESC}", ""
end sub
というのを試してみましたが、セル内にキーを入力中でない場合には
この機能は有効になるのですが
キーを入力中には無効となっており、
普通にキー入力が強制終了されてしまい使うことができません
どうすれば良いでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
原稿用紙の設定
-
wordに常に赤字で訂正を入れる方法
-
エクセルの「塗りつぶし」の色...
-
エクセルでのみ句読点「。」が...
-
IE「自動構成スクリプトを使用...
-
RAM
-
ワードで等幅フォント句読点を...
-
ワードでローマ字数字を入力す...
-
Wordの入力中と確定後の文字の...
-
①~⑳は記号で変換できますが、...
-
予測変換で表示された変換候補...
-
EXCELで○A(丸で囲まれたA)とい...
-
パワーポイント 文字の太さを...
-
テプラSR828で○の中に11...
-
差し込み印刷された時の文字の...
-
ワードで2乗の表記をするには?
-
半角スペース
-
ワードで英単語を入力すると文...
-
半角の『°(単位の度)』
-
Excel 文字列の中から数字だけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの「塗りつぶし」の色...
-
wordに常に赤字で訂正を入れる方法
-
RAM
-
エクセルでのみ句読点「。」が...
-
スペースキーで変換ができません
-
起動時の日本語入力
-
ワードで英文をタイプするとき...
-
Office2007にしたら単語登...
-
MicrosoftOfficeOutlookが開か...
-
変換の不具合について
-
Word「ツール」での初期設定
-
IE「自動構成スクリプトを使用...
-
メールに記載のリンク先が開か...
-
原稿用紙の設定
-
地域と言語のオプション>言語...
-
分割禁則の設定方法
-
サクラエディタの設定について
-
nihongoganyuuryokudekimasen
-
Access2010 メール送信が出来ない
-
メール設定の仕方がわかりません
おすすめ情報