• ベストアンサー

Excel マクロ(図形描画)

いつもお世話になっております。 スクリーンショットで切り取った画面をエクセルに貼ったあと、周りを黒の線で囲みたいと考えています。 (今は、四角形の描画→大きさを調整→塗りつぶしなし→太さを3.0に変更→決定の順で毎回変更しております。) 毎回、画像の大きさに合わせて調整をしているのですが、画像を選択してマクロを実行すれば自動的に大きさを合わせて周囲を囲むことは可能でしょうか? お力をお貸しいただけましたら幸いです。 よろしくお願いたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

確かに細かいプロパティの設定のコードは、マクロの記録でわかる。しかしそれだけではどうにもならない。 ーー Sheet1に挿入ー図ーファイルからー図のファイル指定 これを数個繰り返す。 1つはわざとDELETEしてみる。 Sheet1にコマンドボタンを1つ貼り付け。 そのボタンのクリックイベントに Private Sub CommandButton1_Click() test01 End Sub とモジュールを指定。 ーー test01は Sub test01() Dim sp As Object ' MsgBox Worksheets("Sheet1").Shapes.Count For Each sp In Worksheets("Sheet1").Shapes MsgBox sp.Name MsgBox sp.Type If sp.Type = 13 Then 'Pictureなら sp.Select Selection.ShapeRange.Line.Weight = 5# Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoTrue End If Next End Sub このようにForEachでShape全体を捉え、その中のPictureだけ選別して(CommndButtonもShapesに引っかかるようなので、IFでtypeを選別した)、上記コードのSelectionの部分のプロパティの設定をする。 この部分はマクロの記録を採るとコードが判る。 上記ではテストで目立つように線を太くしている。 線の太さ、線の色、点線など適当に設定してください。 今まで、図の周りに線が引いてあっても、全てに再度引きなおす( 非能率だがコードを複雑化しないため)。 図の位置・サイズ等は元のものを触らない。 ーー 私は写真2-3枚を貼り付けてテストしただけだが、色々試してください。 -- 納得できたら、上記コードの中のMsgboxの行を削除すること。

その他の回答 (2)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

Excel2007では Selection.ShapeRange.Line.Weight = 3# で画像のLineを設定できます。 他のバージョンではどうなのか解りません。

  • harapeco7
  • ベストアンサー率54% (33/61)
回答No.1

一番簡単な「マクロの記録」を使った方法を紹介します。 ~~ マクロの作成 ~~ 1.まずいつも通りにシート上に図を貼り付けます。 2.貼り付けたた図を選択した状態にする。 3.ツールバーで「ツール→マクロ→新しいマクロの記録」を選択。 4.マクロ名を入力(Macro1でもOK)し、OKを押す。 (OK押した後の操作が全て記録されます。) 5.図の上で「右クリック→図の書式設定」を選択し、図を調整しOKを押す。 6.ツールバーで「ツール→マクロ→記録終了」を選択。 ~~ マクロの呼び出し ~~ 1.未編集の図をシート上に貼り付ける。 2.貼り付けたた図を選択した状態にする。 3.ツールバーで「ツール→マクロ→マクロ」を選択。 4.マクロの一覧から使用したいマクロを選択し実行を押す。 図の編集パターンが数種類あるのでしたら、別パターンのマクロを 同じ手順で作成すればOKです。

関連するQ&A