エクセルの右クリックメーニューにマクロを登録してみた
右クリックメニューに昨日
作った値貼り付けのマクロを登録
まずは右クリックメニューの場所を確かめる
コマンドバーとそのコントロールの一覧を作ってみて見てみると
僕の環境ではセルの右クリックメニューはコマンドバーの36番目らしいAlt+F11でVBAを起動してイミディエイトウィンドウで確認してみる
イミディエイトウィンドウを表示して36番目の名前を確認
?application.CommandBars(36).name
↑を書いてカーソルをこの行においた状態でエンターキーを押す
Cellが返ってきたのでセルの右クリックメニューは
36番目であっていることが確認できた
貼り付けと形式を選択して貼り付けの間に追加したいので場所の確認
上から数えて4か5番目位なので5番で確認してみる
36番目のコマンドバーの5番目のコントロールの表示文字は?
イミディエイトウィンドウに?application.CommandBars(36).Controls(5).Caption
でエンターキーを押すと
形式を選択して貼り付け(&S)...
と返ってきたので形式を選択して貼り付けは5番めと確認できた
5番目の前に追加すればいいので
application.CommandBars(36).Controls.Add before:=5
これで5番目の前にボタンの追加になる
行の先頭に?が付いていないので実行になる
右クリックメニューを出してみるとボタンが追加されているのがわかる
次はボタンに文字を追加の前に場所の確認
5番目の前に追加したんだから追加したボタンは5番になっていて
表示されている文字はないから空白が返ってくるはず
?application.CommandBars(36).Controls(5).Caption
で5番目を確認してみると空白が返ってきたのであっている
次は文字の追加
表示する文字は値貼り付けにしてみた
application.CommandBars(36).Controls(5).Caption = "値貼り付け"を実行
表示されるようになった
最後はマクロの登録
application.CommandBars(36).Controls(5).OnAction = "値貼り付け"
Onactionに登録したいマクロの名前を入れる
あったんだけど特にファイル名とかいれなくても動いた
動いたんだけど昨日作ったこのマクロではエラーが出る
セルのコピーからの貼付けなら問題ないけど
普通のテキストやウェブブラウザの文字をコピーして貼り付けようとすると
エラーになる
昨日は値貼り付けのマクロを作るよりもとからある値貼り付けのボタンを
コピーして登録すればいいじゃないかと思いついて探したんだけど
見当たらなかったのでマクロを登録した
エクセル2000の時は当たり前のようにわかりやすいところに値貼り付けの
ボタンがあったんだけどエクセル2007ではなくなってしまったのかな?
ここに値のみをコピーっていうのを試してみたんだけど
ファイルの新規作成の画面が出てくるだけだった