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

回答編集履歴

1

追記

2017/05/10 03:14

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -11,4 +11,43 @@
11
11
  ```
12
12
  に書き換えるだけです。
13
13
 
14
- コードの書き方でいろいろ指摘したいところはありますが、とりあえず質問だけに回答です。
14
+ コードの書き方でいろいろ指摘したいところはありますが、とりあえず質問だけに回答です。
15
+
16
+ 追記
17
+ ---
18
+ 前の回答者さんと内容がかぶってしまったので、
19
+ 指摘したいところを追記しておきます。
20
+
21
+ 不必要な変数宣言、不適切な型指定
22
+ 変数名も紛らわしい
23
+ 移動なら、copyではなく cutメソッドを使えば1行で済む
24
+ など、
25
+ これらを考慮したコード例
26
+ ```
27
+ Sub コピペボタン()
28
+ Dim 検索セル As Range
29
+ Dim 対象セル As Range
30
+ Dim 結果 As Variant, 検索社番 As Variant
31
+
32
+ Range("P8") = "" '過去の社番をクリアにする
33
+ Set 検索セル = ActiveCell
34
+
35
+ If 検索セル.Value = "" Then
36
+ MsgBox "対象セルを選択して下さい"
37
+ Exit Sub
38
+ End If
39
+
40
+ 検索社番 = (Left(検索セル.Value, 5)) '後ろ5ケタ社番
41
+ Range("P8").Value = 検索社番 'P8セルに社番表示
42
+ 結果 = Range("P10").Value 'P8セル社番を検索値としてVLOOKUPにて結果表示
43
+
44
+ On Error GoTo myError
45
+ Set 対象セル = Application.InputBox("移動先セルを選択してください", 結果, Type:=8)
46
+
47
+ 検索セル.Cut 対象セル '検索セルの内容を対象セルに移動
48
+
49
+ Exit Sub
50
+ myError:
51
+ MsgBox "実行時エラー" & Err.Number & ":" & vbCrLf & Err.Description
52
+ End Sub
53
+ ```