Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5171 / 13646 ツリー ←次へ | 前へ→

【52267】必要ページ数の表示 Hilonov 07/11/4(日) 20:15 質問[未読]
【52269】Re:必要ページ数の表示 ぱっせんじゃー 07/11/4(日) 20:22 発言[未読]
【52271】Re:必要ページ数の表示 Hilonov 07/11/4(日) 20:31 発言[未読]
【52272】Re:必要ページ数の表示 ぱっせんじゃー 07/11/4(日) 20:39 発言[未読]
【52273】Re:必要ページ数の表示 Hilonov 07/11/4(日) 20:50 発言[未読]
【52274】Re:必要ページ数の表示 Hirofumi 07/11/4(日) 21:03 回答[未読]
【52276】Re:必要ページ数の表示 Hirofumi 07/11/4(日) 21:55 回答[未読]
【52277】Re:必要ページ数の表示 Hilonov 07/11/4(日) 22:06 回答[未読]
【52285】Re:必要ページ数の表示 Hilonov 07/11/5(月) 12:33 お礼[未読]

【52267】必要ページ数の表示
質問  Hilonov  - 07/11/4(日) 20:15 -

引用なし
パスワード
   "入力表"シートに入力した行数により、必要なページ数を取得する方法を模索しております。
必要なページ数とは、1ページ目が4行、2ページ目以降が8行入力できるので、この条件により、必要ページ数を計算したいのです。

行数は、

gyousuu = Sheets("入力表").Cells(1, 2).End(xlDown).Row

という風に取得したのですが、ページ数を

pagesuu = (gyousuu + 11) / 8

という風に取得しようとしたら、計算結果が勝手に繰り上がったりしてしまい、思うようにいきません。
どなたか良いアドバイスをいただけたら幸いです。よろしくお願いします。

【52269】Re:必要ページ数の表示
発言  ぱっせんじゃー  - 07/11/4(日) 20:22 -

引用なし
パスワード
   行数がいくらの場合はページ数はいくら、にしたいのか
を提示してください。

【52271】Re:必要ページ数の表示
発言  Hilonov  - 07/11/4(日) 20:31 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
>行数がいくらの場合はページ数はいくら、にしたいのか
>を提示してください。

すみません。
説明がわかりにくかったですね。
1ページ目に4行、2ページ目以降には8行入力できるという様式を使用したいので、
1〜4行なら1ページ
5〜12行なら2ページ
13〜20行なら3ページ
21〜28行なら4ページ・・・

といった感じです。
よろしくお願いします。

【52272】Re:必要ページ数の表示
発言  ぱっせんじゃー  - 07/11/4(日) 20:39 -

引用なし
パスワード
   難しく考えないで5行目からループし、8行ごとに
改ページを挿入するようにしてはいかがでしょう?

改ページの挿入はマクロの自動記録でコードが得ら
れます。

【52273】Re:必要ページ数の表示
発言  Hilonov  - 07/11/4(日) 20:50 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
>難しく考えないで5行目からループし、8行ごとに
>改ページを挿入するようにしてはいかがでしょう?
>
>改ページの挿入はマクロの自動記録でコードが得ら
>れます。

すみません。完全にこちらの説明不足です。

「入力表」シートに入力した内容を他のシートに作成した印刷用の様式にはめ込むプログラムを作りたいのです。
印刷用の様式は複数あり、その様式に「入力表」に入力した内容をそれぞれ自動入力させたいのです。
入力する行数は1のときもあれば、1000を超えるときもあるので、3ページ目以降の様式を2ページ目からコピー&ペーストで自動作成させていこうと思っています。
そのときに必要ページ数からコピー&ペーストの回数を出そうと考えています。

こんな説明でわかっていただけましたかねぇ。
わかりづらくてすみません。

【52274】Re:必要ページ数の表示
回答  Hirofumi  - 07/11/4(日) 21:03 -

引用なし
パスワード
   Option Explicit

Public Sub Sample()
  
  Dim gyousuu As Long
  Dim pagesuu As Long
  Dim strProm As String

  With Worksheets("入力表").Cells(1, 2)
    '行数の取得
    gyousuu = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row + 1
    If gyousuu <= 1 And .Value = "" Then
      strProm = "データが有りません"
      GoTo Wayout
    End If
  End With
  
  pagesuu = -Int(-(gyousuu + (8 - 4)) / 8)
    
  strProm = pagesuu & "ページ" & vbLf & "処理が完了しました "
   
Wayout:

  MsgBox strProm, vbInformation
     
End Sub

【52276】Re:必要ページ数の表示
回答  Hirofumi  - 07/11/4(日) 21:55 -

引用なし
パスワード
     '1ページ目の行と1ページ以外の行の差分を取得行に足して切り上げ計算をすれば善いのですから
  '1ページ目 = 4、1ページ以外 = 8とすると以下でも結果は同じ
'  pagesuu = -Int(-(gyousuu + (8 - 4)) / 8)
  pagesuu = Application.WorksheetFunction.RoundUp((gyousuu + (8 - 4)) / 8, 0)

【52277】Re:必要ページ数の表示
回答  Hilonov  - 07/11/4(日) 22:06 -

引用なし
パスワード
   ▼Hirofumi さん:
早速の回答ありがとうございました。
早速試してみたいと思います。

【52285】Re:必要ページ数の表示
お礼  Hilonov  - 07/11/5(月) 12:33 -

引用なし
パスワード
   ▼Hirofumi さん:
教示いただいたとおり入力したら、思っていたとおりに動作してくれました。
まだまだ初心者ですので、プログラムの内容はよくわかっておりませんが、
これから解読していこうと思っています。
大変参考になりました。ありがとうございました。

5171 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free