自己流でやっており下手なコードです・・・お知恵を拝借できればと思います!
アクディブセルを選択、写真挿入して複数枚の場合は隣のセルへ貼りつけのコードはできました。
これを指定セル2つに配置(E8とE9)にしようとしましたが、E8に写真が二枚貼りつけになってしまいました・・・
どこを変更したらいいのか、ご教授いただければ幸いです。
Sub 写真入れる()
Dim fName As Variant
Dim i As Long
Dim Pict As Picture
fName = Application.GetOpenFilename("JPGファイル, *.jpg", MultiSelect:=True)
If IsArray(fName) Then
Application.ScreenUpdating = False
'配列に格納されたファイル名をソート
BubbleSort fName, True
For i = 1 To UBound(fName)
Set Pict = ActiveSheet.Pictures.Insert(fName(i))
With Pict
.Top = Range("E8").Top '画像の上位置
.Left = Range("E8").Left '画像の左位置
.Width = Range("E8").Width 'セルの幅にリサイズ
End With
' 次の貼り付け先を選択(アクティブセルにする)
Select Case i Mod 1
Case 1 '次の写真(0,前の写真の何個下かを指定)
ActiveCell.Offset(1, 0).Select
End Select
Next i
End If
With Application
.StatusBar = False
.ScreenUpdating = True
End With
Set Pict = Nothing
MsgBox i - 1 & "枚の画像を挿入しました。", vbInformation
End Sub
No.1ベストアンサー
- 回答日時:
これでどうでしょうか?
Sub 写真入れる()
Dim fName As Variant
Dim i As Long
Dim Pict As Picture
fName = Application.GetOpenFilename("JPGファイル, *.jpg", MultiSelect:=True)
If IsArray(fName) Then
Application.ScreenUpdating = False
'配列に格納されたファイル名をソート
BubbleSort fName, True
For i = 1 To UBound(fName)
Set Pict = ActiveSheet.Pictures.Insert(fName(i))
'---ここから追加分1
Dim myCol As String
Dim myRow As Long
myCol = "E" '列の
myRow = "8" '行目から貼り付け開始
'ここまで追加分1---
With Pict
'---ここから変更1
.Top = Range(myCol & myRow + i).Top '画像の上位置
.Left = Range(myCol & myRow + i).Left '画像の左位置
.Width = Range(myCol & myRow + i).Width 'セルの幅にリサイズ
'ここまで変更1---
'---ここから追加分2
.Height = Range(myCol & myRow + i).Height 'セルの高さにリサイズ
'ここまで追加分2---
End With
' 次の貼り付け先を選択(アクティブセルにする)
Select Case i Mod 1
Case 1 '次の写真(0,前の写真の何個下かを指定)
ActiveCell.Offset(1, 0).Select
End Select
Next i
End If
With Application
.StatusBar = False
.ScreenUpdating = True
End With
Set Pict = Nothing
MsgBox i - 1 & "枚の画像を挿入しました。", vbInformation
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
Excelで空白セル直前のセルデー...
-
特定の色のついたセルを削除
-
VBAでユーザーフォームにセル値...
-
Excel UserForm の表示位置
-
VBA 複数条件の分岐処理の上手...
-
Excel VBA IF文がうまく動作し...
-
【Excel VBA】一番右端セルまで...
-
下記のマクロの説明(意味)を...
-
【VBA】【ユーザーフォーム_Lis...
-
VBA にて、条件付き書式で背景...
-
Excel VBAで特定の範囲の空白セ...
-
入力規則のリスト選択
-
Excel VBAでCheckboxの名前を変...
-
SPREAD.netで選択セルの合計を...
-
C# DataGridViewで複数選択した...
-
エクセルの合計を自動で表示さ...
-
DataGridViewのフォーカス遷移...
-
VBA コンボボックスで選んだも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
Excel UserForm の表示位置
-
【Excel VBA】一番右端セルまで...
-
エクセルの合計を自動で表示さ...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
下記のマクロの説明(意味)を...
-
Excel VBAでCheckboxの名前を変...
-
【VBA】写真の貼り付けコードが...
-
特定の色のついたセルを削除
-
VBA:日付を配列に入れ別セルに...
-
VBA にて、条件付き書式で背景...
-
DataGridViewのフォーカス遷移...
-
関数の引数でrangeを指定したとき
-
入力規則のリスト選択
-
DataGridViewで指定したセルの...
-
VBAでユーザーフォームにセル値...
-
複数指定セルの可視セルのみを...
おすすめ情報