[[20210331070647]] 『列のデータを別シートに差し込み印刷するには』(とんとん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『列のデータを別シートに差し込み印刷するには』(とんとん)

sheet1のA〜J列に30行のデータがあります。
そのデータを1列ごとにsheet2の表のB列に反映させながら、列のデータが反映し終えるまで、連続印刷したいのですが、どのようにしたら良いでしょうか?
(sheet2のB列が変更された印刷物が10枚プリントアウトされる、ということです)
よろしくお願いします。
(os windows10)

< 使用 Excel:Excel2019、使用 OS:unknown >


[[20200327211353]]
が、とても、参考になると思います。^^v
(隠居じーさん) 2021/03/31(水) 08:17

すみません、初心者なので行と列が入れ替わると具体的に理解しにくいのと、

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

初心者なので、本当に申し訳ありません。
まず、関数の
=INDEX(データX,ROW(A1),カウンタ)とか
=INDEX(データX,カウンタ,ROW(A1))ですが

データ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


たびたび すみません。
index関数について調べてみました。
範囲、と列の部分についてはわかりました。行のところが「カウンタ」とのことですが、
カウンタ、ということの意味がよくわかりません。

(隠居じーさん)さんの 2021/03/31(水) 10:15の記事ではどこになるのですか?
セルp1に「11」の数値が入っているのは、理由がありますか?
(とんとん) 2021/04/02(金) 07:52


>>セルp1に「11」の数値が入っているのは、理由がありますか?
はい
セルP1のお名前[名前定義]が。。。カウンタ です。
11はマクロが最後に処理した、範囲名、データX の 行番号です。
(隠居じーさん) 2021/04/02(金) 08:37

 おはようございます。 ^^
この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.