1-7 KIkabu(予測シート)で画像グループ化でエラー発生
(1)エラー内容
これは過去に作成したツールがExcel2016でエラーになた話ではありませんが、2016で新ツール作成時、
自動記録したマクロがエラーになり、Web検索でも同一例がなく対応策作成に数時間掛かりました。
内容はシート上に2個の画像があり、その2個を今後の使用を考慮し、1個の画像、具体的にはグーループしまし
たが、自動記録のマクロがエラーになりなり、同じシートをExcel2003での自動作成のマクロと比較することにより
対応策ができました。

【図1-7a】エラーメッセージ



(2)エラー箇所
下記マクロは、"図 1"と "Picture 1"の2画像を選択し、グループ化実行するステータスでエラー発生。

【図1-7b】エラー箇所


(3)エラー発生原因
上図をマニュアルを行った場合は、2個画像が選択され、グループ化も正常でき1個の画像になりました。

自動記録


【図1-7c】自動記録実行例
Excel2016の新機能「予測チャート」には表題がありません。 下図はチャート(本例ではチャートは画像として
別シートに貼り付け済み)に表題を付けを自動記録した例です。



(3-1)Excel2016 の自動記録例
上図をマニュアルを行った場合は、2個画像が選択され、グループも正常できます。その自動記録は下記ですが、
これを実行しても、"図 1, "Picture 1"の2画像選択は1個しか選択されず、グループ実行でエラー発生。
Sub Macro2016()

    ActiveSheet.Shapes.Range(Array("図 1")).Select
    ActiveSheet.Shapes.Range(Array("図 1", "Picture 1")).Select
    Selection.ShapeRange.Group.Select
End Sub

(3-2)Excel2003 の自動記録例
同じシートをExcel2003 で自動記録は下記となった。画像の選択は"図 1"のみだった。その結果Excel2016の
"図 1, "Picture 1"で別の画像と思ったが、英語と日本語の違いはあるが、同じ画像を指しているようです。
Excel2016からは画像の指定は番号が同じなら、「図」「Picture」の両方できるようになったようです。
Sub Macro2003()

    ActiveSheet.Shapes("図 1").Select
    ActiveSheet.Shapes.Range(Array("図 1", "図 1")).Select
    Selection.ShapeRange.Group.Select
End Sub

(3-3)グループ化したファイル名もExcel2016で変わっています
Excel2003まではグループ化した画像名は「グループ化 *」でしたが、2016では「図*」でないとエラーになります。
    evrb = Val(Left(Application.Version, 2))
    If evrb < 12 Then
        ActiveChart.Shapes("グループ化 2").Select
    Else
        ActiveChart.Shapes("図2").Select
    End If

(4)改善マクロ例
下記マクロのように、画像名を強制的(本例図2・図3)別の番号の名前に変えた。

  zu1 = "": zu2 = ""
    For Each zu In ActiveSheet.Shapes
        mmei = zu.Name
 
        If zu1 = "" Then
             ActiveSheet.Shapes(mmei).Select
             Selection.Name = "図2"
            zu1 = "図2"
        Else
            ActiveSheet.Shapes(mmei).Select
             Selection.Name = "図3"
            zu2 = "図3"
        End If
   Next
 
   Sheets(msheet).Select
   ActiveSheet.Shapes(zu1).Select
    ActiveSheet.Shapes.Range(Array(zu1, zu2)).Select
    Selection.ShapeRange.Group.Select
   Range("J3").Select




【戻る】    【HPへ】