午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

エクセル2007でツールバーのようなものを作ってみた

エクセル2007ではツールバーがなくなってしまったようなので

代わりになるようなものを作ってみた

イメージ 1
ボタンを押すと登録してあるマクロが動く
今回は選択範囲の日本語入力をオフにするマクロの場合
 
初期設定だとマクロを作成するボタンは非表示になっているので
表示する設定にする

f:id:gogowaten:20191014133648p:plain

エクセルのオプション→基本設定→開発タブにリボンを表示するに
チェックを入れる
 
f:id:gogowaten:20191014133704p:plain
関係ないけど設定画面眺めていたらマルチスレッドの設定もあった
2007ですでに対応していたんだなあ
これを知っていれば買った当時に移行していたのにw
 
イメージ 4
開発タブが表示されるようになったのでここから
マクロの記録

f:id:gogowaten:20191014133743p:plain

他のブックでも追加したいマクロを作るときは
個人用マクロブックを指定、OK押して記録開始
適当なセル範囲を選んで

f:id:gogowaten:20191014133755p:plain

マクロ記録を終了して
記録したマクロを編集

f:id:gogowaten:20191014133836p:plain

開発タブ→マクロ、記録したマクロを選択して編集で
VBAが起動
この辺りは2000と同じだなあ

f:id:gogowaten:20191014133911p:plain

必要なのは
 .IMEMode = xlIMEModeOff
だけかと思ったけど
.Deleteと.Addのところをコメントアウトしたらエラーになったので
この3つを残してほかはコメントアウトしてみた
でもやっぱりこの作業はいらないか
あとはマクロの名前をわかりやすく
選択範囲のIMEオフ
にした
 
ユーザーフォーム(ウィンドウ)を作るf:id:gogowaten:20191014133927p:plain

f:id:gogowaten:20191014133954p:plain

こんなかんじの画面が出てきて

f:id:gogowaten:20191014134011p:plain

フォームの大きさを適当に変えて
マクロを登録するボタンを作って

f:id:gogowaten:20191014134030p:plain

ボタンにさっき作ったマクロを登録するには
ボタンを右クリックからのコードの表示
またはボタンをダブルクリックでコードの表示

f:id:gogowaten:20191014134047p:plain

さっき作ったIMEオフのマクロの作成場所は
個人用マクロブック(PERSONAL.XLSB)で
ツールバーの作成場所はMHP3.xlsmという別のブックなので
別のブックのマクロを呼び出すことになるから
呼び出すときはCallではなくてApplication.Runっていうのを使うみたい
最初はCallで書いてエラーになって
 
ググったらこうだった
Office TANAKA - Excel VBA Tips[他ブックのマクロを実行する]
Application.Run "PERSONAL.XLSB!選択範囲のIMEオフ"
これを書けばボタンへのマクロの登録は完了
次はこのフォームを呼び出すマクロの作成

f:id:gogowaten:20191014134116p:plain

フォームを開くマクロは別のモジュールに書いたほうが
いいかなと思っていて
f:id:gogowaten:20191014134132p:plainマクロの名前はフォーム表示にした
 
Sub フォーム表示()
    UserForm1.Show (vbModeless)
    End Sub
これでフォームを呼び出すマクロ完成
次はこのフォームを呼び出すマクロを呼び出す(実行する)ボタン作成
呼び出してばっかりだなあ

f:id:gogowaten:20191014134204p:plain

 
クイックアクセスツールバーを右クリックでカスタマイズ

f:id:gogowaten:20191014134228p:plain

コマンドの選択からマクロを選択

f:id:gogowaten:20191014134311p:plain

さっき作ったマクロの「フォーム表示」を追加

これで全て完了
 
 

f:id:gogowaten:20191014134406p:plain

アイコンの変更
 
 

f:id:gogowaten:20191014134421p:plain

作成されたボタンをクリックするとフォームが表示される
表示される位置は指定していないのでエクセルのウィンドウの
中央に表示されるみたい
どこにでも移動できるので
これでマクロを実行するのにわざわざマウスを画面の上まで
移動する必要がなくなった
イメージ 21
セルを右クリックした時に出てくるスマートタグっていうのかな
これが便利でこれにマクロを登録できたら更に便利なんだけど
できたりするのかな
 
エクセル2007といい時間がずれているなあ
新しいのはWindowsだけだな