Vba 経由でどこでもテキストの折り返しを使用するにはどうすればよいですか?
VBA には、セルまたはセル範囲に折り返しテキストを適用するためにアクセスできる「WrapText」と呼ばれるプロパティがあります。これを有効または無効にするコードを記述する必要があります。これは読み取りおよび書き込みプロパティであるため、適用することも、セルに適用されている場合は取得することもできます。
このチュートリアルでは、VBA コードを使用してテキストの折り返しを適用するさまざまな方法を見ていきます。
VBAを使用してセル内のテキストを折り返す
VBA コードを使用してテキストの折り返しを適用するには、次の手順を実行します。
- range プロパティを使用して、折り返しテキストを適用するセルを定義します。
- ピリオドを入力すると、そのセルのプロパティとメソッドのリストが表示されます。
- リストから「WrapText」プロパティを選択します。
- 等号「=」を入力し、「TRUE」と入力してワードラップを有効にします。
Sub vba_wrap_text() Range("A1").WrapText = True End Sub
次の方法でもセルを指定できます。
Cells(1, 1).WrapText = True
セルの行内でテキストを折り返す
また、範囲全体にテキストの折り返しを適用したい場合は、単一のセルではなく範囲を指定する必要があります。
Range("A1:A5").WrapText = True
「usedRange」プロパティを使用して、使用範囲(データを入力したワークシートの選択)に適用することもできます。
Worksheets("Sheet1").UsedRange.WrapText = True ActiveSheet.UsedRange.WrapText = True
上記のコードの最初の行では、 Worksheet を指定してから、テキストを折り返す「usedProperty」を指定しました。 2 行目には、アクティブ シートの使用範囲が示されています。ただし、どちらの行も同じように機能します。
知っておくべきいくつかの例を次に示します。
- 不連続セル
- 全行
- 列全体
- 名前付き範囲
Range("A1:A10,C1:C10").WrapText = True Range("A:A").WrapText = True Range("1:1").WrapText = True Range("myRange").WrapText = True
ワークシート全体でテキストを折り返す
ワークシート全体を参照するには、次のコードのように Cells プロパティを使用する必要があります。
Cells.WrapText = True Worksheets("Sheet1").Cells.WrapText = True
コードの最初の行はアクティブ シートを参照し、2 行目は「Sheet1」ワークシートを参照します。 FOR EACH (For Next)を使用したループを使用して、ブック内のすべてのワークシートをループし、すべてのセルに折り返しテキストを適用することもできます。
Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Cells.WrapText = True Next ws
上記のコードでは、変数として「ws」があり、For Each ループがワークブック内のすべてのワークシートをループし、セルを使用してワークシート全体のテキストを折り返すように適用されます。
ラップテキストを無効にする
ご覧のとおり、WrapText プロパティを有効にする必要がありますが、同様に FALSE を宣言する add を使用して無効にすることができます。
Range("A1").WrapText = False
注:セルに値があり、セルの幅がその値を格納するのに十分な場合、行にテキストを適用しても Excel は内容を次の行に移動しないことを理解する必要があることが 1 つあります。
関連するチュートリアル
- Excel で VBA を使用して行を数える
- Excel VBA フォント (色、サイズ、種類、太字)
- Excel VBA 列または行の表示と非表示を切り替える
- Excel VBA 範囲 – 範囲とセルの操作
- Excel で VBA を使用してセルに枠線を適用する