質問編集履歴

2

間違い箇所削除

2020/09/26 01:43

投稿

stinky
stinky

スコア2

test CHANGED
File without changes
test CHANGED
@@ -4,62 +4,24 @@
4
4
 
5
5
  ### 前提
6
6
 
7
- 仕様として、2つブックを用意し、1つは入力フォームと印刷用ブック、2つ目はデータ蓄積のみのデータベースブック。
7
+ 仕様として、2つブックを用意し、1つは入力フォーム、2つ目はデータ蓄積のみのデータベースブック。
8
-
9
- 入力フォームブックは、複数人での利用のため、人数分用意(コピー)し、それぞれの入力フォームブックから1つのデータシートブックにデータを蓄積していきます。
10
8
 
11
9
 
12
10
 
13
11
  利用手順
14
12
 
15
- ・入力フォームブックのフォーム(VBA/UserForm)にて必要項目を入力。
16
-
17
- ・入力フォーム上のコマンドボタン「転記1」にて、入力フォームブックのシートの各セルに転記。
18
-
19
13
  ・セルに転記された内容を、コマンドボタン「転記2」にて、別ブックのデータベースブックに入力される。
20
14
 
21
- ・セルに転記された内容はプリントアウトします。
15
+
22
-
23
-
24
-
25
- 【入力フォーム】
26
-
27
- ![イメージ説明](11cbb7a56c736da2f2c37ae185ac707b.jpeg)
28
-
29
- ↓転記1をクリックすると各セルに転記する↓
30
-
31
- 【印刷フォーム】
32
-
33
- ![イメージ説明](a8a1b3c96f49294793148c0f037383a7.jpeg)
34
16
 
35
17
  ### 発生している問題・実現したいこと
36
18
 
37
- 1.印刷時に1ページに記載される明細は現状10行分(セル17~26行)ですが、11行以上に増えた場合のVB入力フォーム及び、シートの体裁の良い方法はないか。
38
-
39
- 11行以上に増えた分印刷ページを2ページ、3ページと増やしたい。(10行以下は1ページ)
40
-
41
- (検討してること)VB入力フォームは基本10行だが、11行以上になる場合VB、マクロなどで適宜テキストボックスを増やすか、10行目まで入力すると自動で11行目以降が増える仕様にできるのか、もしくは前もって11行目以降分のテキストボックスを用意しておくのか。
42
-
43
-
44
-
45
- 2.シートの体裁で適切な方法はあるでしょうか。(ページ設定は2~15行をタイトル設定しています。)
19
+ 1.シートの体裁で適切な方法はあるでしょうか。
46
20
 
47
21
  (模索中)前もって11行目以降分のセルを用意すると、罫線の関係で、11行目以降が無くても印刷時に2ページ以降罫線が印刷されてしまう。
48
22
 
49
23
 
50
24
 
51
- 3.11行以降が増えた場合の転記1.2が成功しますと以下コードも変更が必要になると思いますが、どのようなコードが適切でしょうか。
52
-
53
- ※下記コード参照
54
-
55
- For Each r In ThisWorkbook.Worksheets("入力フォーム").Range("B17:B26")
56
-
57
- If r.Value = "" Then Exit For
58
-
59
-
60
-
61
-
62
-
63
25
  ### 別ブックへ転記のソースコード
64
26
 
65
27
 
@@ -86,11 +48,11 @@
86
48
 
87
49
  myPath = "\共有サーバ\〇〇\〇〇\〇〇\"
88
50
 
89
- fn = "データシート.xlsm"
51
+ fn = "データ.xlsm"
90
-
91
-
92
-
52
+
53
+
54
+
93
- 'fn(データシート)が開いていたら閉じる
55
+ 'fn(シート)が開いていたら閉じる
94
56
 
95
57
  On Error Resume Next
96
58
 
@@ -124,7 +86,7 @@
124
86
 
125
87
  Else
126
88
 
127
- Set ws = wb.Sheets("データシート")
89
+ Set ws = wb.Sheets("データ")
128
90
 
129
91
  wb.Activate
130
92
 
@@ -136,13 +98,13 @@
136
98
 
137
99
  '値の入力されているセル範囲の指定
138
100
 
139
- Set daterange = ThisWorkbook.Worksheets("入力フォーム").Range("B2,K1,K2,K12,L8,L9,L12,L14,B4:C4,C1,C5,C6,C7,C8,C10,C14,C12:E12,B17:V26")
101
+ Set daterange = ThisWorkbook.Worksheets("フォーム").Range("K1,K2,L8,L9,L12,L14,B4:C4")
140
-
141
-
142
-
102
+
103
+
104
+
143
- '必要なフィールドの値を順番に見積データシートへ転記
105
+ '必要なフィールドの値を順番にデータシートへ転記
144
-
106
+
145
- For Each r In ThisWorkbook.Worksheets("入力フォーム").Range("B17:B26")
107
+ For Each r In ThisWorkbook.Worksheets("フォーム").Range("B17:B26")
146
108
 
147
109
  If r.Value = "" Then Exit For
148
110
 
