プロが教える店舗&オフィスのセキュリティ対策術

A列にファイル名、B列に画像が挿入されるマクロを作成しました。
しかし、以下のマクロを実行すると、 画像が上手く挿入されません。
「'選択位置に画像ファイルを挿入し、変数myShapeに格納」にエラーが出てしまい、セルとはずれた位置に挿入されてしまいます。
For Nextを2つ使っているのが原因かと思っているのですが、どのように直せばよいのかががわかりません。
どなたか、改善方法を教えていただけないでしょうか?


Buf = Dir(FolderPath & "*.jpg") ’フォルダパスは事前に取得済
cnt = 4

For i = 1 To ptn ’ptn=シート数

j = Sheets(1).Cells(5, 1).Value
For A = j To j - 1 + dat ’dat=1枚のシートに挿入する画像の数

'シートを選択
Sheets(i).Select

'ファイル名を入力
cnt = cnt + 1
Cells(cnt - ((i - 1) * dat), 1) = Buf

'写真を貼り付ける
Cells(cnt - ((i - 1) * dat), Label1).Select 'Label1=列番号

'選択位置に画像ファイルを挿入し、変数myShapeに格納
Set myShape = ActiveSheet.Shapes.AddPicture( _
FileName:=FolderPath & "\" & Buf, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=0, _
Height:=0)

'挿入した画像に対して高さ・幅を設定する
myShape.Select
With Selection
.ShapeRange.Height = .TopLeftCell.Height 'セルの高さ
.ShapeRange.Width = .TopLeftCell.Width 'セルの幅
End With
Buf = Dir()

Next A

j = j + 1

ActiveSheet.Range("A1").Select

Next i

End With

A 回答 (1件)

あれれ・・・



これ(↓)と同じ???
https://oshiete.goo.ne.jp/qa/12152573.html
    • good
    • 0
この回答へのお礼

こんにちは。
そちらの質問とは微妙に異なっておりまして。
あちらはA列に記載されたファイルをどうやって開くか(写真を貼り付けるか)で、こちらは貼り付けができた場合に、ズレてしまうのをどのように直せるか?というものです。後者はForNextの使い方がよく分かっていないので教えてほしいと言った感じです。

一度に聞ける内容ではあるのですが、混乱してしまうかなと思い別で投稿しました。

お礼日時:2021/01/18 16:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!