プロが教えるわが家の防犯対策術!

前回、mike32様にVBAを教えていただいて作成したのですが
どうしてもできないことがあって投稿させていただきました。
下記はmike32様に教えて頂いたVBAを実際に使用する内容に変更したものです。

ブックシート1に【作付調査Data】シート2に【元帳Tamplate】
内容は作付調査Dataを氏名別に元帳Tamplateへ転記するものです。
元帳はA4サイズで印刷するため1ページあたり作付Data11レコード分しか表示できません。
個人のDataが11レコード以内であれば問題ないのですが以上になった場合次ページが必要になります。
元帳は1~7行まではヘッダーとして利用。8行~29行までがDataの内容を転記するイメージです。1~29行を1ページとしています。以降2ページ=30行~59行を繰り返すイメージです。

次ページは1~7行目までは同一人物であればヘッダー的な標記になるためそのまま次ページへ1~7行目を転記し8行目から12レコード以降のデータを転記していく事にしたいのですがなかなかできません。どなたか教えてもらえませんでしょうか。宜しくお願い致します。

Option Explicit

Dim shData As Worksheet
Dim shTemp As Worksheet
Dim dataRow As Long
Dim tempRow As Long
'一人当たりの最大行数
Const MAX_ROW = 100

Sub sbTest()
Dim sNo As String
Dim iKei As Long
Dim iCnt As Long

Set shData = Worksheets("作付調査Data")
Set shTemp = Worksheets("元帳Template")

dataRow = 2 'データシートの開始行
tempRow = 1 'テンプレートシートの開始行

'氏名NOを取得
sNo = shData.Cells(dataRow, 1)

'氏名NOがNULLになるまでループ
Do Until sNo = ""
'ヘッダーの設定 ヘッダー=6
Call sbHeader
iCnt = 6

'氏名NOが変わるまでループ
Do Until shData.Cells(dataRow, 1) <> sNo
With shData
iKei = 0
tempRow = tempRow + 1

'品種Code
shTemp.Cells(tempRow, 1) = .Cells(dataRow, 6)
tempRow = tempRow + 1

'品種名
shTemp.Cells(tempRow, 1) = .Cells(dataRow, 7)
'7月-1
shTemp.Cells(tempRow, 6) = fnTsuki(.Cells(dataRow, 8), iKei)
'7月-2
shTemp.Cells(tempRow, 7) = fnTsuki(.Cells(dataRow, 9), iKei)
'7月-3
shTemp.Cells(tempRow, 8) = fnTsuki(.Cells(dataRow, 10), iKei)
'8月-1
shTemp.Cells(tempRow, 9) = fnTsuki(.Cells(dataRow, 11), iKei)
'8月-2
shTemp.Cells(tempRow, 10) = fnTsuki(.Cells(dataRow, 12), iKei)
'8月-3
shTemp.Cells(tempRow, 11) = fnTsuki(.Cells(dataRow, 13), iKei)
'9月-1
shTemp.Cells(tempRow, 12) = fnTsuki(.Cells(dataRow, 14), iKei)
'9月-2
shTemp.Cells(tempRow, 13) = fnTsuki(.Cells(dataRow, 15), iKei)
'9月-3
shTemp.Cells(tempRow, 14) = fnTsuki(.Cells(dataRow, 16), iKei)
※文字数オーバーの為省略
'5月-1
shTemp.Cells(tempRow, 36) = fnTsuki(.Cells(dataRow, 38), iKei)
'5月-2
shTemp.Cells(tempRow, 37) = fnTsuki(.Cells(dataRow, 39), iKei)
'5月-3
shTemp.Cells(tempRow, 38) = fnTsuki(.Cells(dataRow, 40), iKei)
'6月-1
shTemp.Cells(tempRow, 39) = fnTsuki(.Cells(dataRow, 41), iKei)
'6月-2
shTemp.Cells(tempRow, 40) = fnTsuki(.Cells(dataRow, 42), iKei)
'6月-3
shTemp.Cells(tempRow, 41) = fnTsuki(.Cells(dataRow, 43), iKei)

