回答編集履歴
3
コード修正
answer
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
Dim fromBook As Workbook '貼り付け元ブック
|
44
44
|
Set fromBook = ThisWorkbook 'マクロの記述してあるブック
|
45
45
|
|
46
|
-
Dim fromSheet As
|
46
|
+
Dim fromSheet As Worksheet '貼り付け元シート
|
47
47
|
Set fromSheet = fromBook.ActiveSheet
|
48
48
|
|
49
49
|
Dim fromRng As Range '貼り付け元セル範囲
|
2
コード修正
answer
CHANGED
@@ -33,8 +33,9 @@
|
|
33
33
|
|
34
34
|
上記を考慮してコードを再検討してみてください。
|
35
35
|
|
36
|
+
追記
|
36
37
|
---
|
37
|
-
|
38
|
+
コメントの情報を考慮して
|
38
39
|
コードの一例
|
39
40
|
|
40
41
|
```vba
|
@@ -42,20 +43,27 @@
|
|
42
43
|
Dim fromBook As Workbook '貼り付け元ブック
|
43
44
|
Set fromBook = ThisWorkbook 'マクロの記述してあるブック
|
44
45
|
|
46
|
+
Dim fromSheet As Range '貼り付け元シート
|
47
|
+
Set fromSheet = fromBook.ActiveSheet
|
48
|
+
|
45
49
|
Dim fromRng As Range '貼り付け元セル範囲
|
46
|
-
Set fromRng =
|
50
|
+
Set fromRng = fromSheet.Range("A1:O38")
|
47
51
|
|
48
|
-
Dim
|
52
|
+
Dim newBook As Workbook '貼り付け先ブック=新規ブック
|
49
|
-
Set
|
53
|
+
Set newBook = Workbooks.Add
|
50
54
|
|
51
55
|
Dim toRng As Range '貼り付け先セル範囲
|
52
|
-
Set toRng =
|
56
|
+
Set toRng = newBook.Worksheets(1).Range("C2:Q39")
|
53
57
|
|
54
58
|
toRng.Value = fromRng.Value
|
55
59
|
|
56
|
-
|
60
|
+
Dim NewBookName As String
|
61
|
+
NewBookName = fromSheet.Range("請求書番号のあるセル") & ".xlsx"
|
62
|
+
|
57
|
-
|
63
|
+
newBook.SaveAs FileName:="ここは格納先のパスをコピペ" & NewBookName
|
58
|
-
|
64
|
+
newBook.Close
|
59
65
|
|
60
66
|
End Sub
|
61
|
-
```
|
67
|
+
```
|
68
|
+
|
69
|
+
変数名は意味の分かるものにするとコードが読みやすくなると思います。
|
1
コード追記
answer
CHANGED
@@ -31,4 +31,31 @@
|
|
31
31
|
|
32
32
|
また、この `book1`、この時点でどのブックなのか不明です。
|
33
33
|
|
34
|
-
上記を考慮してコードを再検討してみてください。
|
34
|
+
上記を考慮してコードを再検討してみてください。
|
35
|
+
|
36
|
+
---
|
37
|
+
|
38
|
+
コードの一例
|
39
|
+
|
40
|
+
```vba
|
41
|
+
Sub 名前をつけて()
|
42
|
+
Dim fromBook As Workbook '貼り付け元ブック
|
43
|
+
Set fromBook = ThisWorkbook 'マクロの記述してあるブック
|
44
|
+
|
45
|
+
Dim fromRng As Range '貼り付け元セル範囲
|
46
|
+
Set fromRng = fromBook.ActiveSheet.Range("A1:O38")
|
47
|
+
|
48
|
+
Dim toBook As Workbook '貼り付け先ブック
|
49
|
+
Set toBook = Workbooks.Open("ここは貼り付け先ブックのパスをコピペ")
|
50
|
+
|
51
|
+
Dim toRng As Range '貼り付け先セル範囲
|
52
|
+
Set toRng = toBook.Worksheets(1).Range("C2:Q39")
|
53
|
+
|
54
|
+
toRng.Value = fromRng.Value
|
55
|
+
|
56
|
+
toBook.Save '上書き保存
|
57
|
+
' toBook.SaveAs Filename:="ここは変更後のパスをコピペ" 'ブックの名前を変更する場合
|
58
|
+
toBook.Close
|
59
|
+
|
60
|
+
End Sub
|
61
|
+
```
|