右クリックメニューに、セルの結合/解除を追加する方法(for Excel)
会社で仕事って言うと、Excel/Word/PowerPointなどのOffice製品は必須なんですよね。
でまぁ、業務中に これらを扱う時間て結構多い訳。
となると、(嫌がる人も世の中にはいるらしいけど)ある程度習熟しないと、仕事が効率化できない訳。
例えば、以下のようなケース。
- Excelを開く
- キーボードからポチポチ入力
- マウスに手を延ばして、書式設定 ふにふに
- 2に戻る
…一々 キーボードから手を離してマウスに持っていくのが面倒なんじゃ〜っ と漏れは思う訳。
だから、簡単かつ便利なショートカットは ある程度覚えてます。
だもんで、他の人達が頻繁にマウスに手を延ばすのを見て、別の意味で感心してしまう訳ですよ旦那。
(ちなみに、この間 びっくりしたのは、エディタでプログラムしている人が居て、コードのコピペをしているんだが、コピー&ペーストを マウスで しこしこやってんの。アレ見て、マウスに手を延ばさない 自分は、旧世代の人間なんだろうか?と考え込んでしまったね、ホント)
で、最近Excel使っていて段々我慢ならなくなったのが、セルの結合と解除の作業。
あ、セルの結合ってのは複数のセルを一つに合わせる機能の事。
Excel posted from フォト蔵
整形化された表を作るには便利な機能なんだけど、これが
- 1つにしたいセルを複数選択
- ツールバーの「セルの結合」ボタンに持っていってクリック
なんて面倒な事をしなけりゃならない。
ショートカットか右クリックメニューにあれば、こんな面倒な事をしなくて済むのに って事で、右クリックメニューに「セルの結合」を入れる方法を探した訳。
ま、結論から言うと、VBAの機能を使えば出来る。
参考にしたレシピとしては、以下のサイト。
- personal.xls 強化講座 その4
http://www.excel7.com/personal/personal4.htm - Excel マクロ集(FaceIDの一覧表 [Excel97](GIF画像ファイル))
http://www14.big.or.jp/%7Ekawamura/excelmacro.htm
以下に簡単に作り方を示す。
1.新しいマクロの記録 を開始する
メニューから「ツール」→「マクロ」→「新しいマクロの記録」を選択する。
Excel posted from フォト蔵
で、「マクロを記録」ダイアログが出てくるが、この時、"マクロの保存先"を"作業中のブック"でなく"個人用マクロブック"にする事。
だって、作ったマクロを他でも使いまわしたいじゃん?("個人用マクロブック"にすれば、新規にブックを作っても使える)
Excel posted from フォト蔵
2."セルの結合"を行って記録完了
とりあえず、マクロの記録では "セルの結合"ボタンを押して作業を終了する。
Excel posted from フォト蔵
3.Visual Basic Editorを開く
メニューから「ツール」→「マクロ」→「Visual Basic Editor」を開く。
すると、personal.xlsの標準モジュールに、さっきの記録したマクロが入っている。
Excel posted from フォト蔵
4.コードを追加する
後は、このpersonal.xlsの標準コードん所に、コードを突っ込むだけ。("personal.xls 強化講座 その4"のコードを若干弄っただけの代物です。はい)
面倒なんで、以下のコードをコピペすればOKだと思うよ。
Sub auto_open() Add_RightClickMenu_2 1 'auto_open に既に他のマクロが記述されている場合には、 'この1行だけを追加する End Sub Sub Add_RightClickMenu_2(num%) '標準メニューの下に追加 ' auto_openに追加するのを忘れずに! Dim i As Long Dim cstBar As CommandBar Dim wcb As CommandBar i = 0 For Each wcb In CommandBars i = i + 1 Select Case wcb.Name Case "cell", "Cell", "column", "Column", "row", "Row" Application.CommandBars(i).Reset Set cstBar = CommandBars(i) cstBar_sub_2 cstBar ' Case Else ' DoEvents End Select Next End Sub Sub cstBar_sub_2(cstBar As CommandBar) Dim i% i = cstBar.Controls.Count + 1 ' With cstBar .Controls.Add Type:=msoControlButton .Controls(i).Caption = "セルの結合(&B)" .Controls(i).OnAction = "Macro1" .Controls(i).FaceId = 798 .Controls(i).BeginGroup = True End With ' i = i + 1 With cstBar .Controls.Add Type:=msoControlButton .Controls(i).Caption = "セルの結合解除(&R)" .Controls(i).OnAction = "Macro2" .Controls(i).FaceId = 800 End With End Sub Sub Macro1() ' セルの結合 Selection.Merge End Sub Sub Macro2() ' セルの結合解除 Selection.UnMerge End Sub
5.早速試す
早速試してみよう。
実の所、方法としては、以下の2通りある。
- 一旦ファイルを閉じて、Excelを起動する
- auto_open関数の所にカーソルを移動して、F5キーを押す
まぁ、F5キーを押すのが楽ですな。
すると、auto_open関数の所にある"Add_RightClickMenu_2 1"のコードが実行され、右クリックメニューに"セルの結合"と"セルの結合解除"が追加されるという次第。
Excel posted from フォト蔵
余談だけど、右クリックメニューから"セルの結合"を外したければ、"Add_RightClickMenu_2"関数の"Application.CommandBars(i).Reset"の下の2行をコメントして、再度実行すればOK。綺麗さっぱり消えます。はい。