End With
'計
shTemp.Cells(tempRow, 5) = iKei
tempRow = tempRow
iCnt = iCnt + 2
'次の行へ
dataRow = dataRow + 1
Loop

'一人当たりの最大行数まで
If iCnt < MAX_ROW Then
tempRow = tempRow + (MAX_ROW - iCnt)
End If

'氏名NOをセット
sNo = shData.Cells(dataRow, 1)
Loop

MsgBox "終了"
End Sub

Private Sub sbHeader()
'年度 
shTemp.Cells(tempRow, 1) = shData.Cells(dataRow, 4)
'調査日
With shTemp.Cells(tempRow, 14)
.Value = shData.Cells(dataRow, 5)
.NumberFormatLocal = "m/d"
End With
tempRow = tempRow + 2
'生産者NO
shTemp.Cells(tempRow, 4) = shData.Cells(dataRow, 1)
'氏名
shTemp.Cells(tempRow, 6) = shData.Cells(dataRow, 2)
'支部
shTemp.Cells(tempRow, 13) = shData.Cells(dataRow, 3)
tempRow = tempRow + 3

'固定行(A)
shTemp.Cells(tempRow, 1) = "品種作型名"
shTemp.Cells(tempRow, 5) = "計"
shTemp.Cells(tempRow, 6) = "7月"
shTemp.Cells(tempRow, 9) = "8月"
※文字数オーバーの為省略
shTemp.Cells(tempRow, 36) = "5月"
shTemp.Cells(tempRow, 39) = "6月"
tempRow = tempRow + 1

'固定行(B)
shTemp.Cells(tempRow, 6) = "上"
shTemp.Cells(tempRow, 7) = "中"
shTemp.Cells(tempRow, 8) = "下"
shTemp.Cells(tempRow, 9) = "上"
shTemp.Cells(tempRow, 10) = "中"
shTemp.Cells(tempRow, 11) = "下"
shTemp.Cells(tempRow, 12) = "上"
※文字数オーバーの為省略
shTemp.Cells(tempRow, 39) = "上"
shTemp.Cells(tempRow, 40) = "中"
shTemp.Cells(tempRow, 41) = "下"
End Sub

'各月の数量がゼロのときは空欄にする
Function fnTsuki(kazu As Long, iKei As Long) As Variant
If kazu = 0 Then
fnTsuki = ""
Else
iKei = iKei + kazu
fnTsuki = kazu
End If
End Function

質問者からの補足コメント

  • 以降2ページ=30行~59行を繰り返すイメージです。
    30~58の間違いです。

      補足日時:2018/01/09 14:17
  • HAPPY

    大変遅くなり申し訳ございません。
    データですが年3回の調査があり3回元帳シートを印刷しないといけません。上書き希望です。
    1回目は添付データの元帳tamplate
    2回目は添付データの元帳(12月)
    3回目は添付データの元帳(3月)

    1回目は7月~6月のデータを転記※12月は作付dataの12月-1が上旬 12月-3が中旬 12月-5が下旬
    に転記となります。3月も同じです。

    2回目は11月~6月のデータを転記※7~10月転記なし 3月は作付dataの3月-1が上旬 3月-3が中旬 3月-5が下旬に転記となります。

    3回目は11月~6月のデータを転記※同上 12月は12-1が上旬・・・

    http://www.taiyo-hana2.jp/wp-content/uploads/201 …

    No.7の回答に寄せられた補足コメントです。 補足日時:2018/01/10 15:11
  • うれしい

    【元帳tamplate】【元帳tamplate(12月)】【元帳tamplate(3月)】
    のシートが原紙として利用したいシートになります。
    お忙しい中本当に親身になって相談に乗っていただき誠にありがとうございます。
    宜しくお願い致します。

      補足日時:2018/01/10 15:16
  • うれしい

    ご連絡ありがとうございます。
    ①の回答です 空白です。
    ②の回答です 空白です。
    ※基本、何も取引のない月は空白になります。
    ③の回答です 作付dataシートにあるデータは空白部分を0にしても問題ないのですが、元帳template
    に転記、印刷する際、0表示のまま印刷されると厳しいです。空白にするのはそこに帳票を受け取った人が数字を手書きで書き込むためです。印刷する際にexcelのオプションでゼロ値のセルにゼロ値を表示するのチェックを外せば空白になりますか?
    ④元帳templateのパターンは3パターン(通常7~6月、12月用、3月用)のみで完全固定になります。

    No.8の回答に寄せられた補足コメントです。 補足日時:2018/01/10 16:32
  • HAPPY

    ありがとうございます。
    T1、U1、V1 の3セルを全ての『template』で結合してNo.1001-1のように表示したいです。
    宜しくお願いします。

    No.9の回答に寄せられた補足コメントです。 補足日時:2018/01/10 16:55
  • うれしい

    ④についてです。
    実は1回目は6月に一斉に7~6月の一年分の調査を行い、それを作付調査dataとして入力して入力dataをtemplateに転記し帳票を印刷します。

    2回目は10月に行うのですが、一回目に出力した帳票をもとにその内容に変更がないかの調査です。変更のある個所のみ作付調査dataを修正します。2回目の調査時に12月-2、4、6へ初めてデータがあれば入力します。変更がなければ一回目と全く同じdataになりますが、12月のみ3区切りから6区切りに変更します。そのdataを(元帳12月)として出力したいです。

    3回目は2月に行います。2回目に出力した帳票をもとに調査します内容は一緒で12月の6区切りが3月に変更になるだけです。

    全てのもとになる作付dataは3回の調査で変更がなければ12月と3月の表示形式が6区切りになり細かくなるだけです。
     
    宜しくお願いします。

    No.10の回答に寄せられた補足コメントです。 補足日時:2018/01/10 17:31
  • うれしい

    補足です。
    誤解を招くのでこの文言はカットしてください。『が、12月のみ3区切りから6区切りに変更します。』 『で12月の6区切りが3月に変更になるだけです。』

    2回目の調査時に印刷する際、修正した11月~6月のデータを(元帳12月)に転記し印刷できればOKです。

    3回目の調査時に印刷する際、修正した11月~6月のデータを(元帳3月)に転記し印刷できればOKです。
    宜しくお願いします。

      補足日時:2018/01/10 17:44
  • うれしい

    GooUserラック様
    ご連絡ありがとうございます。
    質問しても宜しいでしょうか?
    ①『元帳』シートは1ページ分(1~29行)の設定でよろしいでしょうか?また『元帳template(列A~AO)』と『元帳(12・3月)A~AF』の列数の違いや列幅の違いがございますが、デフォルトとして『元帳template(列A~AO)』の書式に設定しておき12月印刷時は12月、3月印刷時は3月用templateを『元帳』シートに設定しておけばよろしいということでしょうか? 
    宜しくお願い致します。(*^_^*)

    No.12の回答に寄せられた補足コメントです。 補足日時:2018/01/11 11:10

A 回答 (16件中1~10件)

文字数オーバーになりました。

こちらは後半部です。
--------------------------------------------------------------------------------
'↓↓↓↓↓タイトル行処理↓↓↓↓↓
If Boo_タイトル Then
Lng_先行 = (Lng_仮想頁 - 1) * 29 + 1
'書式コピー
Range(Cells(Lng_先行, 1), Cells(Lng_先行, 41)).Delete Shift:=xlToLeft
Sheets(Str_基本シート).Rows("1:29").Copy
Cells(Lng_先行, 1).Select
ActiveSheet.Paste
'年度
Cells(Lng_先行, 1).Value = .Cells(Lng_元行, 4).Value
'調査日
Cells(Lng_先行, 16).Value = .Cells(Lng_元行, 5).Value
'個人頁
Cells(Lng_先行, 20).Value = "No." & .Cells(Lng_元行, 1).Value & "-" & Lng_個人頁
Lng_先行 = Lng_先行 + 2
'生産者No
Cells(Lng_先行, 4).Value = .Cells(Lng_元行, 1).Value
'氏名
Cells(Lng_先行, 6).Value = .Cells(Lng_元行, 2).Value
'支部
Cells(Lng_先行, 13).Value = .Cells(Lng_元行, 3).Value
Lng_先行 = Lng_先行 + 5
'固定行
Boo_タイトル = False
End If
'↑↑↑↑↑タイトル行処理↑↑↑↑↑
'↓↓↓↓↓データ処理↓↓↓↓↓
'品種Code
Cells(Lng_先行, 1).Value = .Cells(Lng_元行, 6).Value
Lng_先行 = Lng_先行 + 1
'品種名
Cells(Lng_先行, 1).Value = .Cells(Lng_元行, 7).Value
'月
Lng_合計 = 0
Lng_先列 = 6
For Lng_元列 = 8 To 49
'各月の数量が空欄でない時に処理する
If .Cells(Lng_元行, Lng_元列).Value <> "" Then
'各月の数量がゼロのときは空欄にする
If .Cells(Lng_元行, Lng_元列).Value = 0 Then
Var_データ = ""
Else
Var_データ = .Cells(Lng_元行, Lng_元列).Value
Lng_合計 = Lng_合計 + Var_データ
End If
Cells(Lng_先行, Lng_先列).Value = Var_データ
Lng_先列 = Lng_先列 + 1
End If
Next
'計
Cells(Lng_先行, 5) = Lng_合計
'次の行へ
Lng_先行 = Lng_先行 + 1
'↑↑↑↑↑データ処理↑↑↑↑↑
'↓↓↓↓↓最終行処理↓↓↓↓↓
'累計処理(途中行)
If .Cells(Lng_元行, 1).Value <> .Cells(Lng_元行 + 1, 1).Value Then
Lng_累計行 = Lng_仮想頁 * 29
If Lng_個人頁 = 1 Then
For Lng_先列 = 5 To Cells(7, Columns.Count).End(xlToLeft).Column
Cells(Lng_累計行, Lng_先列).Value = Cells(Lng_累計行 - 1, Lng_先列).Value
Next
Else
For Lng_先列 = 5 To Cells(7, Columns.Count).End(xlToLeft).Column
Cells(Lng_累計行, Lng_先列).Value = Cells(Lng_累計行 - 1, Lng_先列).Value + Cells(Lng_累計行 - 29, Lng_先列).Value
Next
End If
End If
'ページ切替処理
If Lng_先行 Mod 29 = 28 Then
'累計処理(最終行)
Lng_累計行 = Lng_仮想頁 * 29
If Lng_個人頁 = 1 Then
For Lng_先列 = 5 To Cells(7, Columns.Count).End(xlToLeft).Column
Cells(Lng_累計行, Lng_先列).Value = Cells(Lng_累計行 - 1, Lng_先列).Value
Next
Else
For Lng_先列 = 5 To Cells(7, Columns.Count).End(xlToLeft).Column
Cells(Lng_累計行, Lng_先列).Value = Cells(Lng_累計行 - 1, Lng_先列).Value + Cells(Lng_累計行 - 29, Lng_先列).Value
Next
End If
Lng_個人頁 = Lng_個人頁 + 1
Lng_仮想頁 = Lng_仮想頁 + 1
Lng_先行 = Lng_先行 + 2
Boo_タイトル = True
End If
'次の行へ
Lng_元行 = Lng_元行 + 1
'↑↑↑↑↑最終行処理↑↑↑↑↑
Loop
End With
Cells(1, 1).Select
MsgBox "終了"
--------------------------------------------------------------------------------
    • good
    • 0
この回答へのお礼

ありがとうございます。ヽ(^。^)ノ
早速試してみます。
再度ご連絡いたします(*^_^*)

お礼日時:2018/01/11 12:08

