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

回答編集履歴

3

コード修正

2020/08/12 07:20

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -43,7 +43,7 @@
43
43
  Dim fromBook As Workbook '貼り付け元ブック
44
44
  Set fromBook = ThisWorkbook 'マクロの記述してあるブック
45
45
 
46
- Dim fromSheet As Range '貼り付け元シート
46
+ Dim fromSheet As Worksheet '貼り付け元シート
47
47
  Set fromSheet = fromBook.ActiveSheet
48
48
 
49
49
  Dim fromRng As Range '貼り付け元セル範囲

2

コード修正

2020/08/12 07:20

投稿

hatena19
hatena19

スコア34367

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 = fromBook.ActiveSheet.Range("A1:O38")
50
+ Set fromRng = fromSheet.Range("A1:O38")
47
51
 
48
- Dim toBook As Workbook '貼り付け先ブック
52
+ Dim newBook As Workbook '貼り付け先ブック=新規ブック
49
- Set toBook = Workbooks.Open("ここは貼り付け先ブックのパスをコピペ")
53
+ Set newBook = Workbooks.Add
50
54
 
51
55
  Dim toRng As Range '貼り付け先セル範囲
52
- Set toRng = toBook.Worksheets(1).Range("C2:Q39")
56
+ Set toRng = newBook.Worksheets(1).Range("C2:Q39")
53
57
 
54
58
  toRng.Value = fromRng.Value
55
59
 
56
- toBook.Save '上書き保存
60
+ Dim NewBookName As String
61
+ NewBookName = fromSheet.Range("請求書番号のあるセル") & ".xlsx"
62
+
57
- ' toBook.SaveAs Filename:="ここは変更後のパスをコピペ" 'ブックの名前を変更する場合
63
+ newBook.SaveAs FileName:="ここは格納先のパスをコピペ" & NewBookName
58
- toBook.Close
64
+ newBook.Close
59
65
 
60
66
  End Sub
61
- ```
67
+ ```
68
+
69
+ 変数名は意味の分かるものにするとコードが読みやすくなると思います。

1

コード追記

2020/08/11 19:25

投稿

hatena19
hatena19

スコア34367

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
+ ```