Excel VBA質問箱 IV

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

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


7418 / 13644 ツリー ←次へ | 前へ→

【39269】フォーマット作成 & 改ページ エクセルホーリー 06/6/20(火) 19:52 質問[未読]
【39282】Re:フォーマット作成 & 改ページ ハト 06/6/21(水) 11:43 回答[未読]
【39288】Re:フォーマット作成 & 改ページ エクセルホーリー 06/6/21(水) 14:10 お礼[未読]

【39269】フォーマット作成 & 改ページ
質問  エクセルホーリー  - 06/6/20(火) 19:52 -

引用なし
パスワード
   はじめましてこんばんわ。

今31行でフォーマットを作成して、それ毎に改ページをするプログラムを
作っています。改ページの方は色々調べてできたのですが、フォーマット作成で
For文で繰り返しても同じ箇所に書いているので、セルの進め方が分りません。
行き詰ってしまい質問しにきました。
どなたか教えていただけないでしょうかよろしくお願い致します。

高さ24.5 幅2.00

下記のプログラムで動かしています↓

Sub Macro1() 'フォーマットを作成
For MyBreakCount = 1 To 3
  Range("B2:AF31").Select
  Selection.Borders(xlDiagonalDown).LineStyle = xlNone
  Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  Selection.Borders(xlInsideVertical).LineStyle = xlNone
  Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
  With Selection.Interior
    .ColorIndex = 2
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
  End With
  Range("Y14").Select
  Application.Goto Reference:="Macro1"
Next
End Sub

Sub MyHPBreaksAdd()  '改ページを設定する
MyHPBreaksReset   '現在の改ページクリア
With Worksheets(1)
For MyBreakCount = 1 To 3   '4ページ作る場合
'31行毎の場合
.HPageBreaks.Add Before:=Cells(MyBreakCount * 31 + 1, 1)

'空だとページとして認識しないので数字を入れる
Cells(MyBreakCount * 31 + 1, 1).Value = MyBreakCount + 1 & "ページ"
Next
End With
MyHPBreaksCount  'ページ数を取得して、MsgBoxで表示
End Sub
Sub MyHPBreaksReset() '現在の改ページクリア
With Worksheets(1)
.ResetAllPageBreaks '現在の改ページクリア
For MyBreakCount = 1 To 3
.Cells(MyBreakCount * 31 + 1, 1).Value = "" '数字クリア
Next
End With
End Sub

Sub MyHPBreaksCount()  'ページ数を取得して、MsgBoxで表示
With Worksheets(1)
MyBreaksCount = .HPageBreaks.Count + 1
MsgBox MyBreaksCount
End With
End Sub

【39282】Re:フォーマット作成 & 改ページ
回答  ハト  - 06/6/21(水) 11:43 -

引用なし
パスワード
   こんにちは

▼エクセルホーリー さん:
>はじめましてこんばんわ。
>
>今31行でフォーマットを作成して、それ毎に改ページをするプログラムを
>作っています。改ページの方は色々調べてできたのですが、フォーマット作成で
>For文で繰り返しても同じ箇所に書いているので、セルの進め方が分りません。
>行き詰ってしまい質問しにきました。
>どなたか教えていただけないでしょうかよろしくお願い致します。
>

セルの選択をループで変更するやり方ですが

>Sub Macro1() 'フォーマットを作成
>For MyBreakCount = 1 To 3
>  Range("B2:AF31").Select
   Range(Cells(2 + 31 * (MyBreakCount - 1), "B"), Cells(31 * MyBreakCount, "AF")).Select

のように変更すればループでセル選択範囲が変わるはずです
お試しください

【39288】Re:フォーマット作成 & 改ページ
お礼  エクセルホーリー  - 06/6/21(水) 14:10 -

引用なし
パスワード
   ハトさん こんにちわ

おかげさまで出来ました。

VBAは初めてでしたのでまだ分らない事ばかりで
また質問すると思いますがよろしくお願い致します。

ハトさんが教えてくれた構文を解析して自分の知識に
したいと思います。

本当にありがとうございました。

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