※この回答は、“締め切られた質問への回答追加”として、2018/01/12 15:12に回答者の方よりご依頼をいただき、教えて!gooによって代理投稿されたものです。


---
No.12 へのお礼について
6月、10月、2月に処理を行ったら「InputBox」にそれぞれの初期値がセットされます。
なお、締め切った後に質問されても簡単には回答できませんので、次回は新たな質問としてあげていただけますか?
    • good
    • 0
この回答へのお礼

GooUserラック様
以前、親身になって対応して頂き有難うございました。
ラック様に教えて頂きましたVBAプログラムですが、
いろいろ各担当の要望等があり変更を少し加えて使用しています。
少しだけいまだに理解できない部分がありご連絡させていただきました。

For Lng_先列 = 5 To Cells(7, Columns.Count).End(xlToLeft).Column
Cells(Lng_累計行, Lng_先列).Value = Cells(Lng_累計行 - 1, Lng_先列).Value
Next
Else
For Lng_先列 = 5 To Cells(7, Columns.Count).End(xlToLeft).Column
Cells(Lng_累計行, Lng_先列).Value = Cells(Lng_累計行 - 1, Lng_先列).Value + Cells(Lng_累計行 - 29, Lng_先列).Value

上記コードの
Cells(Lng_累計行, Lng_先列).Value = Cells(Lng_累計行 - 1, Lng_先列).Value

Cells(Lng_累計行, Lng_先列).Value = Cells(Lng_累計行 - 1, Lng_先列).Value + Cells(Lng_累計行 - 29, Lng_先列).Value
いまだに解読できていません・・・・

さらに最終行付近に記述されている
 Lng_個人頁 = Lng_個人頁 + 1
 Lng_仮想頁 = Lng_仮想頁 + 1
 Lng_先行 = Lng_先行 + 2
 Boo_タイトル = True
上記の
Lng_先行 = Lng_先行 + 2
いろいろ数字を変えても変化がない??

教えて頂けないでしょうか?
宜しくお願いします。

お礼日時:2018/07/27 14:46

文字数オーバーになりました。

こちらは前半部です。
--------------------------------------------------------------------------------
Sub 元帳作成()

Dim Str_基本シート As String
Dim Str_メッセージ As String
Dim Str_規定値 As String
Dim Str_戻値 As String
Dim Boo_有効 As Boolean
Dim Lng_個人頁 As Long
Dim Lng_仮想頁 As Long
Dim Lng_仮想行 As Long
Dim Lng_累計行 As Long
Dim Lng_元行 As Long
Dim Lng_先行 As Long
Dim Day_月 As Date
Dim Lng_元列 As Long
Dim Lng_先列 As Long
Dim Boo_タイトル As Boolean
Dim Var_データ As Variant
Dim Lng_合計 As Long

Str_メッセージ = _
"処理番号を入力してください" & Chr(13) & Chr(13) & _
" 1 : 通常版で処理をする(6月)" & Chr(13) & _
" 2 : 12月版で処理をする(10月)" & Chr(13) & _
" 3 : 3月版で処理をする(2月)" & Chr(13) & Chr(13) & _
"※ 空欄または[キャンセル]ボタンで中止します"
Do
If Month(Date) = 2 Then Str_規定値 = "3"
If Month(Date) = 6 Then Str_規定値 = "1"
If Month(Date) = 10 Then Str_規定値 = "2"
Str_戻値 = InputBox(Prompt:=Str_メッセージ, Default:=Str_規定値)
If Str_戻値 = "" Then Exit Sub
If Str_戻値 = "1" Then Boo_有効 = True
If Str_戻値 = "2" Then Boo_有効 = True
If Str_戻値 = "3" Then Boo_有効 = True
Loop While Boo_有効 = False
With Sheets("作付調査Data")
'データの一次処理(空欄を「1」に変更)
For Lng_元行 = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
For Lng_元列 = 8 To 49
If .Cells(Lng_元行, Lng_元列).Value = "" Then
.Cells(Lng_元行, Lng_元列).Value = 0
End If
Next
Next
Sheets("元帳").Select
Cells.Delete Shift:=xlUp
'データの二次処理(使用しないセルを空欄に変更)
Sheets("作付調査Data").Select
Select Case Str_戻値
Case "1"
Range(Cells(2, 24), Cells(Rows.Count, 24)).ClearContents
Range(Cells(2, 26), Cells(Rows.Count, 26)).ClearContents
Range(Cells(2, 28), Cells(Rows.Count, 28)).ClearContents
Range(Cells(2, 36), Cells(Rows.Count, 36)).ClearContents
Range(Cells(2, 38), Cells(Rows.Count, 38)).ClearContents
Range(Cells(2, 40), Cells(Rows.Count, 40)).ClearContents
Str_基本シート = "元帳Template"
Case "2"
Range(Cells(2, 8), Cells(Rows.Count, 19)).ClearContents
Range(Cells(2, 36), Cells(Rows.Count, 36)).ClearContents
Range(Cells(2, 38), Cells(Rows.Count, 38)).ClearContents
Range(Cells(2, 40), Cells(Rows.Count, 40)).ClearContents
Str_基本シート = "元帳Template (12月)"
Case "3"
Range(Cells(2, 8), Cells(Rows.Count, 19)).ClearContents
Range(Cells(2, 24), Cells(Rows.Count, 24)).ClearContents
Range(Cells(2, 26), Cells(Rows.Count, 26)).ClearContents
Range(Cells(2, 28), Cells(Rows.Count, 28)).ClearContents
Str_基本シート = "元帳Template (3月)"
End Select
Sheets(Str_基本シート).Cells.Copy
Sheets("元帳").Select
Cells.Select
ActiveSheet.Paste
Application.CutCopyMode = False
Lng_元行 = 2
Do While Trim(.Cells(Lng_元行, 1).Value) <> ""
If .Cells(Lng_元行, 1).Value <> .Cells(Lng_元行 - 1, 1).Value Then
Lng_個人頁 = 1
If Boo_タイトル = False Then
Lng_仮想頁 = Lng_仮想頁 + 1
Boo_タイトル = True
End If
End If
--------------------------------------------------------------------------------
    • good
    • 0
この回答へのお礼

