【Excel VBA】セル内の文字列の角度と縦書き設定(Orientationプロパティ)

りゅう

こんにちは!りゅう(@ryupong_b)です。
今回は、セル内の文字列の角度を変更する方法について解説します。

はじめに

今回は、セル内の文字列の角度を設定する方法をご紹介します。
セルの文字列が長くなってしまう場合に、可読性を向上させるために使用する場面があると思います。
また、本記事では文字列を縦書きにする方法もご紹介します。
本記事では、サンプルコードを用いてコピペでも使える実践的なコードをご紹介しますので、是非最後までお付き合いください。

この記事を読むメリット
  • 文字列の角度を設定・取得する方法が分かります。
  • 文字列を縦書きにする方法が分かります。
  • サンプルコードを用いて、コピペで使える実践的なコードをご紹介します。

前提

Excelにおける角度

Excelにおける角度は90度から-90度まで存在します。
0度が水平(通常通り)の表示です。
角度の反映後のイメージを以下に示します。

文字の角度

基本情報

Orientationプロパティ

文字の角度を変更するには、セルの書式設定の1つであるOrientationプロパティを使用します。
Orientationプロパティは、角度の設定だけでなく取得も可能です。
設定と取得を分けてご説明します。

設定

Orientationプロパティを設定する方法は、以下の2パターン存在します。

  • 角度を直接指定する方法
  • VBAにて標準で搭載されている定数を指定する方法
構文

‘ A1セルの文字列の角度を 45度にする
Range(“A1”).Orientation = 45

‘ B2 – E2の文字列の角度を 90度にする
Range(“B2:E2”).Orientation = xlUpward

-90度から90度の範囲で指定してください。
上記の範囲を超えて指定してしまうとエラーとなります。

構文の例では「xlUpward」を指定していますが、その他の定数についてもご紹介します。

#定数説明
1xlDownward-90度の角度
2xlHorizontal0度(水平)の角度
3xlUpward90度の角度
4xlVertical垂直(縦書き)
角度に関する定数一覧

Orientationプロパティに、「xlVertical」定数を代入すると以下のように縦書きの設定となります。

取得

角度を取得する構文を以下に示します。

構文

‘ A1セルの角度を取得する
Dim orientationVal As Integer
orientationVal = Range(“A1”).Orientation


‘ A2セルの文字列の角度をB2セルに反映する
Range(“B1”).Orientation = Range(“A1”).Orientation

サンプルコード

個別のセルを指定の角度に変更する

サンプルコード
Public Sub setCellOrientation()

    ' A1セルの文字列の角度を45度に設定する
    Range("A1").orientation = 45

    ' B2セルからE6セルを縦書きにする
    Range("B2:E6").orientation = xlVertical

    ' A1セルの文字列の角度を 1行目すべてに反映させる
    Range("1:1").orientation = Range("A1").orientation
End Sub

シート内すべてのセルの角度を水平にする

サンプルコード
Public Sub resetAllCellOrientation()

    ' 1シート目の全てのセルの角度を水平(0度)に設定する
    ThisWorkbook.Worksheets(1).Cells.orientation = xlHorizontal
End Sub

最後に

今回は、セル内の文字列の角度を取得・設定する方法をご紹介させて頂きました。
この記事が、皆さんのお力になれば幸いです!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA