Excel VBAマクロで印刷を繰り返し可能なデータの変更を行う方法

このQ&Aのポイント
  • Excel VBAマクロを使用して、印刷後のデータを変更し、同じ雛形で繰り返し印刷する方法について教えてください。
  • シート1に印刷用の雛形がありますが、手入力したデータをマクロを使用して印刷する際に、データファイルが毎日更新されるため、データ量が変わることがあります。シート2にデータファイルを貼り付け、そのデータをシート1の所定の場所に貼付して印刷する方法を教えてください。
  • Excelのマクロ記録ではデータの行数が固定されてしまうため、Do Loopを使用することで可変のデータに対応する方法を教えてください。また、印刷が終了した場合にメッセージボックスを表示させる方法も教えてください。
回答を見る
  • ベストアンサー

印刷後データを変更し、また同じ雛形で印刷を繰返しをマクロで行いたい。

印刷後データを変更し、また同じ雛形で印刷を繰返しをマクロで行いたい。 シート1に印刷用の雛形があります。 セルの指定された10ケ所くらいに手入力後印刷しています。 この10ケ所の入力内容は別ファイルに有りますが そのファイルは夜間バッチで毎日更新されます。 またそのデータは今日は20行だけど明日は15行とデータ量が日々変わります。 シート2にこのデータファイルを貼り付けて そのシート2のデータの1行目(A2からJ2)の各値を シート1の所定の場所に値を貼付しシート1を1枚印刷。 その後シート2の2行目(A3からJ3)のデータを シート1の所定の場所に値を貼付し印刷。 これをシート2のデータ分(行です)繰り返し シート2のデータ(行です)がなくなったら メッセージBOXで「印刷終了」と出て印刷が停止。 というのをシート1に作成したボタン一つで行いたいです。 (シート2の値をシート1に貼付するのはマクロの記録で完成しましました。  でも駄目です(T_T)当たり前ですがデータ10行の時のマクロ記録では  データが15行の時11から15行目は無視されます。  Do Loop で対処可能でしょうか?) なおシート2にデータを貼り付ける時の データ選択はエクセルの「ファイルを開く」の小画面を表示させて 使用者に選択させたいです。 ↓ fName = Application.GetOpenFilename Application.ScreenUpdating = False Set fso = CreateObject("Scripting.FileSystemObject") dPath = fso.GetParentFolderName(fName) 1.シート1の「ファイル選択」ボタンを押す。 2.ファイルを選択する。(開くをクリックすると同時にno.3が自動で行われる) 3.シート2に選択ファイルが貼り付き選択されたファイルは閉じる。 4.シート1の「印刷」ボタンを押す。 5.マクロの記録どうりにシート2の2行目の値がシート1に貼り付く 6.シート1が印刷され、シート1の値がクリア。 7.マクロの記録の法則にならってシート2の3行目の値がシート1に貼り付く 8.シート1が印刷され、シート1の値がクリア。 9.シート2のデータがなくなるまで繰り返す。 10.シート2のデータ分だけ印刷したらメッセージが出る。 データを変更して繰り返して印刷の部分が参考書やWEB検索でなかなか見つかりません。 ご教授をお願いします。

  • gx9wx
  • お礼率95% (440/460)

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

gx9wx さん、遅くまでおつかれさまでした。 では追加のご質問への回答です。 > 例:D21→D22 > ("B4,E2,D21,E13,G9,B16,G18,D10,C7,G22", ",") > ↓ > ("B4,E2,D22,E13,G9,B16,G18,D10,C7,G22", ",") この部分を変更すればいいのであろうと思うのですが はい、そのとおりですよ。 上記はA列からJ列の連続した行のデータを配列に取り込み、連続しない範囲にB4,E2,D22,E13,G9,B16,G18,D10,C7,G22の順に入力してます。 > A2→シート1のB4 > J2→シート1のD21 > G2→シート1のG18 これは元のデータ範囲が連続していませんね。そうなると一度に取り込めないので、以下のようにセル自体を配列に取り込み、個別に転記することになります。 Sub 印刷02()   Dim myRng(1 To 3) '変数宣言   Dim cpRng   Dim i As Integer   With Sheets("Sheet2")     Set myRng(1) = .Range("A2") 'データ位置設定     Set myRng(2) = .Range("J2") 'データ位置設定     Set myRng(3) = .Range("G2") 'データ位置設定   End With   cpRng = Split("B4,D21,G18", ",") '転記先セル番地を配列に格納   With Sheets("Sheet1")     Do While myRng(1) <> "" 'A列のデータ位置が空白じゃなきゃ       For i = 1 To 3         .Range(cpRng(i - 1)).Value = myRng(i) .Value 'セルデータ転記       Next       .PrintOut '印刷       For i = 1 To 3         Set myRng(i) = myRng(i).Offset(1) 'データ位置を1行下に設定       Next i     Loop '繰り返し     .Range("B4,D21,G18").ClearContents 'クリア   End With   For i = 1 To 3     Set myRng(i) = Nothing '後処理   Next   MsgBox "おわったわよ。", vbInformation, "φ(^o^:)" End Sub

