• ベストアンサー

エクセルでデータを指定して印刷したい

●Sheet1に以下のようにデータが入っています。   A B C 1 あ 100 黄 2 い 200 緑 3 う 300 赤 ●Sheet2のセルA1に1を入力すると、 Sheet3に あ 100 黄、 Sheet2のセルA1に3を入力すると、 Sheet3に う 300 赤 と表示するようにしています。 今までは、データも少なく、Sheet2で印刷したいデータを選択し、 Sheet3を印刷していましたが、データが増えた為、Sheet2のA1に1を、 A2に3を入力して、印刷のボタンのようなものを作り、そこをクリック すると、1から3までをSheet3の表示状態で印刷したいのですが… データを全部印刷するなどはいろいろ調べてわかりましたが、 この、範囲指定はかなり調べましたが、わかりません。 どなたか、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

VBAがわかれば簡単なのですが。質問からすれば、関数か何かを使って作業しているようですね。どこまでできるかわかりませんが、一応コードを乗せておきます。これを「標準モジュール」に貼り付けて実行します。必要なら好きなシートにボタンを貼り付けてもできます。 Sub Insatu() Dim i, j, k As Integer Dim AA, BB As Integer Worksheets("sheet3").Activate 'Sheet2のA1,A2のデータをAA,BBに代入 AA = Worksheets("Sheet2").Cells(1, 1).Value BB = Worksheets("Sheet2").Cells(1, 2).Value For i = AA To BB '=====この範囲にsheet1から持ってきたデータをsheet3のどこに表示するかを記入。==== '=====たとえばsheet1の3つのデータを、Sheet3の1行目に表示するなら============== 'ちなみにcells(1,j+1).Valueは1行目j+1列の値という意味です。 'よってシート1のcells(i,j)の値を、シート3のcells(1,j+1)にコピーしています。 For j = 1 To 3 Worksheets("Sheet3").Cells(1, j + 1).Value = Worksheets("Sheet1").Cells(i, j).Value Next j '================================================================================= '印刷処理 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Next i End Sub

ponpa2222
質問者

お礼

皆さんの、回答をもとにいろいろと、やっています。 何とかできそうです!ありがとうございました!!

その他の回答 (3)

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.3

>Sheet2のA1に1を、A2に3を入力して、印刷のボタンのようなものを作り、 ボタンの作り方はわかったのですか?(フォームやオートシェイプにマクロを登録する) >そこをクリックすると、1から3までをSheet3の表示状態で印刷したいのですが… ですが・・・の後がわかりませんよね。 マクロで処理したいけど記述の仕方がわかりません!なのか、マクロを組んだけどデータ1からデータ2への変更の仕方がわからない!なのか。 問題点をはっきりさせた方が解決への早道になります。 >データを全部印刷するなどはいろいろ調べてわかりましたが、 ちなみにどういう方法でなら全部印刷できましたか? それを書いておくと、質問者のスキルを推測してそれに見合った回答が来るかもしれないし、全部印刷の方法をアレンジして答えが出るかも知れません。 困り度が高いのなら、今ある材料はなるべくオープンにした方が、より良い回答に繋がりやすくなります。 2~3日前にも同じ質問をしていますが、せっかくヒントをもらっているのに、お礼も補足もなく閉め切ってしまっては、質問者がどこまで理解できて何が問題として残っているのかすらわかりません。 重複するけど困り度が高いのなら、問題点をはっきりさせた方が解決への早道になります。 今回の質問も、Sheet2で指定したデータをSheet3に表示させることはすでに出来ていて、手動でならその印刷もできるんですよね? ならあとは、Sheet2のA1で指定した数字を次の数字に書き換えてやりそれを印刷する・・・これを繰り返すマクロを組めばいいだけでしょう。 やり方は、エクセルの"マクロの記録"という機能を使えば、ある程度の所まで簡単にできます。 まずSheet2のA1セルとA2セルに数字を手入力して印刷するデータを指定する。 エクセルの"マクロの記録"機能をスタートさせる。 Sheet3を選択して印刷範囲を指定して(必要なら諸設定をして)印刷をする。 印刷が終了したら、Sheet2のA1セルを選択して、"マクロの記録"を終了させる。 これで1データだけ印刷するマクロができます。 このできたマクロを、フォームやオートシェイプで作ったボタンに登録します。 Sheet2のA1セルに次のデータを指示する数字を手入力して、マクロを登録したボタンをマウスでクリックすれば、次のデータが印刷されます。 でもこれではまだ、Sheet2のA1セルに入力してボタンをクリックするという作業が残ってしまいます。 そこで、5行上に書いた作業を少し変更してやり、Sheet2のA1セルの数字が自動で変わるようにしましょう。 やり方はいくつかあるかもしれないけど、たとえばSheet2のB1セルに、A1+1という式を予め入力しておき 印刷が終了したら、Sheet2のB1セルを選択してコピーし、A1セルを選択して値で張り付けて、"マクロの記録"を終了させる。 こうすることによって、一枚印刷が終わるとSheet2のA1セルの値は一つ上がり、Sheet3には次のデータが表示されます。 ここでマクロを登録したボタンをマウスでクリックすれば、次のデータが印刷されSheet2のA1セルの値は更に一つ上がり、Sheet3にはそのデータが表示されます。 これでもまだ、印刷のためにボタンをクリックするという作業が残ってしまいます。 そこで上記で作成したマクロを、VBEで編集して、自動で次のデータまで印刷できるようにしてやります。 ボタンをクリックするだけで、同じマクロが繰り返し動かして目的が達するなら、そのマクロを繰返しを指示する Do・・・・Loop ステートメントで自動的に繰り返してやれば大丈夫です。 上記でボタンに登録したマクロをVBEで編集モードに入り、 Do・・・Loop でくくってやります。 その際にどこまで繰り返すのかを指示しておかないと、延々と動くことになりますので(実際には構文エラーで動かないけどね)、Sheet2のA1セル>Sheet2のA2セル となるまでと指定しましょう(Until) これで、Sheet2のA1セルに入力した値から、A2セルに入力した値まで自動で印刷するマクロができます。 実際にはSheet2のA1セルやA2セルにおかしな値が入力されたら MsgBox で警告するとかもう少しぬ詰める余地はあると思いますが、まず第一弾としてこんな所でどうでしょうか??

