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

回答編集履歴

1

コメント追記とアドレスの取得処理変更

2021/03/15 14:14

投稿

xail2222
xail2222

スコア1525

answer CHANGED
@@ -5,13 +5,25 @@
5
5
  Dim tR2 As Long
6
6
  Dim tC1 As Long
7
7
  Dim tC2 As Long
8
+ 'Dim tAddress As String
8
- Dim tAddress As String
9
+ Dim tAddress1 As String
10
+ Dim tAddress2 As String
11
+
12
+ ' rSheet1のUsedRangeとrSheet2のUsedRangeの両方を含む範囲を求める
9
13
  tR1 = WorksheetFunction.Min(rSheet1.UsedRange.Row, rSheet2.UsedRange.Row)
10
14
  tR2 = WorksheetFunction.Max(rSheet1.UsedRange.Row + rSheet1.UsedRange.Rows.Count - 1, rSheet2.UsedRange.Row + rSheet2.UsedRange.Rows.Count - 1)
11
15
  tC1 = WorksheetFunction.Min(rSheet1.UsedRange.Column, rSheet2.UsedRange.Column)
12
16
  tC2 = WorksheetFunction.Max(rSheet1.UsedRange.Column + rSheet1.UsedRange.Columns.Count - 1, rSheet2.UsedRange.Column + rSheet2.UsedRange.Columns.Count - 1)
17
+
13
- tAddress = rSheet1.Range(rSheet1.Cells(tR1, tC1), rSheet1.Cells(tR2, tC2)).Address
18
+ 'tAddress = rSheet1.Range(rSheet1.Cells(tR1, tC1), rSheet1.Cells(tR2, tC2)).Address
14
- MyEXACT = Evaluate("AND(EXACT([" & rSheet1.Parent.Name & "]" & rSheet1.Name & "!" & tAddress & ",[" & rSheet2.Parent.Name & "]" & rSheet2.Name & "!" & tAddress & "))")
19
+ 'MyEXACT = Evaluate("AND(EXACT([" & rSheet1.Parent.Name & "]" & rSheet1.Name & "!" & tAddress & ",[" & rSheet2.Parent.Name & "]" & rSheet2.Name & "!" & tAddress & "))")
20
+ ' 範囲のアドレスを取得
21
+ tAddress1 = rSheet1.Range(rSheet1.Cells(tR1, tC1), rSheet1.Cells(tR2, tC2)).Address(External:=True)
22
+ tAddress2 = rSheet2.Range(rSheet2.Cells(tR1, tC1), rSheet2.Cells(tR2, tC2)).Address(External:=True)
23
+
24
+ ' EXACT実行
25
+ MyEXACT = Evaluate("AND(EXACT(" & tAddress1 & "," & tAddress2 & "))")
15
26
  End Function
16
27
 
17
- ```
28
+ ```
29
+ ※コメント追記とアドレスの取得処理変更