[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『列のデータを別シートに差し込み印刷するには』(とんとん)
sheet1のA〜J列に30行のデータがあります。
そのデータを1列ごとにsheet2の表のB列に反映させながら、列のデータが反映し終えるまで、連続印刷したいのですが、どのようにしたら良いでしょうか?
(sheet2のB列が変更された印刷物が10枚プリントアウトされる、ということです)
よろしくお願いします。
(os windows10)
< 使用 Excel:Excel2019、使用 OS:unknown >
20200327211353の場合
『別シートに、データシートのセルを参照する式を埋め込んでおきます。
例えば、
=INDEX(データ,カウンタ,1)
のような式です。
"データ"とは、予め作成した400件のセル範囲の名前定義。
"カウンタ"も同様の名前で、どこかにデータの番号(1,2,....)を示すセルを設定しておきます。
3つ目の引数は、列番号で〜』
とある、カウンタのセルの設定の仕方、引数が列番号……あたりの理解ができません。
よろしくお願いします
(とんとん) 2021/03/31(水) 08:50
データー =印刷させたい範囲名 1.カウンタのセル ま、何処でもいいですけど。データーと同じシートの、空いている、任意のセル一つ を"カウンタ"と名前を定義します。 VBAコードからこれを操作いたします。← 増やしていく^^; 2.実際に、印刷用シートに表示させるデーターの列番号です。 連番なら[すべての列ならROW関数などで指定するとフイルが使えて便利です ややこしければ直接列番指定でOKですよ。] で γさん、ご提供のコードを実行すればいいですよ。テスト時はプレビュー にして、本番は印刷にすれば宜しいかと。 ^^;。。だと思います。m(__)m (隠居じーさん) 2021/03/31(水) 09:50
シート Sheet1 印刷用情報 A1:J11 範囲名 データX 作業用セル P1 範囲名 カウンタ |[A] |[B]|[C]|[D]|[E]|[F]|[G] |[H]|[I]|[J]|[K]|[L]|[M]|[N]|[O]|[P] [1] |10001|B1 |C1 |D1 |E1 |F1 |10001|H1 |I1 |J1 | | | | | | 11 [2] |10002|B2 |C2 |D2 |E2 |F2 |10002|H2 |I2 |J2 | | | | | | [3] |10003|B3 |C3 |D3 |E3 |F3 |10003|H3 |I3 |J3 | | | | | | [4] |10004|B4 |C4 |D4 |E4 |F4 |10004|H4 |I4 |J4 | | | | | | [5] |10005|B5 |C5 |D5 |E5 |F5 |10005|H5 |I5 |J5 | | | | | | [6] |10006|B6 |C6 |D6 |E6 |F6 |10006|H6 |I6 |J6 | | | | | | [7] |10007|B7 |C7 |D7 |E7 |F7 |10007|H7 |I7 |J7 | | | | | | [8] |10008|B8 |C8 |D8 |E8 |F8 |10008|H8 |I8 |J8 | | | | | | [9] |10009|B9 |C9 |D9 |E9 |F9 |10009|H9 |I9 |J9 | | | | | | [10]|10010|B10|C10|D10|E10|F10|10010|H10|I10|J10| | | | | | [11]|10011|B11|C11|D11|E11|F11|10011|H11|I11|J11| | | | | | [12]| | | | | | | | | | | | | | | |
シート名 Sheet2 (印刷用シート) |[A]|[B] |[C]|[D]|[E] |[F] [1] | | | | | | [2] | |innsatu | | | | [3] | | | | |=INDEX(データX,カウンタ,ROW(A1)) | [4] | | | | |=INDEX(データX,カウンタ,ROW(A2)) | [5] | | | | |=INDEX(データX,カウンタ,ROW(A3)) | [6] | | | | |=INDEX(データX,カウンタ,ROW(A4)) | [7] | | | | |=INDEX(データX,カウンタ,ROW(A5)) | [8] | | | | |=INDEX(データX,カウンタ,ROW(A6)) | [9] | | | | |=INDEX(データX,カウンタ,ROW(A7)) | [10]| | | | |=INDEX(データX,カウンタ,ROW(A8)) | [11]| | | | |=INDEX(データX,カウンタ,ROW(A9)) | [12]| | | | |=INDEX(データX,カウンタ,ROW(A10))| [13]| | | | | | [14]| | | | | | [15]| | | | | |
γさんご提供のコードを環境に合わせて変更 Option Explicit Sub test() Dim k As Long For k = 1 To Range("データX").Rows.Count Range("カウンタ").Value = k Worksheets("Sheet2").PrintPreview Next End Sub な、感じです。m(__)m (隠居じーさん) 2021/03/31(水) 10:15
(隠居じーさん)さん、こんにちは >sheet2のB列が変更された印刷物が10枚プリントアウトされる、ということです Sheet1のA列をSheet2のB列→印刷 Sheet1のB列をSheet2のB列→印刷 ではないのかな? =INDEX(データX,ROW(A1),カウンタ) For k = 1 To 10 だと思うけど・・・? (はまちゃん) 2021/03/31(水) 10:37
こんにちは、はまちゃん さん あ、はい。。。ありがとうございます。そぉかもしれません。 ただ、↑はあくまで、当方でのテスト環境を使用しての、見本 みたいなものでして、とんとん さん、のご要望を、コード化 した、つもりは御座いませんで、相済みません。 使い方のご説明?。。。程度のつもりです。 m(_ _)m (隠居じーさん) 2021/03/31(水) 11:06
データXの部分についてはsheet1の反映させたいA〜J列の2〜30行とした場合(a2:J30)ということですよね。
それを印刷データのあるsheet2、例えばB列3行目以降に差し込むとしたら、sheet2のB3にその関数の式を入れていく、ということですか?
とりあえず、ひとつずつのおたずねです。
よろしくお願いします。
(とんとん) 2021/04/01(木) 05:42
おはようございます ^^ はい!。。。仰せの通りかと。。。m(__)m =INDEX(範囲,行,列) なので =INDEX(データX,カウンタ,1) ← 範囲(a2:J30)の、カウンタ行目、1列目(A列)が交差するセルの値 =INDEX(データX,カウンタ,3) ← 範囲(a2:J30)の、カウンタ行目、3列目(C列)が交差するセルの値 【データーX、カウンタ、はとんとん さんが付けた名前になります。】 とかでもOKっす。 (隠居じーさん) 2021/04/01(木) 07:18
エクセル 範囲、名前定義 VBA 操作に関連する基本項目 レンジオブジェクト 範囲設定方法 ループ とかで、書籍、説明サイトとかでお調べになると より、解りやすいかと。。。私はあほですので =INDEX なんか。。。え。。それなに??;みたいな感じでなぁ〜にも覚えていません。 最近、もの忘れもひどくなったよぉ〜で^^; ただ、むかし、結構、書籍は読んでましたので、都度、調べ方が何となく解る 程度です。。。あ!、脱線してすみません。頑張って下さいね。でわm(__)m
(隠居じーさん) 2021/04/01(木) 07:40
(隠居じーさん)さんの 2021/03/31(水) 10:15の記事ではどこになるのですか?
セルp1に「11」の数値が入っているのは、理由がありますか?
(とんとん) 2021/04/02(金) 07:52
おはようございます。 ^^ このP1の値を手動で、データーXの行の範囲内[超えるとエラーに^^;]で 変えてみて下さい。シート Sheet2 [印刷用]の値が変化するのが解ると思います。 余談 印刷用シートの好きな場所に、データーXの列数分書き込むだけで、コード変更 なしで、様々なフォーマットを作成することが出来、便利かと。^^; γさん、凄いですよね。m(__)m (隠居じーさん) 2021/04/02(金) 09:24
いろいろ教えてくださってありがとうございます。
不思議なことに、理論はちっともわからないのですが、
indexやらrowやら調べたり、色々sheetを工夫して数字を入れて、マクロをあれこれ編集して入れていたりしたら、何とか試作段階ではできるようになりました。
まだ、実際の数字を入れての作動にはなっていないのですが(来週開けてから行います)
(隠居じーさん)さん、(はまちゃん)さん、ありがとうございました。
まだまだ、γさんのすごさはわかりません。。(私がわからなすぎて、です)
(とんとん) 2021/04/03(土) 21:57
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.