[[20201029182858]] 『VBAでショートカットの割り当て』(spacedragon) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでショートカットの割り当て』(spacedragon)

皆様、こんばんは♪

下記のように引数を変数渡しにしたいのですが
可能でしょうか?

Dim 引数1 As String, 引数2 As Variant
引数1 = "^{m}",
引数2 = "サブルーチン名"
Application.OnKey 引数1, 引数2

このまま実行しますとエラーになります。
ちなみに、Application.OnKeyを
「Application.MacroOptions」に変えても同様にうまくいかないです。

どうぞご教示よろしくお願い致します。

< 使用 Excel:Office365、使用 OS:Windows10 >


>引数1 = "^{m}",
最後のコンマが原因では?

というか、エラーが出ている行がマークされて、エラーメッセージが表示されてるはずだけど、何と出てるの・・・
(名無し) 2020/10/29(木) 19:01


あ、失礼しました!!

Dim 引数1 As String, 引数2 As Variant
引数1 = "^{m}"
引数2 = "サブルーチン名"
Application.OnKey 引数1, 引数2

です。
エラーは、
'OnKey' メソッドは失敗しました: '_Application' オブジェクト
です。
(spacedragon) 2020/10/29(木) 19:24


提示されてるコードを実行しても、エラーは再現されませんでした。

本当にそのサンプルでそのエラーが出るのですか?

エラーが出るのは、別のキー、別の名前ではありませんか?

値を変えてみたり、書くモジュールを変えたり、新規ブックで試したりして、動く事例と動かない事例を上げると解決に繋がるかもしれません。
(名無し) 2020/10/29(木) 20:44


ありがとうございます。
もう少し調べてみます。
(spacedragon) 2020/10/29(木) 21:12

 横から失礼。
 これは動作しますか、どうですか?
 Sub test()
     Dim 引数1 As String, 引数2 As Variant
     引数1 = "^{m}"
     引数2 = "testA"
     Application.OnKey 引数1, 引数2
 End Sub
 Sub testA()
     MsgBox "OK"
 End Sub

(γ) 2020/10/29(木) 21:17


それはこちらでは動作するのですが、
そちらで動作しなければ、なんらかの環境的なものですね。
もう一度、Excelを再立ち上げしたり、
新しいブックで実行しても同じですか?

(γ) 2020/10/29(木) 21:20


ありがとうございます。
     引数1 = "^{m}"
     引数2 = "testA"
だと、ちゃんと動作します。
正確に記述しなくて申し訳ございません。
実は、引数1、引数2共にセル範囲から読み込みます。
そうすると、「Application.OnKey」が受け付けてくれません。
何か型変換等が必要なのでしょうか?
(spacedragon) 2020/10/29(木) 21:38

やっぱり。
引数を与えないとダメです。
どんな引数なのか提示してください。

(γ) 2020/10/29(木) 21:44


皆様大変お騒がせしてすみません。
セルに記載した"^{m}"が"^ {m}"となっていて
余計なスペースを含んでおりました。
trimしてうまく動きました。

ありがとうございました。
(spacedragon) 2020/10/29(木) 21:52


プロシージャが引数を持つのかと思ってしまいました。そうではなかった。

質問にあたっては、自分の思い込みが最大の敵ですから、
あまり加工せずに、コピーペイストするのがよいと思います。

勝手に割り込み、失礼しました。

(γ) 2020/10/29(木) 21:57


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.