VBAの勉強しています。
今回は第2回目。
当記事では「セルの結合と解除」
を実践していきたいと思います。
MergeCellsプロパティでセルA1~D1を結合する
下記を入力するとできます↓
実行すると↓のようになりますよ。
細かく分解して見ていきます。
- Sub 結合するよ()
この構文のタイトルにあたります。
「結合するよ」は別の文字列でもOK(英語推奨)。
【Sub 文字列()】でスタートします。
- Range(“A1:D1”).MergeCells = True
①「Range」オブジェクトはセルのことなので、セルA1~D1を選択してる状態。
②「.MergeCells」は、“結合”プロパティを意味。「= True」にすることで実行できるようになります。
- ‘①セルA1からD1を結合する
Range(“A1:D1”).MergeCells = Trueに対してのメモ書き。
「’」←シングルクオーテーションを先頭につけることで、構文とは別物であることを証明します。
メモ書きなので、なくても問題なし。
- End Sub
1つの構文を終わらせるためのもの。自動で入力されると思います。
Range(“A1:D1”).MergeCells = True
の部分については、ざっくり言うと
「セルA1からD1の範囲に対して.結合 = する(正しい)」
といった具合でしょうか。
応用①…セルA1に「おはよう」と入力してから結合
下記のようになります(メモ部分は省略)↓
GIF動画↓
- Range(“A1”) = “おはよう”
セルA1に「おはよう」と入力する文です。
分かりにくい場合は第1回目の記事でどうぞ。
セルA1に「おはよう」と入力⇒セルA1~D1を結合
という命令ができることが分かりました。
応用②…結合したセル内の「おはよう」を中央揃えにする
- Range(“A1”).HorizontalAlignment = xlCenter
「セルA1を.水平方向で=中央揃えに」
という構文です。
ちなみに垂直方向は「VerticalAlignment」プロパティとなります。
結合したセルA1~D1を解除する
結合を解除する場合は下記の通り↓
- Range(“A1:D1”).MergeCells = False
セルA1からD1の範囲の.結合は=しない
Falseは「失敗、間違い」みたいな意味ですが、結合の場合は「解除」ということになりますね。
まとめと疑問
- .MergeCells=True・・・結合(プロパティ)
- .MergeCells=False・・・結合解除
- .HorizontalAlignment・・・水平方向(プロパティ)
- .VerticalAlignment・・・垂直方向(プロパティ)
今回はこれらを学びました。
水平方向、垂直方向については、そこからさらに「中央揃え(xlCenter)」「左揃え(xlLeft)」などあります。
詳しくは後ほど…。
また今回の疑問としては
「特定のセルに文字を入力したら、セルのサイズを変えずに、右隣りのセルと結合し、中央揃えにする」
これを実現するにはどうしたら?という、ピンポイントなものがあります。
時間はかかりそうですが、できるようになれるといいなぁ
なんて思ってます。
お気軽にコメントどうぞ コメント欄がないとき⇒下にスクロール