お世話になっております。 Excel2003を使用しております。
1400個のグラフを自動作成しております。
--------------------------------
Function GlaphSetting() 'グラフ色などの設定
Dim C As ChartObject
On Error Resume Next
For Each C In ActiveSheet.ChartObjects
' C.RoundedCorners = True
C.Chart.AutoScaling = False
C.Chart.PlotArea.Interior.ColorIndex = xlNone
C.Chart.PlotArea.Border.ColorIndex = xlNone 'プロットエリアの色を消す
C.Chart.Axes(xlValue).MaximumScale = 5 'メモリ最大値
C.Chart.Axes(xlValue).MinimumScale = 0 'メモリ最小値
C.Chart.Axes(xlValue).MajorUnit = 1 'メモリ間隔
If ComboBox4.Text <> "" Then '氏名が入ってると、メモリ-1にしたい!
C.Chart.Axes(xlValue).MinimumScale = -1 'メモリ最小値
C.Chart.PlotArea.Top = 50
C.Chart.PlotArea.Width = 100
C.Chart.PlotArea.Height = 100
C.Chart.PlotArea.Left = 50
End If
If ComboBox4.Text = "" Then '氏名が空のとき
C.Chart.Axes(xlValue).HasMajorGridlines = False
End If
C.Chart.ChartArea.Font.Size = 8 '全部のフォントサイズ
Next
End Function
----------------------------
上記方法でフォントサイズの設定等を行っているのですが、
全グラフの文字サイズが8になっていなく、
ActiveSheet.ChartObjectsの個数は制限があるのか?なんて思っております。
間にプログレスバーの表示を行っておりますが、
しっかり全部動いているみたいであり、
1400個中、33個目くらいまでしか
フォントサイズが変わっておりません。
ステップインで確認してみましたが、
ステップインだと33個以上も大丈夫な気がします。
何か、理由をご存知の方がいらっしゃいましたら
回答をお願い致します。
下記のマクロでグラフを自動描画しています。
この中で、いくつかの点で自分の思うような描画ができていません。今は、描画後に手動にて対応していますが、できることならその手間を省きたく思っています。
・系列名は不要
・縦軸、横軸のフォントサイズを指定したい
・データラベルが「0(ゼロ)」の場合は表示しない
何しろマクロ初心者なものです。ご教示をお願いします。
Sub グラフ作成()
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlColumnClustered
.SetSourceData Range("V5:W49")
End With
Dim i As Long
With ActiveSheet.ChartObjects(1).Chart
For i = 1 To .SeriesCollection.Count
.SeriesCollection(i).HasDataLabels = True
Next i
End With
With ActiveSheet.ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Characters.Text = Range("W2") & "製造年別グラフ"
With .ChartTitle.Format.TextFrame2.TextRange.Font
.Size = 6
.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2
End With
With .Axes(xlCategory, xlPrimary) '---主軸項目軸
.HasTitle = True '---軸ラベル表示
.AxisTitle.Text = "製造年" '---軸ラベル文字列設定
.AxisTitle.Font.Size = 4
End With
With .Axes(xlValue, xlPrimary) '---主軸数値軸
.HasTitle = True '---軸ラベル表示
.AxisTitle.Text = "数量" '---軸ラベル文字列設定
.AxisTitle.Font.Size = 4
End With
End With
End Sub
EXCEL初心者です。関数やマクロ等全く分かりません…。
使用しているバージョンは2010です。
・EXCELのSheet1に表( 添付したもの )、Sheet2に表の内容を元に散布図を作成したいです。
・具体的には、
表の「情報1」=グラフのy軸、
表の「情報2」=グラフのx軸、
表の「番号」=xとyの交点
としたいです。
例えば、4行目のデータは以下のようにさせたいです。
x=300、 y=100、 300と100の交わった所に1と入れたいです。
これを5行目、6行目…と行いたいです。
・また、表の内容を変えると、自動的にグラフにも変更内容が反映されるようにしたいです。
一応、自分で調べて行ったところ、グラフのラベル設定を↓こちらのサイトで
http://www4.synapse.ne.jp/yone/excel2010/excel2010_graph_sanpu.html
行ってみたのですが、VBAにそのままサンプルコードを貼り付けたところ、
ラベルが、今回設定したい「番号」ではなく「名前」になってしまいます・・・。
ちなみに、貼り付けたサンプルコードは↓こちらです。
Sub AttachLabelsToPoints()
'Dimension variables.
Dim Counter As Integer, ChartName As String, xVals As String
' Disable screen updating while the subroutine is run.
Application.ScreenUpdating = False
'Store the formula for the first series in "xVals".
xVals = ActiveChart.SeriesCollection(1).Formula
'Extract the range for the data from xVals.
xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
Do While Left(xVals, 1) = ","
xVals = Mid(xVals, 2)
Loop
'Attach a label to each data point in the chart.
For Counter = 1 To Range(xVals).Cells.Count
ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
True
ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
Next Counter
End Sub
これを貼り付けると、ラベルが「番号」ではなく「名前」になってしまいました。
上記サイトに
「 また、以下のようなコードでもラベルを付けることができました。 グラフをアクティブにして
VBA(マクロ)を実行します。 」
とあったのですが、当方マクロやEXCELはど素人で、
「 グラフをアクティブ?? 」状態で全くわかりませんでした…。
また、表の内容を書き換えたときに、グラフに自動的に反映されません…。
どうすれば求めているグラフのラベル設定ができ、また表の内容の書き換えたときグラフが連動
するようになってくれるのでしょうか・・・??
EXCEL初心者です。関数やマクロ等全く分かりません…。
使用しているバージョンは2010です。
・EXCELのSheet1に表( 添付したもの )、Sheet2に表の内容を元に散布図を作成したいです。
・具体的には、
表の「情報1」=グラフのy軸、
表の「情報2」=グラフのx軸、
表の「番号」=xとyの交点
としたいです。
例えば、4行目のデータは以下のようにさせたいです。
x=300、 y=100、 300と100の交わった所に1と入れたいです。
これを5行目、6行目…と行いたいです。
・また、表の内容を変えると、自動的にグラフにも変更内容が反映されるようにしたいです。
一応、自分で調べて行ったところ、グラフのラベル設定を↓こちらのサイトで
http://www4.synapse.ne.jp/yone/excel2010/excel2010_graph_sanpu.html
行ってみたのですが、VBAにそのままサンプルコードを貼り付けたところ、
ラベルが、今回設定したい「番号」ではなく「名前」になってしまいます・・・。
ちなみに、貼り付けたサンプルコードは↓こちらです。
Sub AttachLabelsToPoints()
'Dimension variables.
Dim Counter As Integer, ChartName As String, xVals As String
' Disable screen updating while the subroutine is run.
Application.ScreenUpdating = False
'Store the formula for the first series in "xVals".
xVals = ActiveChart.SeriesCollection(1).Formula
'Extract the range for the data from xVals.
xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
Do While Left(xVals, 1) = ","
xVals = Mid(xVals, 2)
Loop
'Attach a label to each data point in the chart.
For Counter = 1 To Range(xVals).Cells.Count
ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
True
ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
Next Counter
End Sub
これを貼り付けると、ラベルが「番号」ではなく「名前」になってしまいました。
上記サイトに
「 また、以下のようなコードでもラベルを付けることができました。 グラフをアクティブにして
VBA(マクロ)を実行します。 」
とあったのですが、当方マクロやEXCELはど素人で、
「 グラフをアクティブ?? 」状態で全くわかりませんでした…。
また、表の内容を書き換えたときに、グラフに自動的に反映されません…。
どうすれば求めているグラフのラベル設定ができ、また表の内容の書き換えたときグラフが連動
するようになってくれるのでしょうか・・・??
EXCEL初心者です。関数やマクロ等全く分かりません…。
使用しているバージョンは2010です。
・EXCELのSheet1に表( 添付したもの )、Sheet2に表の内容を元に散布図を作成したいです。
・具体的には、
表の「情報1」=グラフのy軸、
表の「情報2」=グラフのx軸、
表の「番号」=xとyの交点
としたいです。
例えば、4行目のデータは以下のようにさせたいです。
x=300、 y=100、 300と100の交わった所に1と入れたいです。
これを5行目、6行目…と行いたいです。
・また、表の内容を変えると、自動的にグラフにも変更内容が反映されるようにしたいです。
一応、自分で調べて行ったところ、グラフのラベル設定を↓こちらのサイトで
http://www4.synapse.ne.jp/yone/excel2010/excel2010_graph_sanpu.html
行ってみたのですが、VBAにそのままサンプルコードを貼り付けたところ、
ラベルが、今回設定したい「番号」ではなく「名前」になってしまいます・・・。
ちなみに、貼り付けたサンプルコードは↓こちらです。
Sub AttachLabelsToPoints()
'Dimension variables.
Dim Counter As Integer, ChartName As String, xVals As String
' Disable screen updating while the subroutine is run.
Application.ScreenUpdating = False
'Store the formula for the first series in "xVals".
xVals = ActiveChart.SeriesCollection(1).Formula
'Extract the range for the data from xVals.
xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
Do While Left(xVals, 1) = ","
xVals = Mid(xVals, 2)
Loop
'Attach a label to each data point in the chart.
For Counter = 1 To Range(xVals).Cells.Count
ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
True
ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
Next Counter
End Sub
これを貼り付けると、ラベルが「番号」ではなく「名前」になってしまいました。
上記サイトに
「 また、以下のようなコードでもラベルを付けることができました。 グラフをアクティブにして
VBA(マクロ)を実行します。 」
とあったのですが、当方マクロやEXCELはど素人で、
「 グラフをアクティブ?? 」状態で全くわかりませんでした…。
また、表の内容を書き換えたときに、グラフに自動的に反映されません…。
どうすれば求めているグラフのラベル設定ができ、また表の内容の書き換えたときグラフが連動
するようになってくれるのでしょうか・・・??
エクセル2010です。
下記のマクロで、グラフを切り取り、形式を選択して貼り付けることはできました。
次に、この画像をオブジェクト変数に代入するにはどのようにSet文を書けばいいのでしょうか?
よろしくお願いします。
Sub Test()
Dim objChart As ChartObject
With Sheets("Sheet1")
Set objChart = .ChartObjects(1)
objChart.Cut
.PasteSpecial Format:="図 (拡張メタファイル)"
End With
End Sub
エクセル2010です。
下記のマクロで、グラフを切り取り、形式を選択して貼り付けることはできました。
次に、この画像をオブジェクト変数に代入するにはどのようにSet文を書けばいいのでしょうか?
よろしくお願いします。
Sub Test()
Dim objChart As ChartObject
With Sheets("Sheet1")
Set objChart = .ChartObjects(1)
objChart.Cut
.PasteSpecial Format:="図 (拡張メタファイル)"
End With
End Sub
VBAについて教えてください。
文字をHPにアップできるように、カタカナのみを半角から全角に変換したいのですが
何か良い方法はありますか?
文字は英字・ひらがな・カタカナ・漢字がランダムに入っています。
例えば
Sub test()
Dim a As String
a = "aaaアアア<>BBB"
End Sub
の状態で。「アアア」のみを全角にするにはどうすればいいでしょうか?
アルファベットは半角のままにしたいです。