gx9wx
質問者

お礼

ありがとうございました。 Dim myArray, cpRng '変数宣言 Set myRng = Sheets("Sheet2").Range("A2:J2") 'データ位置設定 cpRng = Split("B4,E2,D21,E13,G9,B16,G18,D10,C7,G22", ",") '転記先セル番地を配列に格納 ↓ A2:J2はA列からJ列なので A2,G2,J2とすればいいのかなと ↓ Dim myArray, cpRng '変数宣言 Set myRng = Sheets("Sheet2").Range("A2,G2,J2") 'データ位置設定 cpRng = Split("B4,D21,G18", ",") '転記先セル番地を配列に格納 では駄目なのですね。 ------------------------- それから先ほど補足で質問した、  .Range(cpRng(i - 1)).Value = myRng(i) .Value 'セルデータ転記 の構文エラーですが  .Range(cpRng(i - 1)).Value = myRng(i) 'セルデータ転記 としたら動作しましたが、これで合っていますでしょうか?

gx9wx
質問者

補足

ご丁寧にありがとうございます。 教えていただいた物をコピペしたのですが 動作確認の前の貼り付けた状態で .Range(cpRng(i - 1)).Value = myRng(i) .Value 'セルデータ転記 の部分が赤字になり 「構文エラー」と表示されます。 どこを直していいのか検討が付きません。 お手数をおかけします。 よろしくお願いします。

その他の回答 (5)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.6

gx9wx さん、Sub 印刷02()見ました。 お書きになったコメント通りですよ。すっかり自分のものにされましたね。 ごくろうさまでした。

gx9wx
質問者

お礼

時間をさいていただきありがとうございました。 またいろいろ丁寧にありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

> .Range(cpRng(i - 1)).Value = myRng(i) .Value 'セルデータ転記 > の部分が赤字になり > 「構文エラー」と表示されます。 おや、なぜかmyRng(i)と.Value の間に空白が入ってしまったようです。 .Range(cpRng(i - 1)).Value = myRng(i) でも大丈夫ですが、正しくは .Range(cpRng(i - 1)).Value = myRng(i).Value です。(空白を削除しました) では、おやすみなさい。

gx9wx
質問者

お礼

ありがとうございました。 無事動作しました。 大変助かりました。 ちょっと補足に相談を入れました。 時間があったら見ていただければと思います。

gx9wx
質問者

補足

