エクセルVBAでセルの書式設定の「配置」についてです。
配置に関連するプロパティ、特にAlignmentなどVBAの記述方法は重要なものから習得していきましょう。
こんにちは じゅんぱ店長 (@junpa33) です。
エクセルVBAの操作の中での基本中の基本 セルの書式設定。その中で今回は「セルの文字配置」についてです。
セルの表示形式の設定と同様、非常に重要な設定ですので、しっかり理解しておきましょう。
コンテンツ
セルの配置は書式設定のこの部分のことです
セル内の文字表示位置、表示方法、文字の方向、セルの連結などをコントロールします。
セルの「配置」それぞれを設定するVBAコードを知る
セルの配置タグの項目では、
に分類されています。この順に沿って説明していきます。
文字の配置
ここでは、横位置・インデント・縦位置の項目があります。
横位置の設定にはHorizontalAlignmentプロパティを利用します。
HorizontalAlignmentプロパティ
Rangeオブジェクト.HorizontalAlignment = 設定値
デフォルトでは、設定値が「標準 xlHAlignGeneral」になっています。
位置 | プロパティ名 | 設定値 | 設定の説明 |
---|---|---|---|
横位置 | HorizontalAlignment | xlHAlignGeneral | 標準 |
xlLeft | 左詰め | ||
xlCenter | 中央揃え | ||
xlRight | 右詰め | ||
xlHAlignFill | 繰り返し | ||
xlJustify | 両端揃え | ||
xlHAlignCenterAcrossSelection | 選択範囲内で中央 | ||
xlDistributed | 均等割り付け |
インデントは、左と右に「スぺース」付け加える機能を持っています。
インデントを設定するプロパティは2種類あり、「Addindentプロパティ」と「IndentLevelプロパティ」になります。
Addindentプロパティ
Rangeオブジェクト.Addindent = True (or False )
デフォルトでは不可(False)の設定です。
解除方法は「False」を指定します。
利用方法は【 HorizontalAlignmentプロパティで設定値をxlDistributed(均等割り付け) 】に設定した場合にのみ使用することが出来ます。
IndentLevelプロパティ
Rangeオブジェクト.IndentLevel = 設定値
設定値は「1から250までの整数値」になります。
解除方法は「0」を設定値として指定します。
利用方法は【 HorizontalAlignmentプロパティで設定値が「xlLeft」「xlRight」「xlDistributed」の各設定値の時】に利用することが出来ます。
縦位置の設定にはVerticalAlignmentプロパティを利用します。
VerticalAlignmentプロパティ
Rangeオブジェクト.VerticalAlignment = 設定値
デフォルトでは、設定値が「中央揃え xlCenter」になっています。
位置 | プロパティ名 | 設定値 | 設定の説明 |
---|---|---|---|
縦位置 | VerticalAlignment | xlTop | 上詰め |
xlCenter | 中央揃え | ||
xlBottom | 下詰め | ||
xlJustify | 両端揃え | ||
xlDistributed | 均等割り付け |
文字の制御
ここでは、折り返して全体を表示・縮小して全体を表示・セルを結合の項目があります。
折り返して全体を表示する設定にはWrapTextプロパティを利用します。
WrapTextプロパティ
Rangeオブジェクト.WrapText = True (or False )
- 「True」であれば折り返しを行う
- 「False」であれば折り返しは行わない
デフォルト値は「False」です。
縮小して全体を表示する設定にはShrinkToFitプロパティを利用します。
ShrinkToFitプロパティ
Rangeオブジェクト.shrinkToFit = True (or False )
- 「True」であれば縮小して全体を表示を行う
- 「False」であれば縮小して全体を表示は行わない
デフォルト値は「False」です。
セルを結合する設定はMergeCellsプロパティを利用します。
MergeCellsプロパティ
Rangeオブジェクト範囲.MergeCells = True (or False )
- 「True」であれば指定セルを結合する
- 「False」であれば指定セルの結合を解除する
デフォルト値は「False」です。
例
(結合)Range(“A1:B3”).MergeCells = True
(解除)Range(“A1”).MergeCells = False
右から左
使用言語によって異なる文字列の向きを指定します。
利用するのはReadingOrderプロパティになります。
ReadingOrderプロパティ
Rangeオブジェクト.ReadingOrder = 設定値
このReadingOrderプロパティが有効になるのは、アラビア語などの右から左に読む言語PCのエクセルを利用している場合です。
日本語版では、このプロパティは全く機能しません。
制御種類 | プロパティ名 | 設定値 | 設定の説明 |
---|---|---|---|
文字列の可読方向 | ReadingOrder | xlContext | 最初の文字に依存 |
xlRTL | 右から左 | ||
xlLTR | 左から右 |
方向
ここでは、文字列の縦書きと表示角度のコントロールを行います。
利用するプロパティは、Orientationプロパティになります。
Orientationプロパティ
Rangeオブジェクト.Orientation = 設定値
制御種類 | プロパティ名 | 設定値 | 設定の説明 |
---|---|---|---|
表示方向 | Orientation | xlVertical | 縦書き |
xlUpward | マイナス90度回転 | ||
xlHorizontal | 水平表示 | ||
xlDownward | プラス90度回転 | ||
-90~90 | 角度任意設定 |
セルの書式設定 配置を最速理解のまとめ
セル内の文字列の表示位置を編集するためには、このセルの書式設定の「配置」タブで行っていきます。
VBAでは、関係するプロパティが何種類か出てきますが、基本操作部分は覚えておくことが大事です。
セルの結合については、「MergeCellsプロパティ」を紹介していますが、「Mergeメソッド」でも(もちろん構文は異なりますが)同様のことが可能です。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。