アプリ版:「スタンプのみでお礼する」機能のリリースについて

学級名簿を作っています。
性別で改段しているのですが、最後に空白のページが出てしまいます。
各組は1ページに収まるので組で改ページして、女子の場合は改段しないようにしたいのですが、できるでしょうか?
よろしくお願いいたします。

A 回答 (2件)

もしアクセスの操作だけで可能な問題で、見当はずれの場合は許してください。


エクセルに持ってきて、下記VBAでやれば出来ると思います。縦列順序に2列に印刷すると言うことは、結構プログラムが難しいことのようですが、男女別に振り分けるのは更にプログラムロジックを考える必要がある。
(テストデータ)
組    性別   名前(手抜き、本当は漢字名)
1男m1
1女f1
1女f2
1女f3
1男m2
1女f4
1男m3
1男m4
1男m5
1女f5
1男m6
1女f6
1男m7
1女f7
1女f8
2女f9
2女f10
2女f11
2男m8
2女f12
2男m9
2女f13
2男m10
2女f14
2男m11
3女f15
(結果)
第1ページ
m1f1
m2f2
m3f3
m4f4
m5f5
m6f6
m7f7
f8
第2ページ
m8f9
m9f10
m10f11
m11f12
f13
f14
(コード)VBA
Sub test01()
i = 1
j = 1
k = 1
Dim ws1 As Worksheet
Set ws1 = Worksheets("sheet1")
Dim ws2 As Worksheet
Set ws2 = Worksheets("sheet2")
m = ws1.Cells(1, "A")
'------
p00:
If ws1.Cells(i, "A") = "" Then End
If ws1.Cells(i, "A") > m Then
Range(ws2.Cells(1, 1), ws2.Cells(k, "B")).PrintOut
m = ws1.Cells(i, "A")
Range(ws2.Cells(1, 1), ws2.Cells(k, "B")).ClearContents
j = 1
k = 1
'-----
End If
If ws1.Cells(i, "B") = "男" Then
ws2.Cells(j, "A") = ws1.Cells(i, "C")
j = j + 1
Else
ws2.Cells(k, "B") = ws1.Cells(i, "C")
k = k + 1
End If
i = i + 1
GoTo p00
End Sub
アクセスVBAでやるならCellsが使えないので
1ページ分の、各列(フィールド)数だけの配列を用意して、まず組が変るまで配列にためて、変ったところで配列データを印刷すればできる。だからロジックはほぼそのまま使える。ただMDBのファイルを読む方法を勉強する必要がある(市販本に載ってますが)。
    • good
    • 0
この回答へのお礼

ありがとうございます。
VBAでやるという手もあるかもしれませんが、できれば、デザインのプロパティの設定でできれば助かるんですが。
なお、私の試行錯誤で、性別のヘッダーにこのセクション後改段を設定して、性別の詳細部分には何も設定しなければうまくいきました。
(以前はここに番号・氏名とか見出しを入れていたんですが、それをページヘッダーにもっていき、性別の詳細は高さを0にしました。また、以前は性別のフッターに改段を設定していました。)

お礼日時:2004/03/08 19:13

具体的にレポートに使うグループを説明していただけないと説明できません。



第1グループ 組  (改ページ)
第2グループ 性別  (改段)

でいいのですか?
宜しくお願いします。

この回答への補足

そうです、組と性別でグループ分けをしています。
組で改ページ、性別で改段です。
改段を止めると、最後に空白のページは出ません。
そこで、女子では改段をしなければいいのかと思ったのですが。
印刷イメージは次のようになります。
3年B組
佐々木小次郎  倉木麻衣
宮本武蔵    歌田光
丹下作善    人戸用

補足日時:2004/03/06 18:56
    • good
    • 0

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