50代企業内診断士のつぶやき

50代の企業内診断士が、中小企業診断士試験や合格後の副業、iPadなどを使ったペーパーレスに挑戦する様子、エクセルの活用、会社員あるある、等をつづります

【VBAコード付】”選択範囲で中央”を右クリックメニューに追加しよう

f:id:okatasan-smec:20190324185804p:plain

<この記事は1835字です>

 

”選択範囲で中央”とは?

そもそも、”選択範囲で中央”というコマンドはなにか?を説明します。

”選択範囲で中央”は”セルの結合”と似ています。エクセルで表を作る際、その見出しに使うことが多いかと思います。下図の赤で囲ったようなケースです。

f:id:okatasan-smec:20190324170157p:plain

このような場合で”セルの結合”を使ってしまいがちですが、実はあまり良いことはありません。理由はおもに2つです。

  • コピー&ペイストがうまくいかない
  • オートフィルタがうまくいかない

詳しい内容は下記を参考になります。

【Excel】セルの結合は避けたほうがいいって本当?エクセルでセルを結合すると発生する問題点 - いまさら聞けないExcelの使い方講座 - 窓の杜

 

この場合は、”セルの結合”ではなく”選択範囲で中央”を使うと不具合を回避できます。操作は、簡単で下図のようにセルの書式設定→配置タブ→横位置→選択範囲で中央を選択するだけです。

f:id:okatasan-smec:20190324171217p:plain

しかし、結構な頻度で使う操作なのに結構めんどくさいですね。しかもこの操作はショートカットもありません。

ここは、自分で何とかするしかありません。少しハードルは高いですが、マクロを使うしかないのです。

マクロを使いますが、簡単にできます(コード付き)

マクロ使ってややこしいことになりそうな気がしますが、そんなに難しい事ではありません。それを説明します。

まずメニューバーの上(どこでもいい)で右クリックして”リボンのユーザー設定”を選択します。Excelのオプションが出ますので、右側の開発にチェックをいれます。

f:id:okatasan-smec:20190324173212p:plain

 

f:id:okatasan-smec:20190324173617p:plain

 

そうすると、メニューバーに”開発”が追加されます。

f:id:okatasan-smec:20190324175027p:plain

 

開発メニューは下図のようになっています。何も考えず、マクロの記録をクリックします。

f:id:okatasan-smec:20190324175704p:plain

 

下記のようなメニューが出ますので、個人用マクロブックを選択します。そしてOKします。

f:id:okatasan-smec:20190324175906p:plain

 

そうすると、マクロの記録→記録終了 と変わりますので、そのままクリック。

f:id:okatasan-smec:20190324180413p:plain

 

メニューが元にもどります。次に左側のVisual Basicボタンをクリックします。

f:id:okatasan-smec:20190324180641p:plain

 

Visual Basic画面が立ち上がります。

①まず、PERSONAL.XLSBを選択していることを確認します。

②次に、マクロのコードが自動記録されていますのでこの上から下の指定コードをそのまま貼り付けます。

f:id:okatasan-smec:20190324181709p:plain

指定コード

Sub auto_open()

Dim myCommand As CommandBarControl

Set myCommand = Application.CommandBars("Cell").Controls.Add(before:=6)

With myCommand
.Caption = "選択範囲で中央"
.OnAction = "SentakuCyuoh"
End With

End Sub

Sub Auto_Close()

Application.CommandBars("Cell").Controls("選択範囲で中央").Delete

End Sub

Sub SentakuCyuoh()

Selection.HorizontalAlignment = xlCenterAcrossSelection

End Sub

 

下図のようにコピペができれば、作業終了です。上書き保存してVBA画面を閉じでください。そして、エクセルも閉じでください。

f:id:okatasan-smec:20190324182409p:plain

再度、エクセルを立ち上げると、右クリックメニューに”選択範囲で中央”が入っています。一度試してください。

f:id:okatasan-smec:20190324183039p:plain


ちなみに、このメニューで”選択範囲で中央”の実行は、マクロで実行しているので”元へ戻る”で戻すことができません。戻しは面倒ですが、セルの書式設定メニュから行ってください。

マクロの内容については、簡単に言いますと下記のような流れになっています。今回は詳しい説明は省きます。

①Sub auto_open()

Excelが立ち上がる時に実行します。ここで右クリックメニューを作成します。

 

②Sub Auto_Close()

Excelが閉じるときに実行します。ここで作成した右クリックメニューを削除します。これをしないと、”選択範囲で中央”メニューが増殖してしまうことがあります。

 

③Sub SentakuCyuoh()

”選択範囲で中央”の実施。1行だけですので簡単です。

 

この技をうまく使っていけば、いろんなメニューを追加できます。トライしてみてください。

 

これをきっかけにVBAの世界に入っていただけることを願ってます。