取り込みデータが連続していない場合の記述をありがとうございました。 教えていただいた物を一生懸命解読して、 自分なりのコメントを入れました。 でさらに教えていただいた > A2→シート1のB4 > J2→シート1のD21 > G2→シート1のG18 に  シートC2の値をシートB15に貼り付けるのを追加したいと仮定 して以下の記述にして見ました。この考えで正しいでしょうか? お手数かけます。よろしくお願いします。 ・データが3個→4個に増えた。  To 3 → To 4 にする ・Set myRngを1個増やす→(4)を追加→(C2) ・cpRng = Splitに転記先のデータを追加→(B15) -------------------------------- Sub 印刷02() '2010年10月8日 'シート2の1行目の指定したセルのデータをシート1の指定したセルに '転記を行いシート1が印刷される。 '印刷後はシート2の2行目の指定したセルのデータをシート1の指定したセルに '転記してシート1が印刷される。 'シート2にデータが無くなったら停止する。 '↓【データ変更時変更場所】データ数に合わせてToの右の数字を変える事  Dim myRng(1 To 4) '変数宣言 Dim cpRng '貼付位置をcpRngとする Dim i As Integer With Sheets("Sheet2") '↓【データ変更時変更場所】データの位置の変化や増減はここを変更する Set myRng(1) = .Range("A2") 'データ位置設定 Set myRng(2) = .Range("J2") 'データ位置設定 Set myRng(3) = .Range("G2") 'データ位置設定  Set myRng(4) = .Range("C2") 'データ位置設定 End With '↓【データ変更時変更場所】データ数の増減でここを変更 '↓【転記位置変更時変更場所】データの転記先だけが変更時もここを変更  cpRng = Split("B4,D21,G18,B15", ",") '転記先セル番地を配列に格納 With Sheets("Sheet1") Do While myRng(1) <> "" 'A列のデータ位置が空白でなければ '↓【データ変更時変更場所】データ数に合わせてToの右の数字を変える事  For i = 1 To 4 'データの数だけ繰り返す .Range(cpRng(i - 1)).Value = myRng(i).Value 'セルデータ転記 Next .PrintOut '印刷 '↓【データ変更時変更場所】データ数に合わせてToの右の数字を変える事  For i = 1 To 4 Set myRng(i) = myRng(i).Offset(1) 'データ位置を1行下に設定 Next i Loop '繰り返し '↓【データ変更時変更場所】データ数の増減でここを変更 '↓【転記位置変更時変更場所】データの転記先だけが変更時もここを変更  .Range("B4,D21,G18,B15").ClearContents 'クリア End With '↓【データ変更時変更場所】データ数に合わせてToの右の数字を変える事  For i = 1 To 4 Set myRng(i) = Nothing '後処理 Next MsgBox "おわったわよ。", vbInformation, "φ(^o^:)" End Sub

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

gx9wxさん、おはようございます。 別に謝らなくていいですよ。 わたしも余計なことを書いてしまいました。 (o。_。)o反省 で、今度のコードで解決しましたか? コピー&ペーストではないのでシート1の罫線が消えることはないと思います。

gx9wx
質問者

お礼

思ったとうり動きました。 罫線も消えません。どうもありがとうございました。 自分のマクロは廃止して 教えていただいた物をそっくりそのまま使用させていただきます。 助かりました。早速今日の業務から利用させていただき楽になりました。 感謝、感謝です。 お礼も遅れてすいません。 ----------------- 丁寧に教えていただきまして恐縮ですが 今後の事を考えて教えていただきたい事があります。 例えば将来、データはそのままで貼付場所だけが変わった場合 例:D21→D22 ("B4,E2,D21,E13,G9,B16,G18,D10,C7,G22", ",") ↓ ("B4,E2,D22,E13,G9,B16,G18,D10,C7,G22", ",") この部分を変更すればいいのであろうと思うのですが (↑間違えていたらすいません。) データ位置設定が変更された場合は 例えば、 A列からJ列の10個のデータの中でA,C,G列の値だけを貼り付ける場合は どうすればいいのでしょうか?メンテでの対応は不可能で 記述を一から書き直す方がいいのでしょうか? シート2のA列からJ列の中で 初回 A2→シート1のB4 J2→シート1のD21 G2→シート1のG18 ↓2回目 A3→シート1のB4 J3→シート1のD21 G3→シート1のG18 データがあるまで繰り返す。 教えていただいた記述を参考に自分で作成しましたが 全然駄目でした。昨日は深夜まで挑戦したけど駄目でした。 それでお礼が遅れました。申し訳ありませんでした。 今後もよろしくお願いいたします。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