ponpa2222
質問者

お礼

皆さんの、回答をもとにいろいろと、やっています。 何とかできそうです!ありがとうございました!!

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Sheet2のセルA1に入れる1とか、A2に入れる3とかは、行番号のことか。それをはっきり言わないと。 FRom-To的に、第A1行から第A2行までをSheet3に持ってくるということかな。 A1<A2は保証されると考えて良いか。 ーーーーー 例データ Sheet1 A2:B8 A列  B列  C列 a x 1 s y 1 d z 1 a u 1 s v f s g t C2の式は =IF(AND(ROW()>=Sheet2!$A$1,ROW()<=Sheet2!$A$2),MAX($C$1:C1)+1,"") と入れて下方向に式を複写する。 ーー Sheet2 A1  2 A2  5 ーー Sheet3 A1に =IF(ROW()>MAX(Sheet1!$C$1:C$100),"",INDEX(Sheet1!$A$1:$BA$100,MATCH(ROW(),Sheet1!$C$1:$C$100,0),1)) と入れて下方向に式を複写。 B1には =IF(ROW()>MAX(Sheet1!$C$1:D$100),"",INDEX(Sheet1!$A$1:$BA$100,MATCH(ROW(),Sheet1!$C$1:$C$100,0),2)) と入れて下方向に式を複写 結果 A1: a x s y d z a u ーー このSheet3を印刷。 ーー 上記は自称imogasi方式。これの特徴などは、Googleで照会すると記事や質問が出てくる。

ponpa2222
質問者

お礼

皆さんの、回答をもとにいろいろと、やっています。 何とかできそうです!ありがとうございました!!

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

Excelではそのようなことはマクロを使用しない限り不可能です 代わりに Wordの差込印刷を利用されてはいかがでしょう Excelのファイルを Wordの差込印刷用のデータとして指定することで解決するような気がします

ponpa2222
質問者

お礼

皆さんの、回答をもとにいろいろと、やっています。 何とかできそうです!ありがとうございました!!

