advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 103 for フォーマット 自動 印刷 (0.009 sec.)
フォーマット (1423), 自動 (14517), 印刷 (5709)
[[20180709193216]]
#score: 8137
@digest: 072cfad315e8c6f6fbf3dcfbb5291631
@id: 76796
@mdate: 2018-07-11T04:23:09Z
@size: 7506
@type: text/plain
#keywords: 視鏡 (49751), 内視 (49751), 部") (30464), 名用 (21881), 部" (15172), 下部 (13405), 上部 (12892), 刷シ (12013), ト(= (11543), 枚) (11453), 部」 (9485), ト+ (9478), ト印 (7006), 刷") (6866), collate (6767), 果") (5719), 印刷 (5407), copies (4306), printout (3945), ・5 (3183), 」シ (3148), 果」 (3000), 続印 (2908), 用」 (2898), 件分 (2629), 分岐 (2612), ヒン (2399), ト") (2218), パタ (2097), ・3 (1802), シー (1737), h3 (1604)
『条件分岐の印刷マクロについて』(シンゴ)
マクロ初心者ですが、以前の掲示板をみて改良して作成しようとしています。 例えば、H3セルからI3セルまでの部数(5枚)の印刷自動化したいと思っています。 H3セルが1とし、I3セルが5とした場合(5枚)で、1・3・5枚目のときは、I7セルの関数計算結果が、●になるようにしてあります。 しかし、連続して印刷される途中の2・4までもI7セルが、●ではなくても"上部"シート(=●の場合のパターン)が印刷されてしまいます。 もし、1のときのみI7セルの関数計算結果が、●でない場合はにしたら、すべて、"下部"シート(=●でない場合のパターン)が印刷されてしまいます。 本来、1・3・5は、"上部"、2・4は、"下部"がという具合、条件分岐して印刷してほしいのですが・・・? どこが間違っているのででしょうか? Sub 連続印刷() Dim f As Long, t As Long Dim x As Long With Sheets("印刷シート") f = .Range("H3").Value t = .Range("I3").Value If Range("I7").Value = "●" Then For x = f To t Range("H3").Value = x Sheets(Array("上部")).PrintOut Copies:=1, Collate:=True Next Range("AH3").Value = f Else For x = f To t Range("H3").Value = x Sheets(Array("下部")).PrintOut Copies:=1, Collate:=True Next Range("AH3").Value = f End If End With End Sub < 使用 Excel:unknown、使用 OS:unknown > ---- H3、I3が、どんな値のとき、どのシートどう印刷したいのか(ページ数、部数)??? 複数例を挙げて、教えていただけますか ↓これだと、何のことか全く理解できません。 >H3セルが1とし、I3セルが5とした場合(5枚)で、1・3・5枚目のときは、 (マナ) 2018/07/09(月) 21:07 ---- とりあえずインデントの位置が私には見づらかったので付けなおしてみました。 また、説明のため行番号をつけてみました。 01 Sub 連続印刷() 02 Dim f As Long, t As Long 03 Dim x As Long 04 05 With Sheets("印刷シート") 06 f = .Range("H3").Value 07 t = .Range("I3").Value 08 09 If Range("I7").Value = "●" Then 10 For x = f To t 11 Range("H3").Value = x 12 Sheets(Array("上部")).PrintOut Copies:=1, Collate:=True 13 Next 14 Range("AH3").Value = f 15 Else 16 For x = f To t 17 Range("H3").Value = x 18 Sheets(Array("下部")).PrintOut Copies:=1, Collate:=True 19 Next 20 Range("AH3").Value = f 21 End If 21 End With 22 End Sub (もこな2) 2018/07/10(火) 07:52 ---- 気になる箇所として 【01】11(16)行目 「H3」セルはどのシートのことを言いたいのか 【02】12(18)行目 Sheets(Array("上部"))としているが、1シートしかないのでSheets("上部")と同義 【03】12(18)行目 Copies:=1, Collate:=True いずれも規定値なので省略してOK 【04】14(20)行目 「AH3」セルはどのシートのことを言いたいのか というところは手を入れた方がいいんじゃないかと思います。 以下、勝手な予想ですが、 (1)印刷用のフォーマットが「上部」、「下部」の2種類あって、 (2)奇数ページは上部、偶数ページは下部のフォーマット印刷したくて、 (3)さらに、「上部」、「下部」それぞれのH3セルにページ番号を入力するとVLOOKUP関数などで 印刷したい内容が参照される って、なってたりしませんか? もし、上記予想があってれば、こんな感じでも良いと思います。 ※「AH3」セルはどのシートのことを言っているのかわかりませんが、 少なくとも印刷シートのH3セルを見てるだけなので、マクロの中で 操作する必要ないですよね。(なので外しました。) Sub サンプル() Dim 開始 As Long, 終了 As Long Dim i As Long Dim sh As Worksheet With Sheets("印刷シート") 開始 = .Range("H3").Value 終了 = .Range("I3").Value End With For i = 開始 To 終了 Step 1 If i Mod 2 Then Set sh = Worksheets("下部") Else Set sh = Worksheets("上部") End If With sh .Range("H3").Value = i .PrintPreview '.PrintOut '印刷しちゃうと紙がもったいないので印刷プレビューに変更 End With Next i End Sub (もこな2) 2018/07/10(火) 11:14 ---- マナさん・もなこ2さん、有難うごさいます。 もなこ2さんのご指摘が適格ではあったのですが、少し条件を変更させて下さい。 (1)ファイルに準備されているシートとしては、「印刷」シートの他に、印刷対象のシートとして、 「上部」シート、「下部」シート、「内視鏡」シート、「結果」シートの5種類あるとします。 (2)条件に応じて、下記AorBのセットの組み合わせを合計で10セット印刷したいです。 A 「上部」シート + 「内視鏡」シート +「結果」シート B 「下部」シート + 「内視鏡」シート +「結果」シート (3)印刷シート について ・A1〜A10セルまでに、1〜10の数字、B1・B58・B8セルには、●が入力された表があります。 ・H3セルには、"1"、I3セルには、"10"を入力しておきます。(※10セット印刷するため) (4)AorBを印刷する分岐条件 10セット印刷するうちの1・5・8番目(※B1・B5・B8セルを参照し)の印刷が実施される時は、 Bのパターンのセットを印刷、その他の時は、Aのパターンの印刷をしたいと思います。 申し訳ありませんが、上記条件でのVBAの文章は、どのようになるのでしょうか? どなたか、ご教示ください。 (シンゴ) 2018/07/11(水) 00:11 ---- >上記条件でのVBAの文章は、どのようになるのでしょうか? ちょっと意図がわかりませんけど、自分で試行錯誤せず丸投げされるのであれば、私は対応をする気が無いので他の回答者さんをお待ち下さい。 そうじゃなくて、自分でがんばってみたいけど、どこから手を付けていいのかわからないのであれば、以下のヒントが参考になるかもです。 ヒント1:Aパターン、Bパターン どちらも 3つのシートを印刷したくて、 そのうち「内視鏡」シート +「結果」シートは固定されているから、 分岐が必要なのは「上部」なのか「下部」なのかというところだけ。 ヒント2:印刷シートにリストができあがってるのだから、わざわざ開始番号と終了番号を別セルに入力しなくても、 リストの1行目から最終行までを順番に処理すればOK ヒント3:ヒント2を擬似コードにするとこんな感じになりそう マクロはじめ 「行番号用」の変数を宣言する 「シート名用」の変数を宣言する With Worksheets("印刷シート") 「行番号用」の変数に1からA列最終行までの行番号をいれながらループ処理をする 条件分岐 はじめ 「もし、その行のB列が "●" だったら」 「シート名用」に "上部" って入れる そうじゃなかったら 「シート名用」に"下部" 条件分岐 おわり Worksheets(「シート名用」).の"H3"セルに .Cells(行番号, "A").Value を入れる Worksheets(「シート名用」)を印刷する Worksheets("内視鏡")を印刷する Worksheets("結果")を印刷する 次の行へ End With マクロおわり おまけ:ヒント2をもっと突き詰めると、印刷シートのB列に「A」か「B」が入力されているときは、 そのパターンで印刷し、それ以外の時は印刷しないという制御のしかたもできそうですよね (もこな2) 2018/07/11(水) 12:40 ---- Sub main() Dim i As Long For i = Sheets("印刷").Range("H3").Value To Sheets("印刷").Range("I3").Value If Sheets("印刷").Range("B" & i).Value = "●" Then Sheets(Array("下部", "内視鏡", "結果")).PrintOut Else Sheets(Array("上部", "内視鏡", "結果")).PrintOut End If Next i End Sub (mm) 2018/07/11(水) 13:23 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201807/20180709193216.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97059 documents and 608315 words.

訪問者:カウンタValid HTML 4.01 Transitional