• ベストアンサー

特定のセルに文字が入力されているページの印刷VBA

HohoPapaの回答

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.3

(1)については、 印刷するページ群が縦方向にのみ並んでいるのであれば、 作業列としてZ列を使う前提で こんなコードになるんじゃないかと思います。 (2)はすでにNo.2で掲示されたコードでいいんじゃないかと思います。 (どこが期待と異なるのかがわかりません) Sub Sample1()    Dim C As HPageBreak  Dim PageNum As Long  Dim RowCounter As Long  Dim PSLine As Long  Dim PELine As Long  Dim PrinPage As Long  Dim PrinSW As Boolean    Const wkCol = 26 '作業列Z    '作業列クリアー  ActiveSheet.Columns(wkCol).ClearContents    '印刷範囲開始行、終了行を取得  With Range(ActiveSheet.PageSetup.PrintArea)   PSLine = .Rows.Row   PELine = PSLine + .Rows.Count - 1  End With    '作業列、ページ末行にページ番号を格納  PageNum = 0  For Each C In ActiveSheet.HPageBreaks   PageNum = PageNum + 1   ActiveSheet.Cells(C.Location.Row - 1, wkCol).Value = PageNum  Next C  ActiveSheet.Cells(PELine, wkCol).Value = PageNum + 1  '印刷対象か?を判断して印刷  PrinSW = False  With ActiveSheet   For RowCounter = PSLine To PELine    'B列orE列がNull以外?    If ((.Cells(RowCounter, 2).Value <> "") Or _      (.Cells(RowCounter, 5).Value <> "")) Then     PrinSW = True    End If    PrinPage = Val(.Cells(RowCounter, wkCol).Value)    If ((PrinSW = True) And _      (PrinPage <> 0)) Then     PrinSW = False     .PrintOut from:=PrinPage, To:=PrinPage    End If   Next RowCounter  End With End Sub

noname#247334
質問者

お礼

ありがとうございます。 私が求めたVBAでした。

関連するQ&A

  • 印刷VBAでご教示下さい

    一つのデータ入力欄(行)を A列~H列 までとして A5A6と新しいデータを入力していますが、 データ量が多くなって印刷すると、全てが印刷されるため、必要なページ印刷を一度プレビューで 確認して範囲設定して印刷しています。 非常に手を取りますので、あるセルに入力した数字のセルをクリックすれば、入力した数字の ページのみ印刷するようなはVBA出来ないでしょうか?。 どなたか、よろしくお願いいたします。 VBAの記録と実行程度の初心者です。

  • エクセルのマクロで入力文字を一文字ずつ並んだセルに入れる

    エクセルマクロ超初心者です。 エクセルVBAでユーザーフォームを作成しました。 テキストボックスに入力した文字列を「登録」ボタン押下後、エクセルシートのセルに一文字づつ入るようにするにはどうすれば良いでしょうか? 例えばテキストボックスに「kohiro」と入力するとエクセルのsheet1のA1「k」、B1「o」、C1「h」、D1「i」、E1「r」、F1「o」となるようにしたいのです。入力する文字数は0~30文字までで、その都度長さは変わります。どうやって、文字をばらせばいいのか、またどうやって可変長の文字列を指定したセルに入力すればいいのかわかりません。どうかよろしくお願いいたします。

  • 別のシートに特定の文字だけ転送する計算式やVBA

    エクセルファイルのシート「No.1」のセルA1~A30に氏名が入力されて、セルB1~E30に氏名に振り分けられた文字が入力されています。 この文字には不定期にXとTの文字が入力されています。 そして、このシートに入力された氏名の順番や文字は毎月変更されます。 同じエクセルファイルのシート「No.2」のA1~A30には順番が変更されない氏名が入力されて、B1~E30は文字が何も入力されていない空白の状態です。 コマンドボタンを押すとシート「No.1」のA1~A30に入力された氏名に該当するB1~E30のXとTのみ抽出して、シート「No.2」のB1~E30にXとTの文字のみを張り付けるVBAやセルに入力する計算式はどの様に行えば良いでしょうか?

  • セルに入力したら、別の特定セルに文字表示させるには

    似たようなQ&Aはあったのですが、求めているものとは少し違うので質問させていただきます。 エクセルで、指定したセルに数値を入力したら、 別シートの特定セルに特定文字列を表示させる ということはできませんか。 例えば、sheet1のセルB3に「2」と入力したら sheet2のセルB5に「●」と表示 次に、sheet1のセルB4に「6」と入力したら sheet2のセルD11に「●」と表示 次に、sheet1のセルC3に「4」と入力したら sheet2のB9に「○」と表示           のようなかたちです。 sheet1の入力範囲は、B3:I85程度 sheet2の入力範囲は、B3:FZ170程度で、特定セルは重複しない 表示されるのは、「●」「○」などの文字列 です。 途中経過として、MATCH関数、ADDRESS関数を利用して sheet1のセルに数値入力をしたら sheet2の入力すべきセル番地を求めることまではできたのですが その求めたセルがすべて異なるので、それぞれのセルに移動させて 文字列を表示させることができずに困っています。 解決法をご存知の方、どうぞよろしくお願いいたします。

  • 【VBA】数値を入力して特定のセルを転記・印刷する

    VBA初心者です。よろしくお願いします。 データの転記について伺います。 名簿シートに入力された情報を申請書シートに転記し、さらに印刷したいのですが このとき転記する範囲をセルに直接入力して指定することはできますでしょうか。 イメージとしては以下のような感じです。 「No2からNo4の人の氏名、住所、備考を転記したい」 【名簿シート】   A  B   C   D   E   ____________________ 1│No 氏名  住所  性別  備考 2│1  鈴木  東京  男性  継続契約 3│2  田中  大阪  女性  電話無 4│3  荻   愛知  男性  眼鏡有 5│4  矢作  青森  男性  眼鏡有 ・ ・ ・ 【申請書シート】 ○○様 以下のとおり申請します。  ──────────── │氏名 │住所 │備考  │  ──────────── │田中 │大阪 │電話無 │  ──────────── │荻  │愛知 │眼鏡有 │  ──────────── │矢作 │青森 │眼鏡有 │  ──────────── 【印刷範囲指定シート】 Noを入力して指定  ───     ─── │ 2 │ - │ 4 │  ───     ───                 ──                 │印刷│                 ──           ※マクロボタン↑   ※これを押すと指定範囲が印刷される アドバイスよろしくお願いします。

  • 特定の文字を除くVBA

    特定の文字を除くためのVBAについて質問させてください。 あるマクロを実行したときに、インプットボックスを表示させ、 特定の文字や数字を入力します。そして、H列に入力した文字や数字を含まない行にある処理を行いたいと思います。 以下のようにVBAを入力してみたのですが、インプットボックスに入力した文字をうまく除外してくれません。一体どういった書き方が正しいのでしょうか~?! ご教授いただけるととても助かります! よろしくお願いいたします。 message = InputBox("文字を入力して下さい") If Not Cells(行, H).Value Like "*" & message & "*" Then 処理

  • ExcelのVBAにてキーになるものを入力すると、その関連データを振り分ける

    2つのシートがあり、sheet2に振分けるデータ(下表)を作成しておきます。   (列)  1   2   3  (行)   1     A   B   C  2     ○   △   ×  3     ア   イ    ウ (1)sheet1にコンボボックスにてAを入力する。AはセルA1(固定)に、BはセルC3(固定)に、Cは、セルE5にそれぞれ決められたセルにコピーされる。 (2)sheet1にコンボボックスにて○を入力する。○はセルA1(固定)に、△は、セルC3(固定)に、×は、セル(E5)にそれぞれ決められたセルにコピーされる。 (1)と(2)のコピーされる場所は、同じ場所です。 というようなものをExcelのVBAにて作成したいのですが、VBAは、あまりよくわかりません。 宜しくお願い致します。

  • エクセルで、セルに入力された文字を別なシートで数字

    エクセルで、セルに入力された文字を別なシートで数字で表すにはどうしたらいいのですか? いま、会社でエクセルVBAを使って表を作っています。 そこで、例えば、 Sheet2で、セルA1に○○会社 ~、セルA2に△△会社と入力したら、 Sheet1で、数字で、2 と表すには、どういう風に作ればいいのでしょうか?

  • VBA:各ページの先頭セルを選択するコマンドを教えてください

    VBA:各ページの先頭セルを選択するコマンドを教えてください --Page 1------ A列 | B列 1 | 4 2 | 5 3 | 6 --Page 2------ 7 | 11 8 | 12 9 | 13 10 | 14 --Page 3------ ... 元は印刷用に作ったこのような表があります。A列だけにして、数字順にずらっと並べ替えたいと思っています。 各ページの行数はバラバラで、規則性がありません。実際に入力されているデータは連番ではなく任意の文字列(ページごとにタイトルなどもなく規則性もありません)です。 作ろうとしているマクロは、各ページの末尾にそのページで使われている行数分だけ行挿入→そのページのB列をカット&ペーストでA列のお尻に付けるというものです。 各ページの先頭セル/末尾セルを指定するコマンドがわかれば実現できると思うのですが調べても見つけられませんでした。 (ページ関連となると印刷系ばかりで、、) 恐れ入りますが、お教えいただけますでしょうか。

  • 特定のセルに文字入力すると左端に「・」を自動表記

    エクセル2003を使用しています。 セル”E3~E128”と”I3~I128”の範囲で何か文字を入力すると、入力した文字の左端に自動で「・」を付けるVBAは、どの様にすれば良いのでしょうか。 例としてセルE3に「2015年」と文字を入力すると自動で「・2015年」と表記される感じです。