ANo1のmerlionXXです。 わたしもかなりの「ものぐさ」ですが、gx9wxさんもなかな横着者ですね。 コードを質問しておきながら、不備なマクロを貼り付けてわたしに解読させるんですね。 やりかけた回答なので解読して再度回答はしますが、普通ならば、「Sheet2の"A2:J2"以降の連続したデータを、Sheet1の"B4,E2,D21,E13,G9,B16,G18,D10,C7,G22"に順次代入して行きたいのです。」というように言葉で説明することだとは思いませんか? で、読込んでSheet2にデータを貼り付けたところまではできているのですね? それでは、印刷のマクロです。 これでいかがでしょう。 Sub 印刷()   Dim myArray, cpRng '変数宣言   Set myRng = Sheets("Sheet2").Range("A2:J2") 'データ位置設定   cpRng = Split("B4,E2,D21,E13,G9,B16,G18,D10,C7,G22", ",") '転記先セル番地を配列に格納      With Sheets("Sheet1")     Do While myRng(1) <> "" 'データ位置が空白じゃなきゃ       myArray = myRng.Value 'データを配列に格納       For i = 1 To 10         .Range(cpRng(i - 1)).Value = myArray(1, i) '転記       Next       .PrintOut '印刷       Set myRng = myRng.Offset(1) 'データ位置を1行下に設定       Erase myArray 'データの配列を空に     Loop     .Range("B4,E2,D21,E13,G9,B16,G18,D10,C7,G22").ClearContents   End With   Set myRng = Nothing   MsgBox "おわったよ。" End Sub

gx9wx
質問者

お礼

補足の投稿で不愉快な思いをさせてしまい申し訳ありませんでした。 また再度教えてもらった記述の結果報告が遅れてしまい 申し訳ありません。 思ったとうりに動いています。 また罫線も消えません。 本日から利用させていただいて楽になりました。 どうもありがとうございました。

gx9wx
質問者

補足

>不備なマクロを貼り付けてわたしに解読させるんですね。 申し訳ありません。そんなつもりではなかったのです。 よく「記述を示さなければ回答ができません。」と注意されるので 貼付ました。 >普通ならば、 >「Sheet2の"A2:J2"以降の連続したデータを、 >Sheet1の"B4,E2,D21,E13,G9,B16,G18,D10,C7,G22"に >順次代入して行きたいのです。」というように言葉で説明すること これは最初の質問で >そのシート2のデータの1行目(A2からJ2)の各値を >シート1の所定の場所に値を貼付しシート1を1枚印刷。 >その後シート2の2行目(A3からJ3)のデータを >シート1の所定の場所に値を貼付し印刷。 と質問したので補足には記述だけを書いた次第です。 大変申し訳ありません。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

肝心の、Sheet2のA~J列のデータをSheet1のどこにもってくるのかがわかりませんので '値をSheet1に貼り付けるマクロ としてますが、そのたの部分はこんな感じかな。 Sub データ取得()   Dim wb As Workbook   If Application.Dialogs(xlDialogOpen).Show = False Then     MsgBox "きゃんせる"     Exit Sub   Else     Set wb = ActiveWorkbook     wb.Sheets(1).Cells.Copy ThisWorkbook.Sheets("Sheet2").Cells     wb.Close (False)     Set wb = Nothing   End If End Sub Sub 印刷()   Set myRng = Sheets("Sheet2").Range("A2")   Do While myRng <> ""     '値をSheet1に貼り付けるマクロ     Sheets("Sheet1").PrintOut     Set myRng = myRng.Offset(1)   Loop   Set myRng = Nothing   MsgBox "おわったよ。" End Sub

gx9wx
質問者

お礼

ありがとうございました。 教えていただいた記述で思ったとおり動きました。 ですが私のマクロが駄目です。 シート1にはかなり罫線を使用しています。 ですがシート2の値をシート1に貼り付けると その罫線が消えてしまいます。 例えばシート1のセルA4は罫線で囲まれています。 そこにシート2のA2の値をコピーですが、 シート2には罫線が一切ないため、コピーすると シート1の罫線が消えてしまいました。 シート1のセルに式を入れてシート2の値を持ってくる方が いいでしょうか? でもそれだと印刷の次に次の行の値を持ってくる事が対応できないし。 構想の問題でしょうか? マクロで行うのは無理なのでしょうか?

gx9wx
質問者

補足

