間に改行がある 2 つのセルから文字列を作成する数式を使用して、Excel グラフにデータ ラベルを作成する必要があります。
これはセルの数式では機能します:
=A1 & CHAR(10) & B1
これはVBAでも動作します
=A1 & Chr(10) & B1
この投稿のように:http://www.ozgrid.com/forum/showthread.php?t=40644しかし、どちらのアプローチもデータ ラベル内では機能しません。何かアイデアはありますか?
答え1
VBA ではこれを使用できます:
Dim str as String
str = Range("A").Value & vbCrlf & Range("B").Value
vbCrlf は改行を行います...
答え2
これは私の場合、VBA でうまくいきました:
Sheet1.ChartObjects(1).Chart.SeriesCollection(1).Name = "a" & vbCr & "b"
そして、前述したように、これは次の式で機能します。
=DATASERIES(Sheet1!$E$1,Sheet1!$A$2:$A$4,Sheet1!$B$2:$B$4,1)
E1 = "a" & CHAR(10) & "b"
E1 には単語の折り返しを設定する必要があります。
DATASERIES は、シリーズを選択したときに数式編集セクションに表示されるものです。
答え3
これが私がそれを動作させた方法です。
=A1 & CHAR(10) & B1
ステップ1:セル内の数式でワードラップを有効にして新しい列を作成しC1
、必要に応じて下にドラッグします。
ステップ2: 次のVBAコードを実行して、各データラベルが正しいセルを指すように設定します。
Sub SetDataLabels()
Dim ChartName As String
ChartName = "My Chart's Name"
With ActiveSheet.ChartObjects(ChartName).Chart
Dim Series As Integer
Series = 4
With .SeriesCollection(Series)
Dim currentPoint As Integer
For currentPoint = 1 To .Points.Count
.Points(currentPoint).DataLabel.Text = Range("C" & currentPoint).Text
Next currentPoint
End With
End With
End Sub