電子書籍の厳選無料作品が豊富!

エクセル2010を使っている者です。

個人用マクロブックにマクロを登録し、ショートカットキーの割り当ても行いました。

しかし、特定のファイルでのみ、そのショートカットキーの適用を除外して、
そのファイルに設定したマクロをそのキーに割り当てたいと思っているのですが、
可能でしょうか?

よろしくお願いいたします。

A 回答 (3件)

申し訳ありません、補足です。


OnKeyメソッドの場合、該当ブックを閉じてもエクセルを一旦終了させるまでショートカットキーがブックで設定した内容がそのまま有効になってしまうようです。
その為ショートカットを元に戻したい場合は面倒ですが一旦エクセル自体を終了させる必要があります。

もしくは該当ブックのThisworkbookモジュール内に追加で

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^u"
End Sub

と入れる方法でも良いかもしれません。
(マクロ名を外すことでショートカットの適用が解除されます)

MacroOptionsでも試しましたがこちらはマクロのダイアログをVBAで書き換えるというメソッドの為、個人用マクロブックと同じショートカットキーには出来ないようでしたm(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/11/28 10:41

私も、久々に、こんなマクロを考えてみました。



PERSONAL.XLSBに登録します。

'Class1モジュール
Private WithEvents NewApp As Application
Public Property Set myNewApp(ByVal myApp As Application)
 Set NewApp = myApp 'セキュリティを考えて、カプセル化しました。
End Property
Private Sub NewApp_WorkbookActivate(ByVal Wb As Workbook)
If StrConv(Wb.Name, vbUpperCase) Like "AB*" Then
'ファイル名にABとついたものだけ、マクロ1にする
 Application.OnKey "^g", "myMacro1" 'マクロ1
Else
 Application.OnKey "^g", "myMacro2" 'マクロ2
End If
End Sub

'標準モジュール:
Public myClass As Class1
Sub Auto_Open()
  Set myClass = New Class1
  Set myClass.myNewApp = Excel.Application
End Sub
Public Sub myMacro1()
  MsgBox "Date: " & Date '特定のブックでは、日付
End Sub
Public Sub myMacro2()
  MsgBox "Time: " & Time '普通のブックでは、時間
End Sub
    • good
    • 0
この回答へのお礼

プログラムを作っていただき、ありがとうございます。

勉強します。

お礼日時:2013/11/28 10:42

もしかしたらエクセルのバージョン等の環境によって違ってくるかもしれないですが、当方のエクセル2007では除外したいファイルにApplication.Onkey等を割り当てておくことで個人用マクロブックの適用は除外されました。



例えばCtrl+uを割り当てたいのであれば、以下の様なコードを対象ファイルのThisworkbookモジュール内に記述します。

Private Sub Workbook_Open()
Application.OnKey "^{u}", "Macro1" 'Ctrl+uでMacro1を呼び出し
End Sub

~Onkeyの他にもMacroOptionsというメソッドもあるようです。。
http://www.moug.net/tech/exvba/0150112.html
    • good
    • 0
この回答へのお礼

遅くなって申し訳ありません。

プログラムを別に書かないといけないわけですね。

勉強になりました。

お礼日時:2013/11/28 10:40

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