質問編集履歴

2

コード削除

2015/11/26 23:27

投稿

cat_junko
cat_junko

スコア44

test CHANGED
File without changes
test CHANGED
@@ -1,7 +1,3 @@
1
- 下記のようなマクロコードがあります。
2
-
3
- 実行すると結合した任意のセルに写真を貼り付けてくれます。
4
-
5
1
  複数選択で一括で貼り付けることができるとっても便利なコードなのですがこれを変更したいです。
6
2
 
7
3
  1、貼り付けた写真を結合セルの中央に持ってきたい。
@@ -20,342 +16,8 @@
20
16
 
21
17
  ------------------------------------------------
22
18
 
23
- '写真ファイルや図形ファイルなどの複数画像一括で選択しセルの行順(まは任意セル)に挿入しま
19
+ 1,2,3を、解決することが出来たのでコード削除しました
24
20
 
25
- 'セルのサイズに合わせて画像のサイズ縮小(または拡大)することもできます。
21
+ -------------------------------------------------
26
22
 
27
-
28
-
29
- Dim n, fi, cc As Range, ya, ca, g, ok, fl, l
30
-
31
- Sub 複数画像の挿入()
32
-
33
- Dim a, c, sr, sc, s, rr, pkfile, ar, ac, z, rc, ccc, ca0
34
-
35
- On Error GoTo err
36
-
37
- Set a = Application.InputBox("画像を挿入するセルを選択してください" _
38
-
39
- & Chr(13) & Chr(10) & "複数選択可 (ShiftキーまたはCtrlキーで選択)" _
40
-
41
- , "複数画像の一括挿入(セル選択)", Selection.Address, , , , , 8)
42
-
43
- Application.ScreenUpdating = False
44
-
45
- a.Select
46
-
47
- sr = Selection.Row
48
-
49
- sc = Selection.Column
50
-
51
- rr = sr
52
-
53
- pkfile = Application.GetOpenFilename _
54
-
55
- ("すべての図(*.emf;*.wmf;*.jpg;*.jpeg;*.jfif;*.jpe;*.png;*.bmp;*.gif;*.eps), *.emf;*.wmf;*.jpg;*.jpeg;*.jfif;*.jpe;*.png;*.bmp;*.gif;*.eps", 2, "挿入する図の選択(複数選択可)", , True)
56
-
57
- If Not IsArray(pkfile) Then MsgBox "ファイルが指定されていません", , "複数画像の一括挿入": End
58
-
59
- For fi = 1 To UBound(pkfile)
60
-
61
- If pkfile(fi) = False Then MsgBox "ファイルが指定されていません", , "複数画像の一括挿入": End 'キャンセルの場合終わる
62
-
63
- Next fi
64
-
65
- n = ActiveSheet.Pictures.Count
66
-
67
- Application.DisplayAlerts = False
68
-
69
- z = MsgBox("画像のサイズをセルに合わせますか", vbYesNo, "複数画像の挿入")
70
-
71
- ok = 0
72
-
73
- If Application.Version < 12 Then
74
-
75
- If MsgBox("縦横比を保持しますか", 4, "複数画像の一括挿入") = 6 Then ok = 0 Else ok = 1
76
-
77
- End If
78
-
79
- If z = 6 Then ya = MsgBox("画像圧縮しますか", vbYesNo, "複数画像の挿入")
80
-
81
- l = MsgBox("元の画像へのリンクを作成しますか", 4 + 256)
82
-
83
-
84
-
85
- ar = a.Address
86
-
87
- ac = Range(ar).Count
88
-
89
- fi = 1
90
-
91
- If ac > 1 Then GoTo ech Else GoTo pc
92
-
93
- ech:
94
-
95
- ca0 = ""
96
-
97
- For Each cc In ActiveSheet.Range(ar)
98
-
99
- ca = Range(cc.Address).MergeArea.Address
100
-
101
- rc = Range(ca).Rows.Count
102
-
103
- ccc = Range(ca).Columns.Count
104
-
105
- If rc > 1 Or cc > 1 Then
106
-
107
- ca = Cells(Range(ca).Row + rc - 1, Range(ca).Column + ccc - 1).Address
108
-
109
- End If
110
-
111
- If ca0 = ca Then GoTo mne
112
-
113
- ca0 = ca
114
-
115
- ca = Range(cc.Address).MergeArea.Address
116
-
117
- Range(ca).Select
118
-
119
-
120
-
121
- ' cc.Select
122
-
123
- g = ActiveSheet.Shapes.AddPicture( _
124
-
125
- Filename:=pkfile(fi), _
126
-
127
- LinkToFile:=False, _
128
-
129
- SaveWithDocument:=True, _
130
-
131
- Left:=Selection.Left, _
132
-
133
- Top:=Selection.Top, _
134
-
135
- Width:=400#, _
136
-
137
- Height:=300#).Name
138
-
139
- '図のサイズを元のサイズに戻します
140
-
141
-
142
-
143
- With ActiveSheet.Shapes(g)
144
-
145
- .ScaleHeight 1!, msoTrue
146
-
147
- .ScaleWidth 1!, msoTrue
148
-
149
- End With
150
-
151
-
152
-
153
- fl = pkfile(fi)
154
-
155
- '右のセルにファイル名を表示
156
-
157
- Cells(Range(ca).Row, Range(ca).Column + 1) = fl
158
-
159
-
160
-
161
- If z = 6 Then セルにサイズを合わせる
162
-
163
- fi = fi + 1
164
-
165
- If fi = UBound(pkfile) + 1 Then GoTo en
166
-
167
- mne:
168
-
169
- Next
170
-
171
- Application.DisplayAlerts = True
172
-
173
- a.Select
174
-
175
- Exit Sub
176
-
177
-
178
-
179
- pc:
180
-
181
- For fi = 1 To UBound(pkfile)
182
-
183
- ca = Cells(rr, sc).Address
184
-
185
- Range(ca).Select
186
-
187
- g = ActiveSheet.Shapes.AddPicture( _
188
-
189
- Filename:=pkfile(fi), _
190
-
191
- LinkToFile:=False, _
192
-
193
- SaveWithDocument:=True, _
194
-
195
- Left:=Selection.Left, _
196
-
197
- Top:=Selection.Top, _
198
-
199
- Width:=400#, _
200
-
201
- Height:=300#).Name
202
-
203
- '図のサイズを元のサイズに戻します
204
-
205
-
206
-
207
- With ActiveSheet.Shapes(g)
208
-
209
- .ScaleHeight 1!, msoTrue
210
-
211
- .ScaleWidth 1!, msoTrue
212
-
213
- End With
214
-
215
-
216
-
217
- fl = pkfile(fi)
218
-
219
- '右のセルにファイル名を表示
220
-
221
- Cells(Range(ca).Row, Range(ca).Column + 1) = fl
222
-
223
-
224
-
225
- If z = 6 Then セルにサイズを合わせる
226
-
227
- rr = rr + 1
228
-
229
- Next fi
230
-
231
- Exit Sub
232
-
233
- en:
234
-
235
- Application.DisplayAlerts = True
236
-
237
- Application.ScreenUpdating = False
238
-
239
-
240
-
241
- a.Select
242
-
243
- Exit Sub
244
-
245
- err: MsgBox "選択が正しくありません", , "複数画像の一括挿入"
246
-
247
- End Sub
248
-
249
-
250
-
251
- Sub セルにサイズを合わせる()
252
-
253
- Dim c As Range, cm As Range
254
-
255
- Dim rX As Single, rY As Single, r As Single
256
-
257
-
258
-
259
- Application.ScreenUpdating = False
260
-
261
- ' For Each c In Selection
262
-
263
-
264
-
265
- ' Set cm = c.MergeArea
266
-
267
- Set cm = Range(ca)
268
-
269
- ' If c.Address = cm.Item(1).Address Then
270
-
271
- ' If Application.Dialogs(xlDialogInsertPicture).Show = False Then Exit Sub
272
-
273
- ActiveSheet.Shapes(g).Select
274
-
275
- With Selection
276
-
277
- rX = cm.Width / .Width
278
-
279
- rY = cm.Height / .Height
280
-
281
- If ok = 0 Then
282
-
283
- If rX < rY Then
284
-
285
- cx = .Width * rX
286
-
287
- cy = .Height * rX
288
-
289
- Else
290
-
291
- cx = .Width * rY
292
-
293
- cy = .Height * rY
294
-
295
- End If
296
-
297
- Else
298
-
299
- cx = cm.Width
300
-
301
- cy = cm.Height
302
-
303
- End If
304
-
305
- .Width = cx
306
-
307
- .Height = cy
308
-
309
- .Left = cm.Left
310
-
311
- .Top = cm.Top + cm.Height - .Height
312
-
313
- If ya = 6 Then 図の圧縮
314
-
315
- End With
316
-
317
- ' End If
318
-
319
- ' Next
320
-
321
- Set cm = Nothing
322
-
323
- Application.ScreenUpdating = True
324
-
325
- End Sub
326
-
327
- Sub 図の圧縮()
328
-
329
- Selection.Cut
330
-
331
- Range(ca).Select
332
-
333
- ActiveSheet.PasteSpecial Format:="図 (JPEG)"
334
-
335
- If l = 6 Then
336
-
337
- ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:=fl
338
-
339
- Else
340
-
341
- Cells(Range(ca).Row, Range(ca).Column + 1) = ""
342
-
343
- End If
344
-
345
- g = Selection.ShapeRange.Name
346
-
347
-
348
-
349
- End Sub
350
-
351
- ------------------------------------------
352
-
353
- 下記、サイトからの引用のようです。
354
-
355
- http://kiyopon.sakura.ne.jp/soft/fukuzu.htm
356
-
357
- (先輩が、作成したものではなかったようです)
358
-
359
- 「エクセルの学校」にもここ引用このコードをそのま貼り付け各自の仕様にする質問しているようです。
23
+ 画像を載せたったのですがまた載せられない状態なっている時間をおいて載せたいと思います。
360
-
361
- なので、私も私仕様にしたいのでご教示願います。

1

引用追記

2015/11/26 23:27

投稿

cat_junko
cat_junko

スコア44

test CHANGED
File without changes
test CHANGED
@@ -349,3 +349,13 @@
349
349
  End Sub
350
350
 
351
351
  ------------------------------------------
352
+
353
+ 下記、サイトからの引用のようです。
354
+
355
+ http://kiyopon.sakura.ne.jp/soft/fukuzu.htm
356
+
357
+ (先輩が、作成したものではなかったようです)
358
+
359
+ 「エクセルの学校」にも、ここからの引用でこのコードをそのまま貼り付け各自の仕様にするために質問しているようです。
360
+
361
+ なので、私も私仕様にしたいのでご教示願います。