関連するQ&A

  • 印刷の指定

    ●Sheet1に以下のようにデータが入っています。   A B C 1 あ 100 黄 2 い 200 緑 3 う 300 赤 ●Sheet2のセルA1に1を入力すると、 Sheet3に あ 100 黄、 Sheet2のセルA1に3を入力すると、 Sheet3に う 300 赤 と表示するようにしています。 今までは、データも少なく、Sheet2で印刷したいデータを選択し、 Sheet3を印刷していましたが、データが増えた為、Sheet2のA1に1を、 A2に3を入力して、印刷のボタンのようなものを作り、そこをクリック すると、1から3までをSheet3の表示状態で印刷したいのですが… よろしくお願いします。

  • WordでExcelのデータを差込印刷する

    ウインドウズを使っています。 Word2000の差込印刷ヘルパーでExcel2000のワークシート内のセル範囲のデータを差込印刷したいのですが、セルの範囲を手入力して入れると、「現在のタスクを完了するためにMicrosoft Excelに対して再度DDE接続を行うことが出来ませんでした」といわれてしまい先に進めません。 詳細は以下です。 差込印刷ヘルパーの「2.データファイルの指定」でデータファイルを開くを選び Excelのワークシートにして指定のExcelファイルを選択します その後「Microsoft Excel 範囲名またはセルの範囲(N):」と言うダイアログボックスが出てきます そこの項目には既に「ワークシート全体」と言う選択肢が選ばれていますが 差し込みたいワークシート内のセルの範囲を半角で手入力して入れると(A1:F3のように) 上に書きました「現在のタスクを~~」というメッセージが出てセルの範囲を指定できません。 ヘルプを見ても「範囲名または~」の所にはセルの範囲を入力しても大丈夫なようになっていますが出来ません。 また、差し込むタイトルを含むように範囲は入力しています。 私がやりたいのは、Excelワークシート1枚に4つのセル範囲を作り、それをそれぞれ別のWordファイルに差し込みたいのですがそのようなことは出来るのでしょうか。 また、空白のセルがあると出来ないと言うようなことをちらっと聞いたのですが 詳しく知りたいです。 説明が分かっていただけるか不安ですが、 本にも全然載っていなくて本当に困っています。 少しでも分かる方がいましたら教えてください。 よろしくお願いします。

  • エクセルにて指定データをカウントする。

    以下のようなデータがあります。 ○ × = × × = ○ ○ ここにはデータが全部で8個あり、=が2個ありますから これを 2/8と表示させたいと思ってます。 指定した範囲のセルの個数はCOUNTA、指定したデータと一致するものは COUNTIFで数えられると思いますが、これらを A / B という表示形式で表示する方法が分かりません。また、COUNTIFの中で COUNTIF(A1:A8, "×")はうまく動きますが、COUNTIF(A1:A8, "=")はちゃんとカウントしてくれません。よろしくお願いします。

  • エクセルのマクロについて

    エクセルのマクロ初心者です。 マクロを使用して印刷プレビューが見れるようにしたいです。 vlookup関数を使いsheet1に入力し、sheet2,sheet3,sheet4、sheet5へデータを反映させています。 sheet1に入力画面を作成してあり、セルA2~A13に入力すればsheet2へ、セルA17~A28はsheet3へ、セルF2~F13はsheet4へ、セルF17~F28はsheet5へデータを反映する作りです。 sheet2~sheet5はフォーマットを作成してあり、印刷するとA4で2枚印刷されるようになっています。 入力画面で入力した内容によってはA4用紙1枚ですむこともあります。(A1~M15でA4用紙一枚、A1~M31でA4用紙2枚) 教えて頂きたいことは。 ・入力画面にマクロのボタンを設置し、ボタンをクリックすると印刷プレビューが表示されるようにしたいです。 ・sheet2用、sheet3用、sheet4用、sheet5用、とボタンを設置したい。 ・印刷プレビュー後に、(実際には印刷後)に入力画面を表示したい。 ・印刷プレビューが見たいのはsheet2,sheet3,sheet4,sheet5です。 以上です。 説明が下手ですみません><

  • エクセルで連続印刷

    添付画像のような入力データがsheet1にあります。C1セルに数値を入力すると、該当する「no」カラムを読み込んで、その行のデータをシートを変えて印刷用のデータを作成するようになっています。 印刷用のデータをC1セルの数値を1回ごとに変え、シートを移動してからctrl+pで印刷していましたが いちいち数値を入力するのが面倒になりました。 そこで数値を範囲で指定したいのです。 例えば、1から10という指定の仕方で自動プリントアウトする設定はできないかなと考えております。 こういうことは可能でしょうか よろしくお願い致します。

  • エクセルで印刷範囲を自動で指定し、印刷するマクロ

    エクセルの表の中から、ある特定の文字が入っている セルを探し、そのセルから「下に3、右に2」の範囲 (文字が入っているセルは含まない)を自動的に範囲 指定して印刷するマクロをつくりたいのですが、どうすればよいでしょうか? たとえば、「○」が入力されているセルが A2だとすればA3からC5を自動的に範囲指定して印刷 するようにしたいのです。 どうぞよろしくお願いします。

  • エクセルのAcyiveXコマンドボタンの使い方について質問です。

    エクセルのAcyiveXコマンドボタンの使い方について質問です。 例としてですが、Sheet2には「赤」、Sheet3には「青」、Sheet4には「黄」とSheet名をしてるとします。これはデータとして入力しています。 Sheet1はデータの情報(Sheet1のセルA1に「赤」と表示されていたら赤の情報)が表示されるようになっています。情報の表示は、マクロでVLOOKUPを使用してデータより表示させるようにしています。そこで、コマンドボタンを使用して、情報を編集してデータを更新したいのですが記述の仕方がわかりません。 Sheet1で「青」、「黄」も同じく編集したら、Sheet3「青」、Sheet4「黄」をそれぞれ更新するようにしたいのですが、どなたか教えてください。「青」も「赤」も編集箇所、データの更新箇所は同じです。 Sheet2,3,4(赤、青、黄)のデータには、A1:A50には氏名が記入されており、B1:B50には職場、C1:C50は所属、D1:D50は住所が記入されているとします。 Sheet1のセルB2に氏名が表示されるようになっており、例えば、A1に赤と記入し、セルB2にaaaさんと名前が表示されていて、aaaさんの職場や住所が変更した場合にSheet1で編集したら、Sheet2(赤)の aaaさんの職場や住所を自動的に更新するようにしたいです。 Sheet1には、A1にシート名(赤、青、黄)、B2に氏名、B5に職場、D2に所属、E4に住所が入るように情報を作成してるとします。 マクロは、ほぼ初心者で、なかなか理解が難しいところではありますが、どうぞよろしくお願いします。

  • エクセルの数件のデータを表に印刷したい

    シート1の一行分のデータをシート2の表に表示されるように設定しています。 (=でシート1のセルを指定するとゆう超単純な物です) そのデータとゆうのは、何件もあるのですが、 今は、一件づつインプットして印刷、を繰り返して処理してます。 それを何件ものデータを一気に表に反映させて印刷する事は出来ますか? あと、その表とゆうのは、A5サイズですが、印刷用紙はA4なので、 出来れば、A4用紙に二件分、印刷したいのですが・・ 恐らく、マクロとかVBAなどといった物を駆使すれば出来るのでしょうが、 過去の質問等、かなり閲覧したものの、無知な私には何を書いてるのかさえも、 ほとんど分かりませんでした。。 別シート間のセルを=で指定出来る事も、今回初めて知ったぐらいです。 エクセルの知識は表計算など、超基本的な事しか分かりません。 何がアドバイスあれば、ご教授下さい。宜しくお願いします。

  • ワードの文書にエクセルのデータを差込印刷したいができなくなった!

    ワード2000の文書にエクセル2000のデータを差込印刷したいのですが、最初の数回はうまくできたのですが、操作の誤りか突然できなくなってしまいました。 質問1)ワード上でエクセルのデータを差込印刷するため一連の操作をしてみても、<差込フィールドの挿入>にぶら下がる差込フィールドはA1のセルだけになってしまい、他のB1やC1のセルのフィールドが表示にならずに選択できません。どうしたらもとの状態に戻るでしょうか? <差込印刷ヘルパー>の<1メイン文書の作成>をクリックしてでる<標準の文書に戻す>をクリックしても元に戻りません。 質問2)エクセルのデータを読み込んだ場合<範囲名またはセル範囲>というダイアログボックスが表示になりますが、ここには<ワークシート全体>の他に<タイトル未設定>という表示がたくさんでてしまいます。ここは、本来は、セル範囲名もしくはsheet名になるのでは?(一太郎ではsheet名でした) 質問3)差込印刷の一連の操作をするとタスクバーに差込の対象とするブックがひらいて、エクセルが起動していることがわかりますが、そのほかにも新しいbook1 が作成されてしまいます。異常なのでしょうか? よろしくご教示ください。

  • Excel データの一部を別シートにコピー

    Excelで、データ行のどこかをクリックし、ボタンを押したとき、その行を別々のシートに分類してコピーさせるマクロを作りたいと思っています。 このとき、コピー先のシートをA列のデータで区別したいのです。 1.クリックした行のA列のセルを判定し、そのセルのデータを読み取る方法 2.読み取ったデータ(文字)を、コピー先シート名に指定する方法 このマクロの記述方法を教えてください。よろしくお願いします。 コピー範囲を指定し、貼り付け先のシートをアクティブにできれば、あとは記録マクロをつないで作るつもりです。

専門家に質問してみよう