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件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
そちらの質問とは微妙に異なっておりまして。
あちらはA列に記載されたファイルをどうやって開くか(写真を貼り付けるか)で、こちらは貼り付けができた場合に、ズレてしまうのをどのように直せるか?というものです。後者はForNextの使い方がよく分かっていないので教えてほしいと言った感じです。
一度に聞ける内容ではあるのですが、混乱してしまうかなと思い別で投稿しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
DataGridViewの各セル幅を自由...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
EXCELで変数をペーストしたい
-
Excel vbaで特定の文字以外が入...
-
Sub 要具ライフ() ActiveSheet....
-
Excel VBA、 別ブックの最終行...
-
【EXCEL VBA】Range("A:A").Fi...
-
特定の文字を条件に行挿入とそ...
-
指定文字以外のカウント
-
VBA実行後に元のセルに戻りたい
-
連続する複数のセル値がすべて0...
-
VBAでセルに値が入ったときにイ...
-
Word版VBで表の任意の箇所を...
-
screenupdatingが機能しなくて...
-
Excelのハイパーリンクにマクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報