• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで連続印刷をするマクロ)

Excelで連続印刷をするマクロ

このQ&Aのポイント
  • Excelでデータベース的な使い方をする方法として、VLOOKUP関数を使用し、特定のデータを読み込む方法について解説します。
  • 連続印刷をするマクロについて、マクロを少し変更することでデータの範囲を可変にし、便利に印刷できる方法について考えています。
  • マクロを根本的に変えるのではなく、少しの変更や追加でデータの範囲を可変にする方法について教えていただきたいです。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>そこのiとjのセルに数字を入力することで,自動的に >マクロが n = (iに入力した数字) To (jに入力した数字) セルが、I1とJ1セルのことだとして For n = 1 To 135 は For n= Sheets("設定").Range("I1").Value To Sheets("設定").Range("J1").Value といった風に記述できます。 >実際はデータ数が変動する J1セルにはCOUNTA関数などを使用してデータの数を表示させておくと便利かもしれませんね。

oonots
質問者

お礼

思っていた通りのことができました。 ありがとうございます。 ホントにちょっとしたことだったんですね。 サクサク実行してくれるのが とっても楽しいです。 役に立ちました。

その他の回答 (2)

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

データの情況が説明されて無いので、したいことが不明確。 >レポート」シートのA1セルに入力した数字に該当するデータをVLOOKUP関数で読み込んでいます、も良くわからない。 この質問には書く必要が無いのでは。 >Excelでデータベース的な使い方をしています と大きく書いているが、エクセルはVBAが出来ないと、仕事には十分使えないと思う。VBAを勉強のこと。 この質問には書く必要なし。 ーー 質問内容だが、 (1)最終行まで一度に印刷 (2)指定した行から行まで印刷 (3)シートに、意味的に別の表が「複数あり、それらのデータ塊(表)をページを分けてシートの全表分一度に印刷する。 など考えたが、 そのどれか、またはこれら以外か、良くわからない。 (1)は Sub test02() d = Range("A65536").End(xlUp).Row Range("A1:J" & d).PrintOut 'A-J列まで印刷の例" End Sub (2)は Sub test03() x = InputBox("開始行") y = InputBox("終了行") Range("A" & x & ":J" & y).PrintOut 'A-J列まで印刷の例" End Sub (3)は、例えば (簡単な例で実行し納得し、その後確認のMsgbox行は削除して実行してください) 同一シートで、表と表が縦方向に並んでいて、その間には1行以上の空白行がある前提。 A列からデータが始まっている例。 表の実例がわからないので、下記ではうまく行かない例も想像できるがとりあえず挙げておく。 Sub test01() d = Range("A65536").End(xlUp).Row 'MsgBox d MsgBox "始めの行" & 1 Range("A1").CurrentRegion.Select MsgBox Selection.Address Selection.PrintOut x = Range("A1").End(xlDown).Row MsgBox "終了行" & x '---- p1: x = Range("A" & x + 1).End(xlDown).Row '始めの行 MsgBox "始めの行" & x Range("A" & x).CurrentRegion.Select MsgBox Selection.Address Selection.PrintOut If Range("A" & x).CurrentRegion.Rows.Count <> 1 Then x = Range("A" & x).End(xlDown).Row End If MsgBox "終了行" & x '-- If x = d Then GoTo p2 '終了 GoTo p1 '繰り返し p2: End Sub

oonots
質問者

お礼

すみません。 こちらがシロウトなので 分かりにくい説明になってしまいました。 VBAは勉強しなくては!!と思っていますが 何から手を付けたらいいのかも分からない状況です。 書店で本を探して見ていますが 自分のレベル(超初心者)にあったのが見つかっていません。 これから頑張っていこうと思います。 いちおう質問は (2)の 指定した行から行まで印刷を意識していました。 なんとなく できました。 詳しい回答 ありがとうございました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

InputBoxを利用して、 Dim i, j i = Application.InputBox("開始番号を入力して下さい", Type:=1) j = Application.InputBox("終了番号を入力して下さい", Type:=1) If i = False Or j = False Then Exit Sub For n = i To j Range("A1").Select ActiveCell.FormulaR1C1 = n ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Next n とか。

oonots
質問者

お礼

InputBoxというのは 今まで使ったことがありませんでした。 他の人が作っているのは使ったことがあったのですが いつも 「どうやって作るのだろう?」程度のことを考えていました。 実際に 初めて使ってみて 簡単にできることがわかりました。 ありがとうございます。

関連するQ&A