[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロの使い方』(石美祢)
ただ、この呼び出しが面倒です。よく使うマクロを上の方に持ってくるとかでき
ないため、名前の先頭を少しずつ変えて、よく使うものを上の方に登録しています。
ボタンの登録でもいいのですが、何種類もあるとどのアイコンがどのマクロという
のが覚えられません。
いっそのこと、クイックアクセスツールバーに、自分で登録したマクロを
追加できないかと思いましたが、このようなことはできますか?
そこまで名前がわかっていれば、検索でいろいろと実装例が見つかりますよ。 http://officetanaka.net/excel/excel2007/044.htm (Mook)
エクセルの機能を活用という観点でメニューに登録するという方法も、確かにあるけれど、 マクロブックを他のPCで動かすなんてことがあるとやっかいな面もでてくる。
たとえばユーザーフォームを用意して、そこにプロシジャの数だけコマンドボタンを配置する。 ボタンのキャプションにどのマクロかわかるような文言をいれておく。 順序も任意になるし、必要ならコメントなどもラベルに書き込んでおいたりControlTipTextに書いておいて マウスを当ててポップアップさせることもできる、等々、融通性がメニュー登録より増す。
で、このユーザーフォームをShowするプロシジャをショートカット登録しておいて表示させるなり ブックのOpenイベントで走らせるなり。
サンプル
標準モジュール (ブックの WOrkbook_Openプロシジャでもいい)
Sub ShowForm()
UserForm1.Show
End Sub
ユーザーフォームモジュール
Private Sub CommandButton1_Click()
LinkProc "マクロ名"
End Sub
Private Sub CommandButton2_Click()
LinkProc "マクロ名"
End Sub
Private Sub CommandButton3_Click()
LinkProc "マクロ名"
End Sub
Private Sub LinkProc(pName As String)
Me.Hide
Application.Run pName
Me.Show
End Sub
(ぶらっと)
同じファイル上に登録したマクロを、コマンドボタンに登録する場合はうまくいきますが、
他のファイル上に登録したマクロを、登録した場合はどのように書けばいいのでしょうか。
さらに、他のファイルの名前が変わるので、次のようなコードを書きましたが(よくわからずに書きました。。。)、
Private Sub CommandButton15_Click()
Dim WB As String
WB = ActiveWorkbook.Name
LinkProc "WB!マクロ名"
End Sub
実行時エラー1004
Runメソッドは失敗しました、Application オブジェクト
が表示され、デバッグを押すと、「Application.Run pName」が黄色でハイライトされてしまいます。
(石美祢)
それでは、まずLinkProc を
Private Sub LinkProc(pName As String, Optional wbn As Variant)
Me.Hide
If IsMissing(wbn) Then
Application.Run pName
Else
Application.Run wbn & "!" & pName
End If
Me.Show
End Sub
で、自ブックマクロは、今まで通りの記述。
別ブックマクロなら(その別ブックが開かれているという前提で)
Private Sub CommandButton15_Click()
LinkProc "マクロ名","別ブッック名" '別ブック名は拡張子付き
End Sub
ところで、この構成は、マクロ実行がおわれば自動的にフォームが再表示される。 便利といえば便利だけど、フォームがモーダル表示されるので、フォーム表示中はブックをさわれない。 これが具合悪ければ、一番簡単な方法としては、LinkProcの最後の Me.SHow をけす。 で、必要なら、再度SHowFormを実行する。
(ぶらっと)
ありがとうございました。うまくいきました。
フォームがモーダル表示されるので、フォーム表示中はブックをさわれない
Showのあとに、vbModelessと書いてもいいですね。
大変勉強になりました。
(石美祢)
>Showのあとに、vbModelessと書いてもいいですね。
でもいいね。 本格的にフォームをモードレス表示にして本件対応する構成にもできる。すこし「技」が必要になるけど。
追記)「技」をつかっても、本件の役にはたたないということに気がついたので ↑のコメントは忘れてください。
(ぶらっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.