- 締切済み
エクセル2010の図(画像貼り付け)について
エクセル2010にて特定のセルをダブルクリックすると画像を選択しを貼り付けられるようにしたいです。 以下詳細です。 画像の貼り付けはリンクによるものではなくエクセルそのものに保存できるようにしたい。 エクセル2003のようなイメージ。 特定のセルは ("B3:B12,J3:J12,B14:B23,J14:J24,B25:B34,J25:J34") 特定のセルの大きさは 縦:248 横:359 縦横の比率は無視してセルの大きさに合わせて貼り付けたいです。 また、エクセル2003のPCからアクセスしたときも同様に動作してくれたら完璧なのですが。 関係ありませんがOSはWIN7です。 いろいろなHPを見ましたがうまくいかずお手上げ状態です。 どなたかよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- h_tana_0530
- ベストアンサー率71% (5/7)
こんばんは。 ご要望の機能そのものではないですが、まずはB3:B12の範囲のセルをダブルクリックした時に、そのセル位置(正確にはB3セルの左上隅を基準とする位置)に画像を貼り付けるコードを作ってみました。 下のコードを作業したいシートのモジュールに貼り付けて、変数 PFILENAME に貼り付けたい画像ファイルのファイル名をセットしてください。 一応EXCEL2010で動作確認は行っております。 ******************************************* Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim shp As Shape Dim rg As Range Dim PFILENAME As String PFILENAME = (挿入したい画像fileのフルパス名) Set rg = Range("B3:B12") If Not (Application.Intersect(Target, rg) Is Nothing) Then Set shp = Worksheets("Sheet1").Shapes.AddPicture(PFILENAME, False, True, _ rg.Left, rg.Top, 359, 248) End If Set shp = Nothing Set rg = Nothing Cancel = True End Sub ******************************************* AddPictureメソッドの第二引数をFalse にすることで、画像の実体を取り込めます。 また、第三引数をTrue にすることで、実体を取り込んだまま、EXCEL fileを保管することができます。 これでうまくいけば、後はターゲットとなるセル範囲を拡張する変更と、画像file名を任意に(ご要望通りに)設定する作業を加えていけば、やりたいことはできると思います。 なお、EXCEL2003にもAddPicture メソッドがあり、引数の設定は同じなので、EXCEL2003でも動作すると思います。 (ただし、まだ試していませんが。) 一度お試しあれ。