次の方法で共有

EXCEL VBA 画像貼付けで指定セルに貼り付かない

Anonymous
2011-10-03T07:53:00+00:00

EXCEL VBAで写真を台紙に貼り付けようとしています。

台紙は1ページ3列30行で構成され、A1~A9,A11~A19,A21~A29のセルが結合セルに設定され、そこに写真を貼り付けるように設定されています。

C列にはA1~A9の写真に該当する名称はC4,C6に、A11~A19の写真に該当する名称はC14,C16に、A21~A29の写真に該当する名称はC24,C26に各々設定されています。B列は写真と写真名称の間を埋める隙間として設定されており、何も設定していません。

今、この1ページ構成で1シート上に80ページ分設けて台紙シートとしてあります。列方向に80ページの構成としていますので、最終使用列はIFになります。

この台紙はユーザが設定してきており、どの位置にどの写真を貼り付けるのかの指定がされています。

問題は以下のコードで指定されたセルに対象の画像を貼り付けようとしたとき、改ページプレビューで見たときのページ表示が最大列数を超えるような表示に一時的になったときに、指定セルに正しく画像が設定できないという現象が発生しているのです。

以下が画像貼り付けに使用しているコードです。

                Set Movcell = disBOOK.Worksheets(dissheet_NAME).Cells(prow, pcol)

                '********** 目的の位置・セルのサイズのセット ********

                With Movcell

                    'テスト追加分

                    Set Pic = disBOOK.Worksheets(dissheet_NAME).Shapes.AddPicture( _

                    Filename:=myPICTURE_PATH_FILE_NAME, LinkToFile:=False, _

                    SaveWithDocument:=True, _

                    Left:=.Left + 2, _

                    Top:=.Top + 2, _

                    Width:=.MergeArea.Width, _

                    Height:=.MergeArea.Height)

                End With

prow, pcolには写真を貼り付ける結合されたセルの先頭部分の位置が設定されています。

myPICTURE_PATH_FILE_NAMEには画像のフルパス名が設定されています。

どのような動作結果になるかというと、48ページ以降のページには正しく画像が貼り付きません。

48ページのところから少しずれた位置に以降の画像が重なって貼り付いてしまいます。

        Application.ScreenUpdating = False

にしても、現象は変わりません。

上記コードの直後に該当のセルへmyPICTURE_PATH_FILE_NAMEを設定する処理を追加してみたところ

その処理は正しく動作できています。単に画像のみが正しく設定できないという現象です。

原因ないし、対処方法がお分かりの方お教え願えないでしょうか。

宜しくお願い致します。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2011-10-11T08:58:21+00:00

yamano_bori さん、こんにちは。

こちら VBA のフォーラムでも質問されて、返信もいただけたようですね。

 EXCEL VBA による画像又は写真貼り付けについて

同じような問題でお悩みの方にもご参考いただけるよう、今回は私の方で \[回答としてマーク\] をいたしました。

通常の Office の問題でしたら Answers にもご遠慮なく投稿くださいね。

今後も Answers をよろしくお願いします。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2011-10-04T05:47:06+00:00

yamano_bori さん、こんにちは。

こちらのご質問ですが、VBA に関する質問の場合、Answers ではなかなか情報が集まりにくいかもしれません。。。

もしよろしければ、MSDN フォーラム内に VBA 専用のフォーラムがありますので、こちらへ投稿いただくと、よりアドバイスが集まってくるのかなと思います。

Visual Basic for Application (VBA) フォーラム

ぜひ、ご活用いただければと思います。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2011-10-04T06:15:56+00:00

    ありがとうございます。試してみます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません