2016年5月27日金曜日

エクセルだけで差し込み印刷(3-4)

3-4)  行指定 印刷

これは 3-2 で作った行指定book作成と 3-3 で作った印刷の応用

3-2で作った行指定book をコピーして
印刷指定行B4に変更
book作成部分を Printに変更


マクロファイルはこちら

前へ 次へ
---

Sub book作成34()

'画面のちらつきを防止する
Application.ScreenUpdating = False

'リストワークシートを選択する
Worksheets("リスト").Activate


' 印刷行数の取得
  Dim buf As Long
  buf = Range("B4")

' アクティブセルの設定 A + B4で書き込んだ行数とする
   act = "A" & buf

 
    ' Save Directory の パス設定
    パス = ActiveWorkbook.Path ' カレントパスの取得
    SaveDir = パス & "\" & Format(Date, "yyyymmdd")
    ' カレントパス,日付のフォルダがある場合はフォルダ削除して再度作成
    If Dir(SaveDir, vbDirectory) <> "" Then
        Dim FSO As Object
         Set FSO = CreateObject("Scripting.FileSystemObject")
        FSO.DeleteFolder SaveDir
        Set FSO = Nothing
        MkDir SaveDir
    Else
        MkDir SaveDir
    End If
 
 
   'リストワークシートのセルをアクティブセルにする
   Range(act).Select


   '空欄であれば、プログラムを終了する
   'Trim関数は前後のスペースを消去する
   If Trim(ActiveCell.Value) = "" Then
       MsgBox "その行は存在しません"
       End
   End If


   '非表示セルは対象としない
   If ActiveCell.EntireRow.Hidden = False Then

      'Format1 シートにリストの内容を繁栄される
       With Worksheets("Format1")

       'レコードの先頭セルを選択
       'Format1 D10に リストの A7の内容を移動
         .Range("D10").Value = ActiveCell.Offset(0, 0).Value
        'Format1 D12に リストのA7から指定セルを移動するために 上下方向0, 右方向に1移動
         .Range("D12").Value = ActiveCell.Offset(0, 1).Value
         .Range("F12").Value = ActiveCell.Offset(0, 2).Value
         
         .PrintOut
          Sheets("リスト").Select  ' リストシートをアクティブにする
     
        End With

    End If


End Sub

0 件のコメント:

コメントを投稿

注目の投稿

スーツケースキャスター交換(その一)

スーツケースを買うときは、 どうせ壊れるから安いのでいいやって考えてかったのでけど 思い出がいっぱいで、すごく捨てにくい。 壊れるのはキャスタ―でほかには問題がないのでなおさら。 そして今回、2つのスーツケースのキャスタがほぼ同時に壊れました。 最初は購入した店に問い合...