VBAサンプル集
「セルの結合」をショートカットに登録(OnKey)

ExcelマクロVBAの実用サンプル、エクセルVBA集と解説
公開日:2013年5月以前 最終更新日:2013-05-15

「セルの結合」をショートカットに登録(OnKey)


「値の貼り付け」をショートカットに登録 が好評だったので(本当かな)、
コピーペーストの質問で、よく目にするのは、値の貼り付けが面倒だというものです。どうも、ショートカットが無いからのようです。ネットを調べて見たのですが、どれもしっくりこないので、作ってみました。いろいろな方法が考えられるのですが、簡単かつ直ぐに使えて、他の人にも配布可能なものが良いと思います。

その第二弾! セルの結合をショートカットに登録します。

作り方は、前回の、「値の貼り付け」をショートカットに登録 と同様です。
コピーペーストの質問で、よく目にするのは、値の貼り付けが面倒だというものです。どうも、ショートカットが無いからのようです。ネットを調べて見たのですが、どれもしっくりこないので、作ってみました。いろいろな方法が考えられるのですが、簡単かつ直ぐに使えて、他の人にも配布可能なものが良いと思います。

コードのみ紹介します。

VBEで、ブックモジュールに

Private Sub Workbook_Open()
  Application.OnKey "^m", "CellMerge"
  Application.OnKey "^M", "CellMerge2"

End Sub


"^m"は、Ctrl+M


"^M"は、Ctrl+Shift+M

がショートカットになります。

Ctrl+Mが、通常のセル結合(中央寄せ等の書式が設定されます。)

Ctrl+Shift+Mが、書式が設定をしないセルの結合です。

次に、標準モジュールに



Sub CellMerge()
  Dim myRange As Range
  Dim blnMerge
  On Error Resume Next
  blnMerge = False
  For Each myRange In Selection
    If myRange.MergeCells = True Then
      blnMerge = True

      Exit For
    End If
  Next
  If blnMerge = True Then
    With Selection
      .HorizontalAlignment = xlGeneral
      .VerticalAlignment = xlCenter
      .WrapText = False
      .Orientation = 0
      .AddIndent = False
      .IndentLevel = 0
      .ShrinkToFit = False
      .ReadingOrder = xlContext
      .MergeCells = True
      .UnMerge
    End With
  Else
    With Selection
      .HorizontalAlignment = xlCenter
      .VerticalAlignment = xlCenter
      .WrapText = False
      .Orientation = 0
      .AddIndent = False
      .IndentLevel = 0
      .ShrinkToFit = False
      .ReadingOrder = xlContext
      .MergeCells = False
      .Merge
    End With
  End If
End Sub
Sub CellMerge2()
   Dim myRange As Range
  Dim blnMerge
  On Error Resume Next
  blnMerge = False
  For Each myRange In Selection
    If myRange.MergeCells = True Then
      blnMerge = True
      Exit For
    End If
  Next
  If blnMerge = True Then
    Selection.UnMerge
  Else
    Selection.Merge
  End If
End Sub


CellMerge


は、マクロの記録をそのまま使用しています。

不要な記述が多いのですが、通常操作と同じにする為に、そのままにしています。

CellMerge2

は、セルの結合のみを実行しています。

強制的に、中央寄せを解除したければ、

Selection.HorizontalAlignment = xlGeneral
をいれれば良いでしょう。

For Each myRange In Selection
  If myRange.MergeCells = True Then
    blnMerge = True
  End If
Next
この部分で、選択範囲に、結合セルが含まれるかの判定をしています。

結合セルが含まれている場合は、セル結合の解除、

結合セルが含まれていない場合は、セル結合しています。

あとは、「値の貼り付け」をショートカットに登録 と同様に、
コピーペーストの質問で、よく目にするのは、値の貼り付けが面倒だというものです。どうも、ショートカットが無いからのようです。ネットを調べて見たのですが、どれもしっくりこないので、作ってみました。いろいろな方法が考えられるのですが、簡単かつ直ぐに使えて、他の人にも配布可能なものが良いと思います。

アドインで保存し、そのアドインを有効にして下さい。

これで、

Ctrl+Mで、通常のセル結合。

Ctrl+Shift+Mで、中央寄せにしないセル結合

の出来上がりです。




同じテーマ「マクロVBAサンプル集」の記事

時刻になったら音を鳴らして知らせる(OnTime)
指定文字、指定数式でジャンプ機能(Union)
「値の貼り付け」をショートカットに登録(OnKey)
「セルの結合」をショートカットに登録(OnKey)
半角カナのみ全角カナに変換する
計算式の元となる数値定数を消去する(Precedents)
Beep音で音楽(Beep,Sleep)
日付の検索(配列の使用)
ストップウォッチ(1/100秒)(Timer)
ストップウォッチ改(1/100秒)(Timer)
重複の無いユニークなデータ作成


新着記事NEW ・・・新着記事一覧を見る

シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