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

回答編集履歴

1

追記

2019/12/14 02:51

投稿

mattuwan
mattuwan

スコア2167

answer CHANGED
@@ -10,4 +10,37 @@
10
10
  シートのコピーをしてるので、どれくらい時間が掛かるか不明ですが、
11
11
  高速化が出来ないでしょうか?
12
12
 
13
- 時間を測ってもらって、みんなで情報を共有できたら幸いかと思います。
13
+ 時間を測ってもらって、みんなで情報を共有できたら幸いかと思います。
14
+
15
+ ```ExcelVBA
16
+ Option Explicit
17
+
18
+ Sub test002()
19
+ Dim v()
20
+
21
+ v = cnvMeageCellToValue(ActiveSheet.Range("A1").CurrentRegion)
22
+
23
+ Stop
24
+ End Sub
25
+
26
+ Function cnvMeageCellToValue(ByRef Rng As Range) As Variant
27
+ Const cnsFlag As String = "<空白>"
28
+ Const cnsBlank As String = ""
29
+
30
+ 'Application.ScreenUpdating = False
31
+
32
+ Rng.Worksheet.Copy
33
+ With Workbooks(Workbooks.Count).Worksheets(1).Range(Rng.Address)
34
+ .Replace cnsBlank, cnsFlag
35
+ .UnMerge
36
+ On Error Resume Next
37
+ .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
38
+ On Error GoTo 0
39
+ .Replace cnsFlag, cnsBlank
40
+ cnvMeageCellToValue = .Value
41
+ .Worksheet.Parent.Close False
42
+ End With
43
+
44
+ 'Application.ScreenUpdating = True
45
+ End Function
46
+ ```