テキストボックスのサイズの調整で横幅はそのままで、高さだけ文字列に調整したい
文字列の下に開いた空白やはみ出た文字をピッタリテキストボックスに収めたい
こうしたかった
サイズの調節の設定は
自動調整のテキストに合わせて図形のサイズを調整するにチェックを入れると
こうなる、改行のない文字列だからこうなるのが自然だけど
求めているのと違う
ぐぐってみたけどそれらしい設定は見つからなかった
マクロを色々いじっていたらあった
Shape.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
この前のフォント指定に続き、またしてもTextFrame2にあった
これを使うと横幅はそのままで高さだけピッタリに調節される
マクロに用意されているってことは、どこかにその設定があっても良さそうなんだけどねえ
選択されている図形に文字があったら図形の高さを文字に合わせるマクロ
Sub tatepittanテキストボックスの高さの調整()
On Error Resume Next
Dim sr As ShapeRange
Set sr = Selection.ShapeRange
For i = 1 To sr.Count
With sr.Item(i)
If .TextEffect.text <> "" Then
If .Type = msoAutoShape Or .Type = msoTextBox Then
.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
End If
End If
End With
Next
End Sub
この高さ調節のマクロを使って作ったのが次のマクロ
選択セルの値を使って見出しと本文の2つのテキストボックス作成して
グループ化するマクロ
選択しておくセルはひとつ、または一列の状態で実行、これが見出しになる
選択セルの右のセルの値が本文になる
見出し(タイトル)にしたいセルを選択してマクロを実行すると
重なっているから広げてみると
中身は2つの図形で青色の見出しの部分は正確に言うと
テキストボックスではなくて四角形(Rectangle)の図形でできている、
本文のほうはテキストボックス(textbox)でできている
この2つを組み合わせてグループ化している
なんで見出しは四角形の図形にしたのか
図形を移動したいとき、テキストボックスを掴んでドラッグしようとすると
文字列の選択状態になってしまって移動できない、けど
図形の四角形なら
文字以外の場所なら、そのままドラッグで移動できる!
…
だったら本文のほうも図形の四角形にしたほうがいいのかな
選択セルの値を使って見出しと本文の2つのテキストボックス作成して
Public Sub セルの値でタイトルつきテキストボックス()
Dim s As Shape
Dim tb As Shape
Dim r As Range
Dim ssName(1) As String
Dim ASh As Worksheet
Dim i As Long, mozisuu As Long
Dim tCell As Range
Dim sr As ShapeRange
Const ShapeWidth As Single = 160
Set ASh = ActiveSheet
If TypeName(Selection) <> "Range" Then Exit Sub
Set r = Selection
For i = 1 To r.Rows.Count
Set tCell = r.Cells(i, 1)
Set s = ASh.Shapes.AddShape(msoShapeRectangle, _
tCell.Left, tCell.Top, tCell.Width, tCell.Height)
ssName(0) = s.Name
With s.TextFrame
.HorizontalAlignment = xlHAlignCenter
.VerticalAlignment = xlVAlignCenter
.Characters.text = tCell.Value
mozisuu = .Characters.Count
End With
With s
.Line.Weight = 0.1
.Width = ShapeWidth
End With
With s.TextFrame2.TextRange.Characters(1, mozisuu).Font
.Name = tCell.Font.Name
.NameFarEast = tCell.Font.Name
.Size = tCell.Font.Size
.Bold = msoTrue
End With
s.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
Set tCell = r.Cells(i, 2)
Set tb = ASh.Shapes.AddTextbox(msoTextOrientationHorizontal, _
s.Left, s.Top + s.Height, s.Width, s.Height)
ssName(1) = tb.Name
With tb
.Line.ForeColor = s.Line.ForeColor
.Height = 90
End With
With tb.TextFrame
.Characters.text = tCell.Value
mozisuu = .Characters.Count
End With
With tb.TextFrame2.TextRange.Characters(1, mozisuu).Font
.Name = tCell.Font.Name
.NameFarEast = tCell.Font.Name
.Size = tCell.Font.Size
End With
tb.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
ASh.Shapes.Range(ssName).Group.Select
Set gp = ASh.Shapes.Range(ssName).Group
gp.Placement = xlFreeFloating
gp.Line.Weight = 0.1
Next
End Sub
Const ShapeWidth As Single = 160 '図形の横幅
この160、これを変更して実行
参照したところ
topotopopitapo :
EXCELで、グラフやオブジェクトがセルに合わせて大きさが変わるのを固定したい
午後のパレットで図形の背景色と文字色を変更できるみたい
テーマ用パレットではできなくてクリックしても色は変更できない
できるのはマイパレットとRGBテーマだけ
枠の色はどのパレットでも変更できない
元に戻す(アンドゥ)ボタンでもとに戻すことはできない
できると言っても本来の使い方とは違うから予期しない動作になることもあるはず
できたほうが便利だからこのままにしておこうw