以前、Excel2003を利用して工事写真帳を作成する方法を質問させていただきました。その後、工事写真帳は実用化して利用していますがWindows vistaのPCが増え、Excel2007でこの工事写真帳を使ってみたところ、次のような症状が起きてしまいます。どう訂正したら良いか教えていただければと思い再度投稿しました。
【仕様】工事写真帳は1シート構成、用紙1枚に3枚画像が入り、画像の右側には摘要欄があります。画像を読み込む位置をダブルクリックするとセルのサイズ(写真サイズに結合してあります)を取得して画像サイズを変更して格納します。
【問題点】ダブルクリックをすると読み込みたいセルより若干ずれた場所(左上寄り)に読み込まれます。2枚目以降ダブルクリックをすると1枚目の画像の上に重なった状態で読み込まれてしまいます。
コードは次の通りです。ぜひアドバイスをお願いします。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim pict As String
gyo = ActiveCell.Row 'クリック行の取得
retu = ActiveCell.Column 'クリック列の取得
If retu = 3 Then
Set scel = Cells(gyo, retu)
scel.Select 'セルサイズの取得
w = Selection.Width
h = Selection.Height
fname = Application.GetOpenFilename _
("画像ファイル,*.gif;*.jpg;*.bmp", 1, "画像ファイルを指定して下さい") '画像読込
If fname = False Then
Exit Sub
End If
ActiveSheet.Pictures.Insert(fname).Select
pict = Selection.Name
With ActiveSheet.Shapes(pict) '画像のサイズ変更
.LockAspectRatio = False
.Placement = xlFreeFloating
.Placement = xlMove
.Width = w
.Height = h
End With
Range("F" & gyo).Select '摘要欄へ移動
End If
End Sub
No.1ベストアンサー
- 回答日時:
参考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
参考URL:http://park.geocities.jp/tryvba/excel2007questio …
この回答への補足
cafe_au_laitさん、回答ありがとうございます。
今までのコードをcafe_au_laitさんが教えてくださったものに書き換えてみました。
見事に動きました!こんなに簡略化できるとは・・・まだまだ勉強が必要だと実感しました。
ただ、まだ完璧とはいかず悩んでいます。読み込んだ画像が結合したセルサイズ
(縦9.64cm×横13.69cm)より縦サイズが0.16cmほど小さく、読み込み縦位置も下にいくにつれ
少しずつ上にずれて読み込まれてしまいます。
作成している写真帳はA列と1行目は空白列と行を挿入してあり、印刷範囲から除かれている
ことが原因なのでしょうか?
解決策があれば引き続きアドバイスをお願いします。
No.2
- 回答日時:
こんにちは。
>ただ、まだ完璧とはいかず悩んでいます。読み込んだ画像が結合したセルサイズ
>(縦9.64cm×横13.69cm)より縦サイズが0.16cmほど小さく、読み込み縦位置も下にいくにつれ
>少しずつ上にずれて読み込まれてしまいます。
ズームの倍率の設定を確認していただけますか?
こちらでいろいろ試したところ、倍率を100%以外にした時に大きなずれが生じました(Excel2007のみ検証)。AddPictureの代わりにPictures.Insertを用いても同様の挙動でした。理由はわかりませんが・・・。
cafe_au_laitさん、こんばんは!
ズーム倍率の設定が85%になっていたので100%にしてマクロを実行してみました。
不思議、100%の時だけちゃんと結合したセルサイズになります!
これはExcel2007のバグなのでしょうか?
作成中の書類がどんなものか詳しくお話していなかったのに、わざわざ時間を割いて
いろんなケースを想定して試していただきありがとうございます。
社内でははじめてのWindowsVistaのPCだったのでExcel2007にまさかこのような
不具合があるとは思ってもみませんでした。早速PCを持ち主に返すことができました。
しばらくは写真整理をExcel2003のPCでしてもらうつもりでしたが、こんなに早く解決
できるとは感謝、感謝です。ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同級生の顔を使ってエロ画像を...
-
pixivの画像を保存しようとした...
-
JPEGファイルに文字を入れたい
-
マクロで画像挿入→エラー「リン...
-
至急回答お願いします、彼氏に...
-
tiffファイルの解像度変更の仕方
-
iPhoneで写真を撮りました。 端...
-
「強調」の対義語は何ですか?
-
エクセル 写真 貼り付け
-
可愛い子はプリクラが盛れない...
-
ツイッターとかの画像を紙に印...
-
女性はSNSにデフォルトカメラ(...
-
2Lサイズの写真のトリミングの...
-
証明用写真の作り方をお教えく...
-
至急です!!答えてくださいお願...
-
可愛い子がプリクラを撮ると盛...
-
画像をメールで送る時にわざわ...
-
PCでPDFファイルを電子書籍のよ...
-
受信した添付写真を大きくする
-
JPEG写真のファイル名を印刷す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同級生の顔を使ってエロ画像を...
-
iPhoneで写真を撮りました。 端...
-
可愛い子はプリクラが盛れない...
-
マクロで画像挿入→エラー「リン...
-
JPEGファイルに文字を入れたい
-
至急回答お願いします、彼氏に...
-
pixivの画像を保存しようとした...
-
写真の下に文字を入れるには?
-
tiffファイルの解像度変更の仕方
-
整形外科などで、MRIやレントゲ...
-
PCでPDFファイルを電子書籍のよ...
-
受信した添付写真を大きくする
-
「湾岸の千葉君」での秀里毅の写真
-
撮影日時をそのままに残して画...
-
エクセル・ワードの表を画像化...
-
「強調」の対義語は何ですか?
-
グーグル画像検索にかからない...
-
持っている写真の画質を上げる...
-
EXIF情報がない場合はどのよう...
-
Word差し込み印刷 画像更新され...
おすすめ情報