質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1667閲覧

VBA メモリ不足 凡例の表示 されない

tamura0425

総合スコア37

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/06/28 03:50

編集2021/06/28 04:39

VBAでグラフを作成したのですが、判例を表示させようとすると、以下のエラーメッセージが
表示されてしまいます。

実行時エラー7
メモリが不足しています

この場合ですが、コードをどのように書き直したらよいでしょうか
解決方法としてなにがあるでしょうか?
不勉強で申し訳ありませんがよろしくお願いします。

Public

1'###変数定義### 2'グラフ作成用ループカウンター 3Dim i As Long 4'項目名用ループカウンター 5Dim x As Long 6'ワークシート処理用 7Dim WS As Worksheet 8'最終行取得 9Dim EndRow As Long 10'最終列取得 11Dim EndCol As Long 12'ワークシート代入用変数 13Dim sh As Worksheet 14Dim flag As Long 15 16'「graph」の有無を確認しなければ作成しデータを削除 17For Each WS In Worksheets 18 19 If WS.Name = "graph" Then 20 Application.DisplayAlerts = False 21 WS.Delete 22 Application.DisplayAlerts = True 23 Exit For 24 End If 25Next WS 26 27'ワークシートアクティブ 28Worksheets.Add 29ActiveSheet.Name = "graph" 30 31'シート指定用変数 32Set sh = Sheets("data") 33 34'グラフ作成に必要な最終列を取得 35EndCol = sh.Cells(2, Columns.Count).End(xlToLeft).Column 36 37 38'初期値 セル[F1]の No1_接続成功率(発信+着信)から開始するため 39x = 6 40 41'グラフを一項目づつ作成するためのループ 42For i = 2 To EndCol 43 'グラフ作成を行うためシートを活性 44 Sheets("graph").Activate 45 'グラフ作成 46 With ActiveSheet.Shapes.AddChart.Chart 47 'グラフ種類設定 48 .ChartType = xlLine 49 'グラフ範囲指定 50 .SetSourceData Source:=Union(sh.Range(sh.Range("C2"), sh.Cells(Rows.Count, 4).End(xlUp)), _ 51 sh.Range((sh.Cells(2, x)), sh.Cells(Rows.Count, x).End(xlUp))) 52 53 'グラフタイトル表示 54 .HasTitle = True 55 56 'タイトル文字列設定 57 .ChartTitle.Text = sh.Cells(1, x) 58 59 '凡例を追加 (現状エラーが起きる == メモリーが足りない) 60 '.Name = Range("B2") 61 'グラフ位置の設定 62 .Parent.Top = Range("B" & ((i - 2) * 20 + 2)).Top 63 .Parent.Left = Range("B" & ((i - 2) * 15 + 2)).Left 64 65 '判例を追加 66 ' .Name = Range("B2") 67 68 'グラフ作成用 69 End With 70 71 With ActiveSheet.ChartObjects(i - 1).Chart 72 If .HasLegend = False Then .HasLegend = True ''凡例を表示する 73 .Legend.Position = xlLegendPositionTop ''凡例を上に表示する 74 .Legend.IncludeInLayout = False ''凡例をグラフに重ねる 75 With .Legend.Format.Fill 76 .Visible = msoTrue ''凡例を塗りつぶします 77 .ForeColor.RGB = RGB(255, 0, 0) ''赤色 78 .ForeColor.TintAndShade = 0.5 ''明暗の設定 79 End With 80 End With 81'####################### 82 'グラフサイズ設定 83 With ActiveSheet.ChartObjects 84 .Height = 290 85 .Width = 1000 86 End With 87'グラフ項目移動用カウンター 88x = x + 1 89Next i 90'ループ終了 91 MsgBox "完了しました" 92End Sub 93コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jinoji

2021/06/28 23:16

.Name = Range("B2") のところでは何をしたいのですか?
guest

回答1

0

ベストアンサー

Chart.Name プロパティ (Excel)

オブジェクトの名前を表す文字列型 (String) の値を取得または設定します。

構文
式.名前

expression は Chart オブジェクトを表す変数です。

解説
このプロパティは、グラフ オブジェクト (埋め込みグラフ) に対しては、値の取得のみ可能です。

投稿2021/06/28 23:26

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tamura0425

2021/06/30 07:14

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問