• 締切済み

エクセル2007のマクロ

どなたか教えて下さい。 エクセル2007で、図形とオートシェイプを同時に選択するマクロを教えて下さい。 今まで、エクセル2003では Selection.ShapeRange.Group.Select で、一発で選択できていましたが、エクセル2007に変わって動かなくなりました。 オートシェイプだけは、グループ化は出来たのですが、図形とのグループ化する方法が分かりません。 目的は、エクセルの図形の挿入で読込んだ図形の上に、エクセルのカメラで読込んだリンク図形(複数)を一緒にグループ化を行い、ペイント等でビットマップファイルを作成したいのです。 グループ化できた後は、手動でペイントに貼り付け、保存するつもりです。 よろしくお願いします。

みんなの回答

  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

確かにExcel2007だけ出来ないみたいですね。(Excel2010ではできる) 「図のリンク貼り付け」で作成されたものだと出来ないみたいなので、 1)「図の貼り付け」で対応できるならそれで対応する 2)「図のリンク貼り付け」で作成されたものを選択し数式バーの「=A1」とかを消して、保存して閉じて、再度開くと「図の貼り付け」の状態になるので、出来る 3)「図のリンク貼り付け」で作成されたものをすべて、コピー→形式を選択して貼り付け→PNGなどで貼り付け直して、グループ化する 4)グループ化をあきらめて、グループ化したかったセル範囲を範囲選択→コピーし、「図の貼り付け」で対応する

xychan
質問者

お礼

ありがとうございます。 エクセル2007では出来ないのですね あきらめて、4)で行います。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

>Selection.ShapeRange.Group.Select は、選択するマクロではありません。既に選択された図をグループ化するマクロです。 これはExcel2003でも同じです。 今までどの様な選択を行っていたのでしょうか? シート上のすべての画像も含めた図を選択したいのであれば、 ActiveSheet.DrawingObjects.Select で出来ますし、 それぞれ名前を指定して行うのであれば、 ActiveSheet.Shapes.Range(Array("図 1", "図形 1")).Select とすれば出来ます。

xychan
質問者

補足

