teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード追加

2020/07/16 06:05

投稿

ttyp03
ttyp03

スコア17002

answer CHANGED
@@ -1,2 +1,45 @@
1
1
  [https://teratail.com/questions/277517](https://teratail.com/questions/277517)
2
- これで解決したのではないですか?
2
+ これで解決したのではないですか?
3
+
4
+ コードを追加します。
5
+ X座標は適宜調整してください。
6
+ ```VBA
7
+ Sub 画像貼り付け()
8
+
9
+ Dim objFile As Object
10
+ Dim objFldr As FileSystemObject
11
+ Dim TheShape As Shape
12
+ Dim i As Integer
13
+ Dim x, y As Integer
14
+ Dim r As Integer
15
+ Dim h As Integer
16
+
17
+ Const Y_NUM = 4 ' 何枚の画像を1グループとするか
18
+ Const Y_ROWS = 13 ' 1枚の画像とする行数(空行含む)
19
+
20
+ Set objFldr = CreateObject("Scripting.FileSystemObject")
21
+
22
+ i = 0
23
+ For Each objFile In objFldr.GetFolder(ThisWorkbook.Path & "\picture").Files
24
+
25
+ r = i * Y_ROWS + 1 ' セル位置(列)を計算
26
+ r = r + Int(i / Y_NUM) ' グループ間の空行を追加
27
+ x = ActiveSheet.Cells(r, 1).Left ' セルの座標(X)を取得
28
+ y = ActiveSheet.Cells(r, 1).Top ' セルの座標(Y)を取得
29
+ h = ActiveSheet.Cells(r + Y_ROWS - 1, 1).Top - ActiveSheet.Cells(r, 1).Top ' 画像の高さを計算
30
+
31
+ ActiveSheet.Shapes.AddPicture _
32
+ Filename:=objFile, _
33
+ LinkToFile:=False, _
34
+ SaveWithDocument:=True, _
35
+ Left:=x, _
36
+ Top:=y, _
37
+ Width:=252.834, _
38
+ Height:=h
39
+
40
+ i = i + 1
41
+ Next
42
+
43
+ End Sub
44
+
45
+ ```