@@ -154,37 +116,27 @@
154
116
 
155
117
  With newrecord
156
118
 
157
- .Value = ThisWorkbook.Worksheets("入力フォーム").Range("K2").Text '通しNo.
119
+ .Value = ThisWorkbook.Worksheets("フォーム").Range("K2").Text 'No.
158
-
120
+
159
- .Offset(0, 1).Value = ThisWorkbook.Worksheets("入力フォーム").Range("B2").Value '入力日
121
+ .Offset(0, 1).Value = ThisWorkbook.Worksheets("フォーム").Range("B2").Value '入力日
160
-
122
+
161
- .Offset(0, 2).Value = ThisWorkbook.Worksheets("入力フォーム").Range("K12").Value '有効期限
123
+ .Offset(0, 2).Value = ThisWorkbook.Worksheets("フォーム").Range("K12").Value '期限
162
-
163
- .Offset(0, 3).Value = ThisWorkbook.Worksheets("入力フォーム").Range("L8").Value '担当コード
124
+
164
-
165
- .Offset(0, 4).Value = ThisWorkbook.Worksheets("入力フォーム").Range("L9").Value '番号
125
+ .Offset(0, 4).Value = ThisWorkbook.Worksheets("フォーム").Range("L9").Value '番号
166
-
167
- .Offset(0, 5).Value = ThisWorkbook.Worksheets("入力フォーム").Range("K1").Value 'コード
126
+
168
-
169
- .Offset(0, 6).Value = ThisWorkbook.Worksheets("入力フォーム").Range("B4:C4").Value '名
127
+ .Offset(0, 6).Value = ThisWorkbook.Worksheets("フォーム").Range("B4:C4").Value '名
170
-
171
- .Offset(0, 7).Value = ThisWorkbook.Worksheets("入力フォーム").Range("C5").Value '担当
128
+
172
-
173
- .Offset(0, 8).Value = ThisWorkbook.Worksheets("入力フォーム").Range("C6").Value 'サブ担当
174
-
175
- .Offset(0, 9).Value = ThisWorkbook.Worksheets("入力フォーム").Range("C7").Value 'TEL
129
+ .Offset(0, 9).Value = ThisWorkbook.Worksheets("フォーム").Range("C7").Value 'TEL
176
-
130
+
177
- .Offset(0, 10).Value = ThisWorkbook.Worksheets("入力フォーム").Range("C8").Value 'FAX
131
+ .Offset(0, 10).Value = ThisWorkbook.Worksheets("フォーム").Range("C8").Value 'FAX
178
-
179
- .Offset(0, 32).Value = ThisWorkbook.Worksheets("入力フォーム").Range("L12").Value 'エンドユーザー
132
+
180
-
181
- .Offset(0, 33).Value = ThisWorkbook.Worksheets("入力フォーム").Range("C12:E12").Value '追記
133
+ .Offset(0, 33).Value = ThisWorkbook.Worksheets("フォーム").Range("C12:E12").Value '追記
182
-
134
+
183
- .Offset(0, 34).Value = ThisWorkbook.Worksheets("入力フォーム").Range("C10").Value '納入場所
135
+ .Offset(0, 34).Value = ThisWorkbook.Worksheets("フォーム").Range("C10").Value '場所
184
-
136
+
185
- .Offset(0, 35).Value = ThisWorkbook.Worksheets("入力フォーム").Range("C14").Value '合計金額
137
+ .Offset(0, 35).Value = ThisWorkbook.Worksheets("フォーム").Range("C14").Value '合計金額
186
-
138
+
187
- .Offset(0, 36).Value = ThisWorkbook.Worksheets("入力フォーム").Range("L14").Value 'チェックフラグ
139
+ .Offset(0, 36).Value = ThisWorkbook.Worksheets("フォーム").Range("L14").Value 'チェックフラグ
188
140
 
189
141
  For i = 11 To 30
190
142
 
@@ -244,12 +196,6 @@
244
196
 
245
197
 
246
198
 
247
- これがうまくいきましたら、入力フォーム上の「No.検索」から「通しNo.」をキーにデータベースブックから履歴を呼び出すことを考えています。
248
-
249
- それを踏まえて、行が増えた場合の転記1.2の構築ができるようにしたいです。
250
-
251
-
252
-
253
199
  質問内容に不足不明点があり、分かりづらかったら申し訳ございません。
254
200
 
255
201
  ご教示お願いします。

1

誤字修正

2020/09/26 01:43

投稿

stinky
stinky

スコア2

test CHANGED
File without changes
test CHANGED
@@ -244,7 +244,7 @@
244
244
 
245
245
 
246
246
 
247
- これがうまくいきましたら、入力フォーム上の「通しNo.」から通しNo.をキーにデータベースブックから履歴を呼び出すことを考えています。
247
+ これがうまくいきましたら、入力フォーム上の「No.検索」から通しNo.をキーにデータベースブックから履歴を呼び出すことを考えています。
248
248
 
249
249
  それを踏まえて、行が増えた場合の転記1.2の構築ができるようにしたいです。
250
250