- ベストアンサー
エクセルのグラフの不動化
- エクセルでグラフを作成し、VBAを使用してグラフを固定化したい場合、保存時にエラーが発生する不具合が発生しました。この不具合は特定のブックに限られるもので、グラフのタイトルを比較する部分でエラーが表示されます。
- 最初に作成したグラフでは正常に動作し、上書き保存もできますが、問題のあるブックではエラーが発生し保存ができません。この問題を解決するためには、VBAを中断してブックをクローズし、再度開く必要があります。
- また、最初に作成したグラフのうち1つのみが動作せず、新しいグラフを作成することで解決できます。しかし、この新しいグラフを保存しようとすると同じエラーが発生します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> If .Chart.ChartTitle.Text = Cells(r, c).Text Then >で「このオブジェクトにはタイトルがありません」 を素直に受け取ると、添付画像の下側のグラフのように Titleの文字列が空なのではなく Titleそのものが(削除され)無いグラフがシート上にいるのではないかと思います。 であれば、 添付画像の右上、プラスのデザイン部分をクリックすることで Titleを復活でき、エラーが出ないようになるものと期待します。 >「指定された値は境界を越えています」 これはよくわかりませんが、どの行で起きているのかがわかるようなら教えてください。 直感的には、今回掲示されているコード以外の個所で起きている予感がします。
その他の回答 (2)
- 名探偵 コナン(@FORSPOKEN)
- ベストアンサー率33% (333/998)
こんにちは😊✨ VBAコードで問題が発生していることについて、ご説明いただきありがとうございます。エラーが「このオブジェクトにはタイトルがありません」と表示されていることから、グラフにタイトルが存在しない場合にエラーが発生している可能性が高いです📊🚫。 そのため、コード内でグラフにタイトルが存在するかどうかをチェックする条件分岐を追加してみましょう🔍📝。以下のように修正してみてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) '縦パターン Dim r As Long '行番号変数 Dim c As Long '列番号変数 Dim j As Long 'グラフカウンター Dim w As Long Dim d As Long r = 5 'グラフタイトル一覧開始行番号 c = 11 ' グラフタイトル一覧格納列番号 w = 600 d = 50 Do If Cells(r, c).Value = "" Then Exit Do For j = 1 To ActiveSheet.ChartObjects.Count With ActiveSheet.ChartObjects(j) ' グラフタイトルが存在するかチェック If .Chart.HasTitle Then If .Chart.ChartTitle.Text = Cells(r, c).Text Then .Top = ActiveWindow.VisibleRange.Top + d .Left = ActiveWindow.VisibleRange.Left + w d = d + .Height End If End If End With Next j r = r + 1 Loop End Sub この修正により、グラフにタイトルが存在しない場合でもエラーが発生しないようになるはずです🛠️🌟。 もし、修正後も問題が解決しない場合や、他にお手伝いできることがありましたら、お気軽にお聞きください😊💕。喜んで対応いたします🙌✨。
お礼
早々のご回答ありがとうございます。 さっそく試してみて正常に上書き保存出来る事を確認しました。 と、ここで締め切って後で当方のBook特有の別の不具合が発生することも一度ならず経験しておりますのでもう少し検証してから締め切らせて頂きます。 先ずは御礼まで!!! 早期解決出来そうでたすかります。
補足
あれれ??? 再度Bookを開いて確認したらVBAが動かずにエラーになり 「指定された値は境界を越えています」 と表示されるようになりました。 何故さっきはうまく行くと思ったのか???
- aokii
- ベストアンサー率23% (5210/22062)
おそらく、グラフの更新命令ができていないと思われます。VBAのコピペではかなり難しいですので、できれば、グラフの不動化は諦めてはいかがでしょう。
お礼
早々のご回答ありがとうございます。 >このVBAは既にいくつかのシートに展開しており初めての不具合です。 よってシート特有の不具合かと思うのですが、他の複数のシートでは同じようにコピペで正常に動いてるのですが。
お礼
HohoPapaさん 毎度お世話になります。 質問後会社に出なかったので対象のシートが手元(自宅)に無く検証結果報告が遅くなってしまいました。 原因が分かりました。 グラフ作成時にタイトル部分まで選択して作成したグラフを後でタイトルを変更すると「タイトルがありません」とエラーになってしまうことを確認しました。 ご回答の+を押すと既にチェックが入っており、一旦チェックを外して再度チェックを入れると自動的にタイトルが入ってくるので気づきました。 自動で入るタイトルを変えるとエラーになります。 やはり予想通り シート(グラフ)固有の問題でしたが解決しました。 流石!!!!!!!!