回答編集履歴

1

コード追加

2020/07/16 06:05

投稿

ttyp03
ttyp03

スコア17000

test CHANGED
@@ -1,3 +1,89 @@
1
1
  [https://teratail.com/questions/277517](https://teratail.com/questions/277517)
2
2
 
3
3
  これで解決したのではないですか?
4
+
5
+
6
+
7
+ コードを追加します。
8
+
9
+ X座標は適宜調整してください。
10
+
11
+ ```VBA
12
+
13
+ Sub 画像貼り付け()
14
+
15
+
16
+
17
+ Dim objFile As Object
18
+
19
+ Dim objFldr As FileSystemObject
20
+
21
+ Dim TheShape As Shape
22
+
23
+ Dim i As Integer
24
+
25
+ Dim x, y As Integer
26
+
27
+ Dim r As Integer
28
+
29
+ Dim h As Integer
30
+
31
+
32
+
33
+ Const Y_NUM = 4 ' 何枚の画像を1グループとするか
34
+
35
+ Const Y_ROWS = 13 ' 1枚の画像とする行数(空行含む)
36
+
37
+
38
+
39
+ Set objFldr = CreateObject("Scripting.FileSystemObject")
40
+
41
+
42
+
43
+ i = 0
44
+
45
+ For Each objFile In objFldr.GetFolder(ThisWorkbook.Path & "\picture").Files
46
+
47
+
48
+
49
+ r = i * Y_ROWS + 1 ' セル位置(列)を計算
50
+
51
+ r = r + Int(i / Y_NUM) ' グループ間の空行を追加
52
+
53
+ x = ActiveSheet.Cells(r, 1).Left ' セルの座標(X)を取得
54
+
55
+ y = ActiveSheet.Cells(r, 1).Top ' セルの座標(Y)を取得
56
+
57
+ h = ActiveSheet.Cells(r + Y_ROWS - 1, 1).Top - ActiveSheet.Cells(r, 1).Top ' 画像の高さを計算
58
+
59
+
60
+
61
+ ActiveSheet.Shapes.AddPicture _
62
+
63
+ Filename:=objFile, _
64
+
65
+ LinkToFile:=False, _
66
+
67
+ SaveWithDocument:=True, _
68
+
69
+ Left:=x, _
70
+
71
+ Top:=y, _
72
+
73
+ Width:=252.834, _
74
+
75
+ Height:=h
76
+
77
+
78
+
79
+ i = i + 1
80
+
81
+ Next
82
+
83
+
84
+
85
+ End Sub
86
+
87
+
88
+
89
+ ```