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

こんばんは。

エクセルのマクロについて質問です。

作業工数管理表を作成しています。
作業を開始時間と終了時間を入力する際、
ダブルクリックすると現在時間が表示されるように下記コードを組んでいますが、
何かキーを打つと自動的に現時間が表示されるようにマクロを組むことはできるでしょうか。

-------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Intersect(Target, Range("B4:B200,J4:J200")) Is Nothing Then Exit Sub

If ActiveCell = "" Then
ActiveCell = Time
Cancel = True
End If


End Sub

---------------------

「Ctrl」+「;」ではなく、ひとつのキーで表示させたいと考えています。

方法がございましたらご教示いただけますようどうぞよろしくお願いします。

A 回答 (4件)

こんにちは、



メッセージ:マクロ'[ブック名]![マクロ名]'を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。

という表示が出ましたら、

〔セキュリティの警告〕欄の[オプション]ボタンをクリックします。[Microsoft Officeセキュリティオプション]ダイアログボックスが表示され、[このコンテンツを有効にする]を選択して、[OK]ボタンをクリックします。

なお、[F2]は、既存のショートカットがありますから、押してもぶつからないものが良いと思います。
VBEditor 側で、OnKey をヘルプで調べれば、適当なキーが出てくるはずです。

すでに、回答は出ていますが、念のために、こちらも書かせていただくことにします。

Auto_Open を実行しても、ブックを再度開いても、設定されます。

'標準モジュール 
'-------------------------------------------
Sub Auto_Open()
'SetKey '起動時に設定
Application.OnKey "{F12}", "ShowTime"
End Sub
Sub Auto_Close()
'Set Key off '終了時に解除
Application.OnKey "{F12}"
End Sub
Private Sub ShowTime()
ActiveCell.Value = Format(Time, "hh:mm")
End Sub
    • good
    • 0

Sheetのコードに下記を


Private Sub Worksheet_Activate()
Application.OnKey "{F2}", "test"
End Sub

Private Sub Worksheet_Deactivate()
Application.OnKey "{F2}", ""
End Sub

標準モジュールに下記を
Sub test()
Range("A1") = Time
End Sub

この回答への補足

okormazdさん

ご回答ありがとうございます。

教えていただいたコードを試してみましたが、
どうにも私の思うように動作せず行き詰ってしまい、返事が遅くなってしまいました。 ごめんなさい。

上記コードはF2キーを押下した際にA1セルに現在時間が表示されるという認識でよろしいでしょうか。

試してみたところ、F2キーを押すと通常のセルの編集になります。
「マクロの実行」をクリックすると、A1セルに現在時刻が表示されました。

私のやり方に、何か根本的な誤りがあるのでしょうか。
ご指摘いただけますようよろしくお願いいたします。

補足日時:2009/12/20 16:04
    • good
    • 0

5行目のコメントは無視してください。

削除し忘れました。
    • good
    • 1

Sub FkeySet()


Application.OnKey "{F12}", "時刻登録"
End Sub
Sub FkeyReset()
Application.OnKey "{F112}" 'タブキーの設定を解除
End Sub
Sub 時刻登録()
ActiveCell = Time
End Sub
FkeySetを起動してからFkeyResetを起動するまでの間はF12に反応して時刻登録が実行されます。
キーを変えたいときはヘルプでOnkeyを調べてみたください。
    • good
    • 0
この回答へのお礼

こんばんは。
早速の回答ありがとうございます。

いただいたコードを試してみたところ、
FkeySetを実行しF12キーを押下しても
「マクロ'ブック名!時刻登録を実行できません。このブックでマクロが使用できないか、
または全てのマクロが無効になっている可能性があります。」
と表示されます。

[マクロ]より"時刻登録"を実行すると、時間が表示されるのですが。

当方マクロに関してまったくの初心者のため、教えていただいたコードをコピペしておるのですが、何か他に手を加えないといけないでしょうか。
----------------
Sub FkeySet()
Application.OnKey "{F12}", "時刻登録"
End Sub
Sub FkeyReset()
Application.OnKey "{F12}"
End Sub
Sub 時刻登録()
ActiveCell = Time
End Sub
-------------------

お手数をおかけしますがご教示いただけますようよろしくお願いいたします。

お礼日時:2009/12/05 22:08

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