
過去に2度、Excel2003を利用して工事写真帳を作成する方法を質問させていただきました。最近、社内でExcel2010を使用している人が多くなり、修正した写真帳でも不具合が発生するようになり、その原因を調べているのですが同じ症例がなかなか見当たりません。そこで今回もまたお知恵を拝借したいと思い投稿しました。
【仕様】工事写真帳は複数シート構成、1シートはA4サイズで縦に3枚の画像が読み込めます。画像の右側には摘要欄があります。画像を読み込む位置をダブルクリックするとセルのサイズ(写真サイズにしてあります)を取得して画像サイズを変更して格納します。
【問題点】一度保存したファイルを開くと画像がぼける。図の書式設定の[サイズ]を確認すると、サイズと角度の高さ=9.59cm、幅=13.69cm(読み込むセルのサイズ)、原型のサイズの高さ=0.38cm、幅=0.42cmとなっています。元の画像サイズは640×480なので、マクロを実行中、どこかのタイミングで画像の一部をトリミングし、縦横サイズを小さくした画像をセルサイズにまで拡大していることが原因だということまではわかりました。ただ、すべてのシートがこの状態なわけではなく、正常に表示されているシートもあります。この場合も画像のサイズと角度の高さ=9.59cm、幅=13.69cm(読み込むセルのサイズ)、原型のサイズの高さ=9.59cm、幅=13.69cmと元の画像より小さくなっています。
コードは次の通りです。どこに問題があるか、ぜひアドバイスをお願いします。
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 '3列目でなかったら終了
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 '摘要欄(右へ3)へ移動
End With
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ご呈示のコードだけだとそのようなことは起こらないようです。
また、トリミングのコードはここには無いようなので他で記述しているのではありませんか。
linktofile:=True で取り込んだ画像がサイズ縮小されて保存先のフォルダーにある画像サイズが変わったりするのかと何度も調べてみたのですが、調べた限りでは何の変化もみられませんでした。
なお、そのままのコードでは2010版で実行できず、少し修正して調べました。
時間を割いて調べてくださり感謝いたします!
VBAはネットで調べたコードをアレンジして使ったり、今回のように質問し、いただいた回答をそのまま使っているレベルなので詳しくはないのですが、質問に記載したコードは[コードの表示]-「ThisWorkbook」に記述されているものをすべてコピー&ペーストしたものです。
問題点に心あたりがあると言えば、もともとExcel2003で作成した写真帳をExcel2010で開き、[名前を付けて保存]でExcel2010で保存したものをフォームとして運用しているからかな~?というくらいなんですが…。
linktofile:=Trueについて調べたところ、『Trueで元のファイルとのリンクを設定、Falseで独立した画像』とあったのですが、これは元画像が保存されているPC以外でファイルを開く場合にはFalseとした方が良いのでしょうか?
「Module」にかかれたコードの場合、F8(ステップイン)で一行ずつ変数の値などを確認するのですが、「ThisWorkbook」はできない?のでどこに問題があるのかわからない状況です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリーンショットをエクセル...
-
このアプリの質問に回答する時...
-
ブログの画像サイズについて。...
-
Windows 7 検索フィルターの追...
-
ヤフーブログ、記事部を広げる方法
-
ブログ作成に、ワードプレスを...
-
FC2ブログ 写真の大きさを縮小...
-
グーグルドライブ、勝手に共有...
-
line
-
【ExcelVBA】各セルをダブルク...
-
教えてGooがサービス終了したら...
-
QRコードを保存する方法を教え...
-
外国人のコメント欄でよく、コ...
-
エクセルVBAを使用し、指定のパ...
-
FFFTPでエラーがでます
-
Webページ上で飛び飛びの文章を...
-
最近プリクラを撮るとピクトリ...
-
拡張子bakってなんですか?必要...
-
漫画やアニメのキャラのセリフ...
-
GoogleドライブOCR機能が使えな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリーンショットをエクセル...
-
gooメモで写真がく上げれま...
-
ブログの画像サイズについて。...
-
Livedoorブログで写真、文章が...
-
画像リンクを別ウインドウでサ...
-
Gooブログの画像を大きく出来ま...
-
ブログの写真サイズ
-
プログの写真取り込み
-
画像のサイズとは? KBの数...
-
ブログ作成に、ワードプレスを...
-
goo blog 画像サイズ
-
このアプリの質問に回答する時...
-
FC2ブログのサムネイルサイズ変更
-
ImageMagickでの画像サイズ取得
-
iPhoneのアプリ(新)のアップ...
-
画像のサイズ
-
写真を1メガ以内にする方法を教...
-
ブログ見出し画像のサイズと容量
-
fc2ブログのヘッダーの画像変更
-
macbookairで複数写真のサイズ...
おすすめ情報