
No.2ベストアンサー
- 回答日時:
#1です
結合セルですね。。そのままだと、エラーが出てしまうかと、、すみません
Set rg = .Range("B3,B5:B6,B11,B13:B14,B19,B21:B23,B27,B29:B30,B35,B37:B38")
を
Set rg = .Range("B3:C9,B11:C17,B19:C25,B27:C33,B35:C41")
にしてください。
出力に関しては、MergeArea(1, 1)なのでそのままでも実行できますが、
気になれば、(コードを見て結合セルに対してと把握する為)
.Cells(3 + n, 2).MergeArea(1, 1).Value = .Cells(i, 6).Value
などとしておいた方が良いかも知れません。
また、I列の値が文字だと型エラーが発生すると思います。
IsNumeric関数 IsNumeric(値)などで実行前にチェックするのが良いと思います。
ついでに nの値は、出力先が8行づつ移行する変数です。
No.1
- 回答日時:
こんばんは、
どの様に回答すれば良いのかわかりませんが、
掲示の表において、なさりたい事を条件分岐で考えると下記のような流れになると思います。(一例です)
多分このままでも処理できると思いますが、ステップ実行などで処理の流れを確認してください。基本的にベタ書きなので分かると思います。
3行だけなので.value=.valueですが、offsetなどに書き替えても良いかも知れません。
.PrintPreview としていますので即プリントする場合は.PrintOutなどとして場合によっては、他の制御を加えた方が良いかも知れません。
表示のシートで実行されます。With ActiveSheet シートは明示した方が良いと思います。。
Sub a()
Dim i As Long, ii As Long
Dim n As Long: n = 0
Dim rg As Range
With ActiveSheet
Set rg = .Range("B3,B5:B6,B11,B13:B14,B19,B21:B23,B27,B29:B30,B35,B37:B38")
rg.ClearContents
For i = 4 To 6
If .Cells(i, 9).Value <> "" And .Cells(i, 9).Value > 0 Then
For ii = 1 To .Cells(i, 9).Value
If .Cells(3 + n, 2).Value <> "" Or n > 32 Then
.PrintPreview
' .PrintOut
rg.ClearContents
n = 0
.Cells(3 + n, 2).Value = .Cells(i, 6).Value
.Cells(5 + n, 2).Value = .Cells(i, 7).Value
.Cells(6 + n, 2).Value = .Cells(i, 8).Value
Else
.Cells(3 + n, 2).Value = .Cells(i, 6).Value
.Cells(5 + n, 2).Value = .Cells(i, 7).Value
.Cells(6 + n, 2).Value = .Cells(i, 8).Value
End If
If ii < .Cells(i, 9).Value Then n = n + 8
Next
End If
If n <= 32 Then
n = n + 8
Else
n = 0
End If
Next
.PrintPreview
' .PrintOut
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELファイルの複数ダウンロー...
-
ACCESSで設定した帳票の用紙サ...
-
印刷ダイアログを表示させない方法
-
イベントプロシージャ 印刷が...
-
VBAで印刷の成功判定
-
VB.NET+ActiveReports で印刷...
-
2回以上PDFをコピーや印刷がで...
-
VB6上から印刷ダイアログを表示...
-
印刷ダイアログを表示させたくない
-
印刷要求順番と印刷出力順番が...
-
プリンターを指定して印刷するには
-
VBscriptでPDFファイルを直接印...
-
vbaでPDFファイルが印刷されない
-
VBSでExcelファイル印刷時のプ...
-
Eclipseを使ってソースを印刷し...
-
印刷画面が表示されない
-
オートメーションエラー(214741...
-
VBAで印刷スプール終了の判定を...
-
印刷方向縦横変更の設定の仕方...
-
PDFファイルを印刷し終了するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2回以上PDFをコピーや印刷がで...
-
印刷ダイアログを表示させない方法
-
印刷要求順番と印刷出力順番が...
-
印刷ダイアログを表示させたくない
-
プリンターを指定して印刷するには
-
クリレポのプリンタ設定について
-
vbaでPDFファイルが印刷されない
-
VBAで印刷の成功判定
-
PHPでPDFファイルの直接印刷
-
ACCESSで設定した帳票の用紙サ...
-
EXCELファイルの複数ダウンロー...
-
A4の2枚をA3の1枚にする編集方法?
-
オートメーションエラー(214741...
-
VBAで印刷スプール終了の判定を...
-
VBからプリンタに出力する時に...
-
VB2008で0ページの印刷ジョブを...
-
ActiveReportsを使って[印刷ダ...
-
Eclipseを使ってソースを印刷し...
-
Javaから直接プリンターへ印刷...
-
VBAにて指定したセルをプルダウ...
おすすめ情報