曲線のあるExcelのグラフがあります。曲線は、時間に応じた株価を表します (つまり、基本的には列 A に日付を、列 B に価格とチャートを入力します)。
チャートの各ポイントには、次のようなデータラベルテキストがあります
Charts("CHART").SeriesCollection(1).Points(Numpoint).DataLabel.Text = numcomptagesetup & vbCrLf & numcomptagecountdown
「numpoint」は、ポイント 1 から最後のポイントまでの変数です。「numcomptagesetup」と「numcomptagecountdown」は、「numcomptagesetup」の場合は 1 から 6、「numcomptagecountdown」の場合は 1 から 15 の値です。
上記のコードは、「numcomptagesetup」と書いてから 2 行ジャンプしてから「numcomptagecountdown」と書いています。
必要なのは、2 つの信号に応じて、「numcomptagesetup」の色を緑または赤に変更し、「numcomptagecountdown」の色も緑と赤に変更することです。したがって、場合によっては、同じ datalabeltext に 2 つの異なる色を含める必要があります。
私はこのループを書きましたが、少なくとも最初は (段階的な方法で) 動作し、その後すべてが変化し、色が適切な場所にありません (緑ではなく赤、またはその逆) ... 本当に奇妙です デフォルトでは、すべてのポイントが緑で、必要に応じてポイントの色を赤に変更します:
For numpoint=1 to 100
With Charts("CHART").SeriesCollection(1).Points(Numpoint)
.HasDataLabel = True
.DataLabel.Text = numcomptagesetup & vbCrLf & numcomptagecountdown
.DataLabel.Font.Size = 6
.DataLabel.Font.Color = vbRed
.MarkerSize = 5
End With
If Signal = 2 Then Charts("CHART").SeriesCollection(1).DataLabels.Select
With Charts("CHART").SeriesCollection(1).Points(Numpoint).DataLabel.Format.TextFrame2.TextRange.Characters(1, 3).Font.Fill
.Visible = msoTrue
.ForeColor
.RGB = RGB(0, 176, 80) .Solid
End With
End If
If Signal2 = 2 Then
Charts("CHART").SeriesCollection(1).DataLabels.Select
With Charts("CHART").SeriesCollection(1).Points(Numpoint).DataLabel.Format.TextFrame2.TextRange.Characters(4, 1).Font.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 80)
.Solid
End With
End If
私の問題を理解していただければ幸いです。質問できない場合は、できるだけ早くお答えします
ありがとうございました!!