- ベストアンサー
Excel2003で作成したマクロがExcel2007で上手く動かない
- Excel2003で作成したマクロがExcel2007で上手く動かない状況が発生しています。
- 工事写真帳は1シート構成で、画像と摘要欄があります。ダブルクリックで画像を読み込むと、位置がずれたり重なったりしてしまいます。
- Excel2007でこの問題を解決する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考URLにあるように、TopとLeftを指定する必要があるようです。 ここではAddPictureメソッドを使用してみました。 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 'クリックしたセルやシートは変数に格納されています。 Dim pict As Shape Dim fname With Target If .Column <> 3 Then Exit Sub fname = Application.GetOpenFilename _ ("画像ファイル,*.gif;*.jpg;*.bmp", 1, "画像ファイルを指定して下さい") '画像読込 If fname = False Then Exit Sub Set pict = Sh.Shapes.AddPicture(Filename:=fname, linktofile:=True, _ SaveWithDocument:=True, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height) pict.LockAspectRatio = False pict.Placement = xlMove .Offset(, 3).Select '摘要欄へ移動 End With End Sub
その他の回答 (1)
- cafe_au_lait
- ベストアンサー率51% (143/276)
こんにちは。 >ただ、まだ完璧とはいかず悩んでいます。読み込んだ画像が結合したセルサイズ >(縦9.64cm×横13.69cm)より縦サイズが0.16cmほど小さく、読み込み縦位置も下にいくにつれ >少しずつ上にずれて読み込まれてしまいます。 ズームの倍率の設定を確認していただけますか? こちらでいろいろ試したところ、倍率を100%以外にした時に大きなずれが生じました(Excel2007のみ検証)。AddPictureの代わりにPictures.Insertを用いても同様の挙動でした。理由はわかりませんが・・・。
お礼
cafe_au_laitさん、こんばんは! ズーム倍率の設定が85%になっていたので100%にしてマクロを実行してみました。 不思議、100%の時だけちゃんと結合したセルサイズになります! これはExcel2007のバグなのでしょうか? 作成中の書類がどんなものか詳しくお話していなかったのに、わざわざ時間を割いて いろんなケースを想定して試していただきありがとうございます。 社内でははじめてのWindowsVistaのPCだったのでExcel2007にまさかこのような 不具合があるとは思ってもみませんでした。早速PCを持ち主に返すことができました。 しばらくは写真整理をExcel2003のPCでしてもらうつもりでしたが、こんなに早く解決 できるとは感謝、感謝です。ありがとうございました!
補足
cafe_au_laitさん、回答ありがとうございます。 今までのコードをcafe_au_laitさんが教えてくださったものに書き換えてみました。 見事に動きました!こんなに簡略化できるとは・・・まだまだ勉強が必要だと実感しました。 ただ、まだ完璧とはいかず悩んでいます。読み込んだ画像が結合したセルサイズ (縦9.64cm×横13.69cm)より縦サイズが0.16cmほど小さく、読み込み縦位置も下にいくにつれ 少しずつ上にずれて読み込まれてしまいます。 作成している写真帳はA列と1行目は空白列と行を挿入してあり、印刷範囲から除かれている ことが原因なのでしょうか? 解決策があれば引き続きアドバイスをお願いします。