Robのワークシートには、Wordからコピーしたテキストを含むテキストボックスがあります。

彼は、マクロを使用してテキストボックスのサイズを変更し、特定の範囲のセルをカバーする方法を知りたいと考えています。

このタスクに取り組むには、いくつかの方法があります。 1つは、マクロで、テキストボックスでカバーするセルを正確に指定し、指定したセルの特性に一致するようにテキストボックスのプロパティを調整することです。

Sub ResizeBox1()

Dim sTL As String     Dim sBR As String     Dim rng As Range

' Change top-left and bottom-right addresses as desired     sTL = "A1"

sBR = "M40"



' Ensure a text box is selected     If TypeName(Selection) <> "TextBox" Then         MsgBox "Text box not selected"

Exit Sub     End If

With Selection         Set rng = ActiveSheet.Range(sTL)

.Top = rng.Top         .Left = rng.Left         Set rng = ActiveSheet.Range(sBR)

.Width = rng.Left + rng.Width         .Height = rng.Top + rng.Height     End With     Set rng = Nothing End Sub

マクロを使用するには、テキストボックスの左上と右下に使用するセルのアドレスを変更します。次に、テキストボックスを選択して、マクロを実行します。

必要に応じて、名前付き範囲を使用して、テキストボックスでカバーする範囲を指定できます。次のマクロは、範囲の名前がRangeToCoverになることを想定しています。テキストボックスを選択してマクロを実行すると、範囲のサイズに一致するようにテキストボックスのサイズが変更されます。

Sub ResizeBox2()

Dim l_rRangeToCover As Range     Dim l_rLowerRight As Range

' Ensure a text box is selected     If TypeName(Selection) <> "TextBox" Then         MsgBox "Text box not selected"

Exit Sub     End If

' Get the range to cover     Set l_rRangeToCover = _       ActiveSheet.Range(Names("RangeToCover").RefersToRange.Value)



' Get its lower right cell     Set l_rLowerRight = _       l_rRangeToCover.Cells( _       l_rRangeToCover.Rows.Count, _       l_rRangeToCover.Columns.Count)



' Resize the text box     With Selection         .Left = l_rRangeToCover.Left         .Top = l_rRangeToCover.Top         .Width = l_rLowerRight.Left + l_rLowerRight.Width - .Left         .Height = l_rLowerRight.Top + l_rLowerRight.Height - .Top     End With End Sub

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3143)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Resizing_a_Text_Box_in_a_Macro [マクロ内のテキストボックスのサイズ変更]