kyboさん 早速の回答ありがとうございます。 マクロは If ActiveSheet.Shapes.Count > 1 Then '図形が1つならグループ化できないので以下実行しない ActiveSheet.Shapes.SelectAll     '図形を選択(これで図形もオートシェイプも選択でき                      'ていました(エクセル2003で) Selection.ShapeRange.Group.Select  'これで一括してグループ化ができました End If 回答いただいた ActiveSheet.DrawingObjects.Select で選択したあと Selection.ShapeRange.Group.Select   でグループ化を試みましたが オートシェイプはグループ化できましたが、図形をグループ化できませんでした。 グループ化するマクロが間違っているのでしょうか? 申し訳ありませんが、再度教えて下さい。よろしくお願いします。

関連するQ&A

  • Excelのマクロを使用してオートシェイプ図形の色を変えたいのです。

    Excelのマクロを使用してオートシェイプ図形の色を変えたいのです。 オートシェイプ図形を50個ならべて、マウスでクリックしてものは色が変わるようにしたいと思います。 マクロ記録をすると以下のようになりました。 Sub Macro1() ActiveSheet.Shapes("AutoShape 1").Select Selection.ShapeRange.Fill.ForeColor.SchemeColor = 45 Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid End Sub このプログラムを50個書くわけにはいかないのですが、プログラムで処理するのに問題点が2つ出てきました。 ・オートシェイプ図形の名前が"AutoShape 1"となっていますが、これを変更したいのですが、書式設定にはありませんでした。変更するにはどうすればよいのでしょう? ・クリックしたオートシェイプ図形がどれであるかを返す関数がないと、どの図形がクリックされたかわからないのですが、これを返す関数はあるのでしょうか? よろしくお願いします。

  • オートシェイプの位置

    エクセルですが。 セレクトされているオートシェイプを所定の位置に配置するマクロとして、以下は動作するのですが。 Selection.ShapeRange.Left = 250 Selection.ShapeRange.Top = 100 名前ボックスからオートシェイプの名前を aaa に変更し、以下のマクロを実行すると、いずれもエラーになってしまいます。 aaa.ShapeRange.Left = 250 aaa.ShapeRange.Top = 100 aaa.Left = 250 aaa.Top = 100 どこが間違っているのでしょうか?

  • エクセル2007でマクロを使った写真挿入がうまくいきません。

    エクセル2007でマクロを使った写真挿入がうまくいきません。 エクセル2003で使っていたひな形をもらったのですが2007では結合したセルから ずれてしまいます。 どうすれば位置の修正をできますか? また、結合した大きなセルの中にフォームボタンを付けいるのですが 2003では写真が挿入されるとボタンは隠れてしまっていたのですが、 2007では挿入した写真に重ねって写真が見ずらいです。 隠すことはできるのでしょうか? なにぶん初心者なのでお願いします。 Sub Pic_in() ' マクロ記録日 : 2003/7/1 kome fname = Application.GetOpenFilename ActiveSheet.Pictures.Insert(fname).Select Selection.ShapeRange.LockAspectRatio = msoFalse Selection.ShapeRange.Height = 247.5 Selection.ShapeRange.Width = 350 End Sub

  • エクセルマクロでオブジェクトを選択する方法

    エクセル(2002)を使っています。マクロの記録機能を使って円を描くマクロを作成しました。 Sub Maru(xpos, ypos, hankei) ActiveSheet.Shapes.AddShape(msoShapeOval, xpos, ypos, hankei, hankei).Select Selection.ShapeRange.Fill.Visible = msoFalse Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.ForeColor.SchemeColor = 64 Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255) End Sub 次にこの円を削除したいと思い、同じようにマクロの記録機能を使ったところ、 Sub Macro3() ActiveSheet.Shapes("Oval 64").Select Selection.Delete End Sub となりました。"Oval 64"はオブジェクトの名前のようですが、名前がわかっていないオブジェクト(但し上記マクロで書いたので場所はわかっている)を選択するにはどうしたらいいでしょうか。

  • エクセル VBA : テキストボックスのグループ化

    エクセル VBAにてテキストボックスをグループ化したいのです。 マクロを記録すると、 ActiveSheet.Shapes.Range(Array("Oval 82", "Text Box 83")).Select Selection.ShapeRange.Group.Select となります。 "Text Box 83"のように常に名前が固定されているわけではないので、セルのA1からC10にある図形を選択してグループ化するようにしたいのです。 ご存知の方、アドバイス願います。

  • エクセルに画像を貼付け縮小する作業をマクロにしたいのですが、

    エクセルに画像を貼付け縮小する作業をマクロにしたいのですが、 分からない部分があって困ってます。 (1)挿入したいセルにカーソルを合わせる (2)マクロ  挿入-図-ファイル-図の挿入-図の書式設定-サイズ-30% この作業を覚えさせると以下になりました。 Sub Macro3() ActiveSheet.Pictures.Insert("C:\Documents and Settings\デスクトップ\1.JPG") _ .Select Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Height = 360# Selection.ShapeRange.Width = 480# Selection.ShapeRange.Rotation = 0# End Sub これだと、写真が指定されてしまいます。 マクロの途中で止まって任意の写真を都度選べるようにできますか? 膨大な量の写真をセルに並べていきたいのです。

  • オートシェイプ図形の角度をマクロで変えたい

    エクセルのオートシェイプで図形を作って、それをグループ化して、 A1のセルへ数値を入力するとシート1上にあるオートシェイプの角度が変化するようにしたいのです。マクロで出来るでしょうか。 シート上の図形は、Group25 です。 エクセル2000を使用しています。 よろしくお願いします。

  • Word2007マクロ

    宜しくお願い致します Word2007でこんな事が出来ますか Excel2007で線路を作るマクロを作成しました(本を見て) これをWordでも使用したいのですが、Excelのマクロそのまま WordのVisual Basicに書き込んでもエラーが出て機能しません Excelのマクロは以下です Sub 線路作成() 上端位置 = Selection.Top 左端位置 = Selection.Left  Selection.ShapeRange.Line.Weight = 6# Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Duplicate.Select Selection.ShapeRange.IncrementLeft -18# Selection.ShapeRange.IncrementTop 9.6 Selection.ShapeRange.Line.DashStyle = msoLineDash Selection.ShapeRange.Line.Weight = 4.5 Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.ForeColor.SchemeColor = 9 Selection.ShapeRange.Line.Visible = msoTrue Selection.Top = 上端位置 Selection.Left = 左端位置 End Sub Wordで使えるようにするには、どこを直せばよいでしょうか。

  • オートシェイプの図形の高さ、幅をマクロで変えたい

    エクセルのオートシェイプで図形を作って、それをグループ化して、 A1(縦)A2(横)のセルへ数値を入力するとシート1上にあるオートシェイプの長さと幅が変化するようにしたいのです。マクロで出来るでしょうか。 シート上の図形は、Group25 です。 エクセル2010を使用しています。 よろしくお願いします。

  • エクセル マクロで引いた線の色設定が戻せない

    エクセルで作成した、出席簿にマクロで 土日などに赤線で罫線の間に縦に オートシェィプ直線を引いています。 次に転出者の欄には、横に線をマクロで引いていますが 色が変えられません。 マクロ終了後もオートシェイプの線色は黒でも 、線を引くと赤のままです。 その線を選択して、色を変えないと 変えられない状態です。 マクロ終了前に、色をリセットする事は出来ませんか? 下記の内容がマクロの一部です。 よろしくお願いします。 If yobi = doyo Or yobi = niti Then Cells(3, 2 + n).Activate If yobi = niti Then With Selection.Font .ColorIndex = 3 End With End If ActiveSheet.Shapes.AddLine(110.25 + 21.75 * (n - 1), 42, 110.25 + 21.75 * (n - 1), 651).Select Selection.ShapeRange.Line.ForeColor.SchemeColor = 10 '10=赤色 End If If yobi = "" Then ActiveSheet.Shapes.AddLine(110.25 + 21.75 * (n - 1), 14.25, 110.25 + 21.75 * (n - 1), 651).Select Selection.ShapeRange.Line.ForeColor.SchemeColor = 8 '8=黒色 End If

専門家に質問してみよう