ExcelマクロVBAサンプル集 | 「セルの結合」をショートカットに登録(OnKey) | Excelマクロの実用サンプル、エクセルVBA集と解説



最終更新日: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で、中央寄せにしないセル結合

の出来上がりです。





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

半角カナのみ全角カナに変換する
計算式の元となる数値定数を消去する(Precedents)
Beep音で音楽(Beep,Sleep)
日付の検索(配列の使用)
ストップウォッチ(1/100秒)(Timer)
重複の無いユニークなデータ作成
WEBデータの取得方法

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

ファイルの一覧取得・削除(File)|Google Apps Script入門(1月24日)
フォルダの一覧取得・作成・削除(Folder)|Google Apps Script入門(1月24日)
フォルダとファイルを扱う(DriveApp)|Google Apps Script入門(1月24日)
スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)
表示の固定|Google Apps Script入門(12月24日)
グラフ|Google Apps Script入門(12月21日)
入力規則|Google Apps Script入門(12月13日)
並べ替え|Google Apps Script入門(12月12日)

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

1.RangeとCellsの使い方|ExcelマクロVBA入門
2.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.CSVの読み込み方法|ExcelマクロVBAサンプル集
9.変数とデータ型(Dim)|ExcelマクロVBA入門
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



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

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


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP