Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


115 / 76612 ←次へ | 前へ→

【82166】ディメンションが無効
質問  あおこ  - 23/6/15(木) 17:56 -

引用なし
パスワード
   ▼マナ さん:
何度も申し訳ありません。
追加で質問です。

ご提示のコードを参考に下記のようにコードを書いて実行しています。

当初問題なく動いていたのですが、突然
 cho.Copy のところで
「指定したディメンションは、このグラフの種類では無効です。」
のエラーが出るようになりました。(再実行すれば作成されますし、出ないときもあります。)
解消方法がありますでしょうか。ネットで調べましたが、よく分かりませんでした。。

それから、下記のコードでは、まれに応答なしになって落ちるため、
ステータスバーにグラフの個数を表示させ、
何個目のグラフで落ちるのか確認していたら、
どうも最後のグラフが作成されるまでは行くので、
そのあとループがうまく抜けられないのかと。。

コードの問題点等あればご指摘いただけませんでしょうか。

今は
1.結果用シートを学校名で作成
2.結果用シートにクロス集計_割合シートの集計データをコピー
3.基本グラフのグラフをコピーして
4.結果用シートに貼り付け、データソースを変更
 ※質問数繰り返し
5.結果通知ひな形のデータを結果シートのグラフ上部に貼り付け、完成。
の手順で行っていますが、

うまくいかないのは、手順がよろしくないからでしょうか??
ネットや本で調べながらいろんなものを組み合わせて
見よう見まねで書いていますので、ご教示いただけるとありがたいです。

よろしくお願いいたします。


Sub 結果作成()

 Set wb_A = ThisWorkbook
 Set sh_A1 = wb_A.Worksheets("作業用")
 Set sh_A2 = wb_A.Worksheets("クロス集計_割合")
 Set sh_A3 = wb_A.Worksheets("基本グラフ")
 Set sh_A4 = wb_A.Worksheets("結果ひな形")
 
  gakko = sh_A1.Range("I10") & "学校"

  MsgBox "結果を作成します", vbInformation
    
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  
  '’学校名シートがないか確認して追加、あれば削除するコードを記述(記載省略)
  
  Set sh_A5 = wb_A.Worksheets(gakko)
  With sh_A5
   sh_A2.UsedRange.Copy
   .Activate
   .Range("A2").Select
   Selection.PasteSpecial Paste:=xlPasteAll
   Selection.PasteSpecial Paste:=xlPasteColumnWidths '<書式(列幅)もコピーします。>
   Application.CutCopyMode = False
   lastRow1 = .Range("A" & Rows.Count).End(xlUp).Row
   .Rows("2:" & lastRow1).Select 'フォント変更
   Selection.Font.Size = 10
   Selection.Font.Name = "MS Pゴシック"
   Selection.VerticalAlignment = xlCenter
   
   ' Selection.HorizontalAlignment = xlCenter
   ActiveWindow.Zoom = 80 '<アクティブシートの表示を80%にします。>
  
   .Columns("J").ColumnWidth = 2
   .Columns("T").ColumnWidth = 1
   .Rows("2:200").RowHeight = 15
      
   'ウィンドウ枠の固定
   .Range("C1").Select
   ActiveWindow.FreezePanes = True
   .Range("A1").Select
  
  ''元データ完成
  '=========================================
  ''データを基にグラフを作成
  Set cho = sh_A3.ChartObjects(1).Duplicate.Parent 'コピー元のグラフを複製
  With sh_A5.Range("A1:A20")
    cho.Height = .Height
    d = .Rows.Count + 2
  End With
  cho.Width = .Range("K1:S1").Width
  cho.Copy   ←←ここ
   
  lastRow1 = .Range("A" & Rows.Count).End(xlUp).Row
  GYO = 2 '開始行
  k = 0 'グラフの個数
  
  Do While .Cells(GYO, 1).Value <> ""
   .Activate
   Application.StatusBar = "  " & k + 1 & "個めのグラフ処理・・"
  '=========================================
  '質問ごとのデータ範囲を選択
   GYO1 = GYO ' グループの先頭行→GYO1
   GYO = GYO + 1
    ' 次の行から同じグループでない行を見つける
    Do While .Cells(GYO, 1).Value <> "合計" '条件を満たしている間処理を繰り返す
      GYO = GYO + 1
    Loop
   GYO2 = GYO  ' 同じグループの最終行→GYO2
   GYO = GYO + 1
  
   lastcol1 = .Cells(GYO1, Columns.Count).End(xlToLeft).Column '読み込み行の最終列を取得
   .Range(.Cells(GYO1, 2), .Cells(GYO2, lastcol1 - 1)).Select
    
    Set r = Selection

  '=========================================
   
   DoEvents
   DoEvents
   DoEvents
   DoEvents
   
    .Paste .Range("k17").Offset(k * d)
      
    .ChartObjects(k + 1).Chart.SetSourceData Source:=r
    .ChartObjects(k + 1).Chart.ChartTitle.Text = r(1).Value
   
   k = k + 1
   Loop
   cho.Delete
   Application.CutCopyMode = False
   Application.StatusBar = False
   
   'グラフ作成終了
   '=========================================
   G_GYO = .ChartObjects(.ChartObjects.Count).BottomRightCell.Row + 2 'グラフの右下のセルの行
  
   ''結果ひな形をコピー
   sh_A4.UsedRange.Copy
   .Activate
   .Range("K2").Select
   Selection.PasteSpecial Paste:=xlPasteAll
   'Selection.PasteSpecial Paste:=xlPasteColumnWidths '<書式(列幅)もコピーします。>
   Application.CutCopyMode = False
  
   Application.PrintCommunication = False '//プリンタとの接続を切断
   '印刷範囲設定 及び横1ページに収める
   .PageSetup.PrintArea = .Range(.Cells(1, 10), .Cells(G_GYO, 20)).Address
   .PageSetup.Zoom = False
   .PageSetup.FitToPagesWide = 1
   .PageSetup.FitToPagesTall = False
   Application.PrintCommunication = True '//プリンタと再接続
  End With 'sh_A5
  
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True
  MsgBox gakko & "分を作成しました", vbInformation

End Sub

108 hits

【82158】グラフのコピー あおこ 23/6/12(月) 15:00 質問[未読]
【82159】Re:グラフのコピー マナ 23/6/12(月) 22:36 発言[未読]
【82160】Re:グラフのコピー あおこ 23/6/13(火) 10:08 発言[未読]
【82161】Re:グラフのコピー マナ 23/6/13(火) 23:21 発言[未読]
【82162】Re:グラフのコピー あおこ 23/6/14(水) 16:31 質問[未読]
【82163】Re:グラフのコピー あおこ 23/6/14(水) 18:32 質問[未読]
【82164】Re:グラフのコピー マナ 23/6/14(水) 21:25 発言[未読]
【82165】Re:グラフのコピー あおこ 23/6/15(木) 14:33 お礼[未読]
【82166】ディメンションが無効 あおこ 23/6/15(木) 17:56 質問[未読]
【82167】Re:ディメンションが無効 マナ 23/6/15(木) 21:13 発言[未読]
【82168】Re:ディメンションが無効 あおこ 23/6/16(金) 10:58 お礼[未読]
【82169】Re:ディメンションが無効 マナ 23/6/16(金) 21:24 発言[未読]
【82170】Re:ディメンションが無効 あおこ 23/6/20(火) 10:22 お礼[未読]

115 / 76612 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free