Microsoft 製品に組み込まれている Visual Basic の実装。
yamano_bori さん、こんにちは。
こちら VBA のフォーラムでも質問されて、返信もいただけたようですね。
同じような問題でお悩みの方にもご参考いただけるよう、今回は私の方で \[回答としてマーク\] をいたしました。
通常の Office の問題でしたら Answers にもご遠慮なく投稿くださいね。
今後も Answers をよろしくお願いします。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
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を設定する処理を追加してみたところ
その処理は正しく動作できています。単に画像のみが正しく設定できないという現象です。
原因ないし、対処方法がお分かりの方お教え願えないでしょうか。
宜しくお願い致します。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
yamano_bori さん、こんにちは。
こちら VBA のフォーラムでも質問されて、返信もいただけたようですね。
同じような問題でお悩みの方にもご参考いただけるよう、今回は私の方で \[回答としてマーク\] をいたしました。
通常の Office の問題でしたら Answers にもご遠慮なく投稿くださいね。
今後も Answers をよろしくお願いします。
質問作成者が受け入れた回答
yamano_bori さん、こんにちは。
こちらのご質問ですが、VBA に関する質問の場合、Answers ではなかなか情報が集まりにくいかもしれません。。。
もしよろしければ、MSDN フォーラム内に VBA 専用のフォーラムがありますので、こちらへ投稿いただくと、よりアドバイスが集まってくるのかなと思います。
Visual Basic for Application (VBA) フォーラム
ぜひ、ご活用いただければと思います。
ありがとうございます。試してみます。