<この記事は1835字です>
”選択範囲で中央”とは?
そもそも、”選択範囲で中央”というコマンドはなにか?を説明します。
”選択範囲で中央”は”セルの結合”と似ています。エクセルで表を作る際、その見出しに使うことが多いかと思います。下図の赤で囲ったようなケースです。
このような場合で”セルの結合”を使ってしまいがちですが、実はあまり良いことはありません。理由はおもに2つです。
- コピー&ペイストがうまくいかない
- オートフィルタがうまくいかない
詳しい内容は下記を参考になります。
【Excel】セルの結合は避けたほうがいいって本当?エクセルでセルを結合すると発生する問題点 - いまさら聞けないExcelの使い方講座 - 窓の杜
この場合は、”セルの結合”ではなく”選択範囲で中央”を使うと不具合を回避できます。操作は、簡単で下図のようにセルの書式設定→配置タブ→横位置→選択範囲で中央を選択するだけです。
しかし、結構な頻度で使う操作なのに結構めんどくさいですね。しかもこの操作はショートカットもありません。
ここは、自分で何とかするしかありません。少しハードルは高いですが、マクロを使うしかないのです。
マクロを使いますが、簡単にできます(コード付き)
マクロ使ってややこしいことになりそうな気がしますが、そんなに難しい事ではありません。それを説明します。
まずメニューバーの上(どこでもいい)で右クリックして”リボンのユーザー設定”を選択します。Excelのオプションが出ますので、右側の開発にチェックをいれます。
そうすると、メニューバーに”開発”が追加されます。
開発メニューは下図のようになっています。何も考えず、マクロの記録をクリックします。
下記のようなメニューが出ますので、個人用マクロブックを選択します。そしてOKします。
そうすると、マクロの記録→記録終了 と変わりますので、そのままクリック。
メニューが元にもどります。次に左側のVisual Basicボタンをクリックします。
Visual Basic画面が立ち上がります。
①まず、PERSONAL.XLSBを選択していることを確認します。
②次に、マクロのコードが自動記録されていますのでこの上から下の指定コードをそのまま貼り付けます。
指定コード
Sub auto_open()
Dim myCommand As CommandBarControl
Set myCommand = Application.CommandBars("Cell").Controls.Add(before:=6)
With myCommand
.Caption = "選択範囲で中央"
.OnAction = "SentakuCyuoh"
End WithEnd Sub
Sub Auto_Close()
Application.CommandBars("Cell").Controls("選択範囲で中央").Delete
End Sub
Sub SentakuCyuoh()
Selection.HorizontalAlignment = xlCenterAcrossSelection
End Sub
下図のようにコピペができれば、作業終了です。上書き保存してVBA画面を閉じでください。そして、エクセルも閉じでください。
再度、エクセルを立ち上げると、右クリックメニューに”選択範囲で中央”が入っています。一度試してください。
ちなみに、このメニューで”選択範囲で中央”の実行は、マクロで実行しているので”元へ戻る”で戻すことができません。戻しは面倒ですが、セルの書式設定メニュから行ってください。
マクロの内容については、簡単に言いますと下記のような流れになっています。今回は詳しい説明は省きます。
①Sub auto_open()
Excelが立ち上がる時に実行します。ここで右クリックメニューを作成します。
②Sub Auto_Close()
Excelが閉じるときに実行します。ここで作成した右クリックメニューを削除します。これをしないと、”選択範囲で中央”メニューが増殖してしまうことがあります。
③Sub SentakuCyuoh()
”選択範囲で中央”の実施。1行だけですので簡単です。
この技をうまく使っていけば、いろんなメニューを追加できます。トライしてみてください。
これをきっかけにVBAの世界に入っていただけることを願ってます。