GooUserラック様
出来ました~~~(∩˃o˂∩)
ラック様の優しさに感謝いたします。
私の為に、ラック様の貴重なお時間をしかも長時間も割いていただき
誠にありがとうございました。
私は、VBAについて全くの素人でまったく知識が足りませんのでこれから猛勉強です
(´・ω・`;A) アセアセ
今後わからないことがありましたら是非ラック様のご指導を賜りたいと存じます。
本当にありがとうございました。

お礼日時:2018/01/11 12:59

No.12 への補足コメントについて



印刷時の用紙設定が「.Copy」→「.Paste」でコピーできない為『元帳』シートの用紙設定だけはしておいてください。
あとは自動で「元帳template」などの書式がコピーされますので他の書式設定などは一切不要です。
    • good
    • 0

今コードは作成中なのでもう少しお待ちください。

以下の処理もお願いします。

※「元帳」シートの余白や用紙などの紙の設定だけは事前に行っておいてください。
(「元帳tamplate」をシートコピーした物を、セルを全て削除した方が早いかもしれません)

※「元帳tamplate」などの原紙になるシートは下図を参考に以下のようにしてください。
黄色の部分:文字を書式などを含めて残してください。
水色の部分:計算式を書式などを含めて残してください。
無色の部分:書式などを残してクリアしてください。

※ テストをすると、使わないデータ列をクリアしてしまうので「作付調査Data」シートをコピーしてどこかに保管しておいてください。
「ExcelVBAで困っています」の回答画像12
この回答への補足あり
    • good
    • 0
この回答へのお礼

GooUserラック
おはようございます。
ちょこっとだけ気になった部分があるので質問ですが宜しいでしょうか?
【NO.11】
6月に処理を行ったら「元帳Template」使った処理を行います。
10月に処理を行ったら「元帳Template (12月)」使った処理を行います。
2月に処理を行ったら「元帳Template (3月)」使った処理を行います。
その他の月に処理を行ったら、選択できるようにします。(テストとしても使えます)
最後の行
その他の月に処理を行ったら、選択できるようにします。(テストとしても使えます)
とはどのような処理のことでしょうか?差支えなければ教えて頂けないでしょうか。
宜しくお願い致します。

お礼日時:2018/01/12 14:50

6月に処理を行ったら「元帳Template」使った処理を行います。


10月に処理を行ったら「元帳Template (12月)」使った処理を行います。
2月に処理を行ったら「元帳Template (3月)」使った処理を行います。
その他の月に処理を行ったら、選択できるようにします。(テストとしても使えます)

なお事前に次の処理を行っておいてください。

まず「元帳tamplate」の3つのシートで次の処理を行ってください。
① 30行以降を削除してください。
② 8~27行と29行目をクリア(削除ではありません)してください。
③ 印刷プレビューで1~29行目が印刷範囲にピッタリおさまっているか?確認してください。(30行目以降が同じ印刷範囲に入っているとどんどんずれていきます)

次に「元帳」という空のシートを追加してください。
これが印刷用のシートになります。
1シート作成ごと印刷も考えましたが、処理中にプリンターのエラーなどが有ると再開が難しいのでやめました。
    • good
    • 0
この回答へのお礼

GooUserラック様
おはようございます。
遅くまでありがとうございます。
①~③および元帳シート作成いたしました。
次はどのようにしたらよろしいでしょうか。
ご指示お願いいたします。

お礼日時:2018/01/11 09:12

No.8への補足コメントについて



③ 元々印刷シートの方は「0」を全て空欄に変更する仕様でしたよね?そこは変わりません。
④ ではこの処理をした月によって以下のように処理しても問題ないですよね?
処理月が6月~11月は通常版、処理月が12月~2月は12月版、処理月が3月~5月は3月版を使う事でよろしいですか?
この回答への補足あり
    • good
    • 0

これは提案ですが、生産者ごとのページ番号をどこかに書き込んだ方が良いと思うのですが…


例えば「元帳tamplate」は AA1~AO1 をセル結合「元帳(12月)」と「元帳(3月)」は AA1~AF1 をセル結合して、そこに「No.1001-1」のように書き込んだら良いかと(書式設定は右詰めでフォントの下線ありにされると良いかと)
なお結合するセルの一番左は同じセルにしてください。
この回答への補足あり
    • good
    • 0

取り出す月によって取り出すデータの位置が変わってしまうのですね?


それでループ処理をしないで1件ずつ処理していたわけなんですね?

以下確認願います。
① 1回目は作付dataの「12月-2」「12月-4」「12月-6」「3月-2」「3月-4」「3月-6」の欄には何も入っていないのでしょうか?それとも「0」が入っているのでしょうか?
② 取引が無い月の作付dataのデータには何も入っていないのでしょうか?それとも「0」が入っているのでしょうか?
③ 作付dataの印刷に使わないデータの欄を空欄、使うデータの欄は空欄が有ったら「0」に変更してしまっても良いですか?(こうする事によってプログラムを共通にすることが出来ます)
④ それぞれ作成する月は決まっていますか?(これが決まっていればどのパターンで元帳を作成するかを考えないで済むようになります)
この回答への補足あり
    • good
    • 0

ファイル確認しましたが、出来れば12月と3月を追加し、小計と合計を追加した物をのせていただいた方が確認しやすいのですが、「作付調査

Data」シートも「元帳Template」シートも横に6セル増えて、「元帳Template」シートは28行目を小計、29行目を合計にしたもので良いのでしょうか?
この回答への補足あり
    • good
    • 1
この回答へのお礼

連絡が遅れて申し訳ありません。昼食中でした・・・
了解しました。至急作成してデータ送ります。
しばらくお待ちください(*^_^*)

お礼日時:2018/01/10 13:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!