'値をSheet1に貼り付けるマクロ の部分に  Call 値貼付 として行いました。シート2が3行なら3枚印刷して終了でそれはOKでした。 教えていただいた物はOKなのですが私のマクロが駄目です。 値貼付が駄目でデータが3行あると3枚印刷ですが 3枚とも2行目のデータで印字され結果3枚同じ物が印刷されてしまいます。 Do Loopを入れたら今度は雛形のみしか印刷されません。 (セルの1行目を指定した文なので当たり前ですが) 2回目は3行目のデータが貼りつかなければいけないのですが 駄目でした。マクロの記録では駄目です。お手上げです。 Sub 値貼付() 行=2 Do While Cells(行, 1).Value <> "" Sheets("Sheet2").Select Range("A2").Select Selection.Copy Sheets("Sheet1").Select Range("B4").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("B2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("E2").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("C2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("D21").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("D2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("E13").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("E2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("G9").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("F2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("B15").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("G2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("G18").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("H2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("D10").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("I2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("C7").Select ActiveSheet.Paste Sheets("Sheet2").Select Range("J2").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("G22").Select ActiveSheet.Paste 行 = 行 + 1 Loop End Sub

関連するQ&A

  • マクロの記録で作成したマクロがデータが代わると誤動作する。

    マクロの記録で作成したマクロがデータが代わると誤動作する。 エクセルファイルにてA列からJ列までデータがあります。 行数は2,000行です。データは全て半角です。 A列の値が 1=入庫 2=出庫 3=戻入 と全て置換 B列の値が 1=社内品 2=社外品 3=受入 と全て置換。 でこのB列が3で受入に置換えたら その隣のA列の値を 受入に置き換えたい。 さらに A列の値が置換え後の入庫と戻入場合はその行のJ列の値を切り取り、K列に貼付をし A列の値が置換え後の出庫の場合はその行のJ列の値を切り取り、L列に貼付をしたいです。 マクロの記録で行いましたが、 いったんデータを全て消して別データを貼り付けしたらA列B列の置換えは正常ですが B列が3の場合にA列を再置換えと、J列の値を切り取り、K列、L列への貼付が 誤動作します。 (別データは雛形は同じです。入力規則も同じですがデータは変わります。  例:セルA1のデータは1、 新しいデータはセルA1は2 等) マクロの記録中では、並べ替えでソートし上記条件でセルを選択しコピペをしました。 並べ替えは2回です。 マクロ文を見ると、セル名がずらずら並んで、セル番号が指定されてます。 (マクロ記録中に選択したセル番号が全部記録されてます。) 文を見ると、上記条件で置換えやコピペでなく このセルはこう置換え、このセルはこうコピペのように読めます。 これでは、データが代わったら、別の動きになるのかな?と思いました。 こういう場合はマクロではどうやって記録すればいいでしょうか?

  • Excelでマクロを消すには

    マクロが組み込まれているExcel2003のファイルがあります。 マクロについて詳しくわからないのですが、複数の伝票シートを一括印刷するボタンがあったり、 チェックボックスに応じてオートシェープや文字が切り替わる機能があります。 この伝票のひな形だけを使いたく、枠や文字だけを新しいシートに値でコピーし、 別名で保存しました。 ボタンやオートシェープはありません。 また、ツール→マクロを選んでも特に何も見当たりませんでした。 しかし、このファイルを開くたびに このファイルにはマクロが…  [マクロを有効にする][マクロを無効にする] というダイアログが表示されてしまいます。 マクロを消すといいますか、このダイアログが表示されないようにする方法がありましたら 教えてください。 よろしくお願いいたします。

  • エクセルでデータがあるシートだけ印刷するマクロ

    エクセルのマクロで印刷するマクロを使っていますが、5つある ワークシートを全て選択して印刷するマクロでこれをデータ(数値)が 入っているワークシートだけ印刷するマクロにしたいのですがどのようにすればいいのでしょうか?

  • VBA フォルダ内ファイルにマクロ一括処理

    フォルダ内ファイルのマクロを一括実行したいです。 フォルダ内ファイル全てに下記のマクロを登録 Sub 値貼り付け() 'シート4番目を選択 Sheets(4).Select 'シート名1文字目が「★」以外のシートを選択 For Each i In ThisWorkbook.Sheets If Not i.Name Like "★*" Then i.Select Replace:=False End If Next i '全セル選択 Cells.Select 'コピー Selection.Copy '値貼り付け Selection.PasteSpecial Paste:=xlPasteValues Cells(1, 1).Select Sheets(1).Select '「.xlsx」で保存 Application.DisplayAlerts = False Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") With ActiveWorkbook f = fso.GetBaseName(.Name) .SaveAs .Path & "\" & f & "保存.xlsx", FileFormat:=xlWorkbookDefault .Close End With Set fso = Nothing End Sub 一括でマクロを実行する用のファイルに下記マクロを登録 Sub 一括処理() Dim Fpath As String Dim Fname As String Dim Wb As Workbook Fpath = ThisWorkbook.Path & "\" Fname = Dir(Fpath & "*.xlsm") Do Until Fname = "" If Fname = ThisWorkbook.Name Then Else Application.DisplayAlerts = False 'ブックを開く Set Wb = Workbooks.Open(Fpath & Fname) 'マクロ実行 Application.Run "'" & Fname & "'!値貼り付け" Wb.Close SaveChanges:=True Application.DisplayAlerts = True End If Fname = Dir() Loop End Sub 一括処理の実行をすると、フォルダ内の一つのファイルだけ マクロ実行されると終了してしまいます。 各々のファイルには他にもマクロを登録していて、そちらは 'マクロ実行 Application.Run "'" & Fname & "'!値貼り付け" のマクロの名前部分を変更して、同様に一括処理していますが 問題なく動きます。 なぜかこの「値貼り付け」のマクロだけ全ファイルに動作して くれません。 色々自分なりに調べているのですが、どうしても原因不明で 今回投稿させて頂きました

  • データをコピーするマクロを教えてください。

    「入力用シート」に毎月データを入力し、出た値(例えばA1に値が出るとすると)を、別の「記録用シート」に月別にデータをコピーする“マクロ”を教えて下さい。 よろしくお願いします。

  • マクロで変化する印刷範囲を印刷したい

    教えて下さい!エクセルでデーターが入っている 例えば A1:K25とA27:K40 この領域には別のデーターが入ってます 列数は変更ありませんが行数はシートにより違います 毎回印刷範囲を指定しているので面倒くさいのが現状です どなたかワンプッシュで2つのデーターを入れてある領域を印刷出来るマクロを教えて下さい 上と下のデーターの領域は必ず1~3マスは行が空いてます 列は決まっているのでA1~A●←最終行まで A●下行の空白最後尾+1=A■ A■~A■最終行 この二つの領域印刷がしたいです マクロの記録でやってみましたが行が特定の為違うシートでは使えず 又、指定したシートも行を変更してしまうので印刷範囲指定した方が早いという結果に どなたかお力をお貸しください 宜しくお願いします

  • エクセルマクロで印刷範囲の設定

    エクセルのsheet1に表があります。 この表を印刷ボタンを押すだけで印刷できるようにしようと思います。データの最後の行までのページを印刷できるようにするマクロを教えてください。 ちなみに、今ある最後のデータより下の行もずっと罫線が引いてあります。 また、印刷だけだったら普通に 印刷>ページの指定 でできるよと思われるかもしれませんが、その他の機能もマクロでつくっている最後の段階なのでマクロでお願いいたします。 分かりにくい文章ですがよろしくお願いします。

  • Excelでの差込印刷

    ExcelのSheet2にあるデータをSheet1の雛型に差込印刷をするマクロを作っています。 データは使用する度に件数が違うので、最終行を取得して1件ずつ差込印刷をするところまではできたのですが、10件ずつまとめて持ってくるにはどうしたらいいでしょうか。 宜しくお願いします。

  • マクロで自動印刷

    マクロを使用して印刷を行う場合の マクロを教えていただけないでしょうか? 1つのエクセルブックに、 『あ』と『い』と『う』の3個のシートがあります。 それぞれ印刷範囲設定済みです。 マクロボタンをすでに作成済みで ・ シート『あ』と『い』と『う』印刷ボタン ・ シート『あ』と『い』印刷ボタン ・ シート『う』のみ印刷ボタン があります。 それぞれのボタンの、マクロを教えていただけないでしょうか。 宜しくお願いいたします。

  • マクロでグラフ作成

    マクロを使って、各シート(ひな型は同じでデータが各々違う)の特定の部分のデータから折れ線グラフを書こうとしています。 しかし、どのシートでマクロを実行しても、最初にマクロを記録したシートのデータからグラフができてしまいます。 マクロの保存法が悪いのでしょうか? 相対参照で記録、なども試してみましたが駄目でした。 どなたかお分かりになる方、助けてください。

専門家に質問してみよう