回答編集履歴

2

体裁修正

2019/11/18 09:57

投稿

TanakaHiroaki
TanakaHiroaki

スコア1063

test CHANGED
@@ -1,8 +1,6 @@
1
- **<再回答>
1
+ **<再回答>**
2
2
 
3
- **
4
-
5
- 想定されるエラーでキャンセルを判定する方法です
3
+ 想定されるエラーでキャンセルを判定する方法を考えてみました
6
4
 
7
5
  ```VBA
8
6
 
@@ -54,9 +52,11 @@
54
52
 
55
53
 
56
54
 
57
- **<以下回答は、キャンセルボタンでエラーとなり、解決できていませんでした。>
58
55
 
56
+
57
+ **<以下回答は、キャンセルボタンでエラーとなり、解決できていませんでした。>**
58
+
59
- **Inputboxのキャンセルの戻り値はFalseなので、Range型ではエラーとなります。
59
+ Inputboxのキャンセルの戻り値はFalseなので、Range型ではエラーとなります。
60
60
 
61
61
  好みでないかもしれませんが、Variant型とすればキャンセルを判定する方法があります。
62
62
 

1

エラーとなるため再回答

2019/11/18 09:57

投稿

TanakaHiroaki
TanakaHiroaki

スコア1063

test CHANGED
@@ -1,4 +1,62 @@
1
+ **<再回答>
2
+
3
+ **
4
+
5
+ 想定されるエラーでキャンセルを判定する方法です。
6
+
7
+ ```VBA
8
+
9
+ Function コピー関数()
10
+
11
+ Dim input_rg As Range, output_rg As Range
12
+
13
+
14
+
15
+ On Error GoTo myErr
16
+
17
+ Set input_rg = Application.InputBox("コピーするセルを選択してください", Title:="入力フォーム", Type:=8)
18
+
19
+ Set output_rg = Application.InputBox("貼り付け先を選択してください", Title:="出力フォーム", Type:=8)
20
+
21
+ On Error GoTo 0
22
+
23
+
24
+
25
+ 'hatena19さんの回答
26
+
27
+ If input_rg Is Nothing Or output_rg Is Nothing Then
28
+
29
+ Exit Function
30
+
31
+ End If
32
+
33
+ input_rg.Copy Destination:=output_rg
34
+
35
+
36
+
37
+ myErr:
38
+
39
+ If Err.Number = 424 Then
40
+
41
+ MsgBox "キャンセルされました。"
42
+
43
+ Err.Clear
44
+
45
+ Else
46
+
47
+ Err.Raise Err.Number
48
+
49
+ End If
50
+
51
+ End Function
52
+
53
+ ```
54
+
55
+
56
+
57
+ **<以下回答は、キャンセルボタンでエラーとなり、解決できていませんでした。>
58
+
1
- Inputboxのキャンセルの戻り値はFalseなので、Range型ではエラーとなります。
59
+ **Inputboxのキャンセルの戻り値はFalseなので、Range型ではエラーとなります。
2
60
 
3
61
  好みでないかもしれませんが、Variant型とすればキャンセルを判定する方法があります。
4
62