No.8ベストアンサー
- 回答日時:
>こちらのマクロでは改ページの最初のセルにもページ番号が振られてしまいます。
> 振るのは改ページごとの最終セルだけなのですが
そうだったのですか?
読んでいませんでしたが、資料という文字がついている片方を取り去ればよいだけでは?
Range("AN1").Value は、数字のみです。
---------------------------
rec = Range("AN1").Value
If rec = 0 Then MsgBox "AN1 に、初期値が入っていません", vbCritical: Exit Sub
'Cells(1, 1).Value = "資料 - " & CStr(rec) '削除
For i = 1 To PageCount \ VRetPage
Page = .ExecuteExcel4Macro("INDEX(GET.DOCUMENT(64),1," & i & ")")
Cells(Page - 1, 1).Value = "資料 - " & CStr(rec) '★加筆
If PageCount \ VRetPage = i Then Exit Sub '最後は番号を振らない
'Cells(Page, 2).Value = "資料 - " & CStr(rec + 1) '削除
rec = rec + 1
Next
End With
End Sub
WindFallerさん返信ありがとうございます。
アドバイス通り削除したら出来ました!
本当にありがとうございます。
説明が下手で意図をうまく伝えられずお手間をおかけして申し訳ありません。m(_ _)m
No.7
- 回答日時:
話がどう変わったのか、私には見えていない部分もあるかもしれません。
最後のページの部分まで押さえられているはずです。このコードは、VBAとはいえ、忘れ去られていくテクニックかもしれません。
'//
Sub PageEnterSheetArea()
Dim PrntRng As Range
Dim PageCount As Long
Dim VRetPage As Long
Dim i As Long
Dim Page As Long
Dim rec As Variant
With ActiveSheet
Set PrntRng = .Range(.PageSetup.PrintArea)
End With
With Application
VRetPage = .ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(65))")
PageCount = .ExecuteExcel4Macro("GET.DOCUMENT(50)")
rec = Range("AN1").Value
If rec = 0 Then MsgBox "AN1 に、初期値が入っていません", vbCritical: Exit Sub
Cells(1, 1).Value = "資料 - " & CStr(rec)
For i = 1 To PageCount \ VRetPage
Page = .ExecuteExcel4Macro("INDEX(GET.DOCUMENT(64),1," & i & ")")
Cells(Page - 1, 1).Value = rec
If PageCount \ VRetPage = i Then Exit Sub '最後は番号を振らない
Cells(Page, 1).Value = "資料 - " & CStr(rec + 1)
rec = rec + 1
Next
End With
End Sub
No.6
- 回答日時:
No.3・5です。
補足の件について・・・
あらかじめA~AI列を範囲指定 → ページレイアウトから「印刷範囲」に設定してマクロを実行してください。
(印刷範囲を設定しないとAK1・AN1も印刷範囲になり、ページ数が増えてしまうため)
Sub Sample3()
Dim cnt As Long, pCnt As Long, myRow As Long
Dim rowCnt As Long
With ActiveSheet
pCnt = .HPageBreaks.Count
.Range("A1") = .Range("AN1")
Do Until cnt = pCnt
cnt = cnt + 1
myRow = .HPageBreaks(cnt).Location.Row
.Cells(myRow - 1, "A") = .Range("AK1") & "-" & .Range("AN1") + cnt - 1
.Cells(myRow, "A") = .Range("AN1") + cnt
Loop
'//最終ページ、最終行の操作//
rowCnt = .HPageBreaks(cnt).Location.Row - .HPageBreaks(cnt - 1).Location.Row
.Cells(myRow, "A").Offset(rowCnt - 1) = .Range("AK1") & "-" & .Cells(myRow, "A")
End With
End Sub
※ 細かい検証はしていません。m(_ _)m
tom04さんご返信ありがとうございます。
説明が下手で申し訳ありません。
アドバイスは今後のマクロ作成に参考にさせていただきます。
いろいろ勉強になりました。本当にありがとうございました。
No.5
- 回答日時:
No.3です。
各ページの最終行に 資料1-○ ←「○」はページ番号 としてみました。
尚、おそらく最終行がきっちりとページ内に収まるというコトはほとんどないと思います。
前回のコードでは最終ページの最終行には何も表示されないので
最終ページの最終行にも 資料1-○ と表示するコードを追加してみました。
Sub Sample2()
Dim cnt As Long, pCnt As Long, myRow As Long
Dim rowCnt As Long '★
With ActiveSheet
pCnt = .HPageBreaks.Count
Do Until cnt = pCnt
cnt = cnt + 1
myRow = .HPageBreaks(cnt).Location.Row
.Cells(myRow - 1, "A") = "資料1-" & .Range("A1") + cnt - 1
.Cells(myRow, "A") = .Range("A1") + cnt
Loop
'//★ 最終ページ、最終行の操作//
rowCnt = .HPageBreaks(cnt).Location.Row - .HPageBreaks(cnt - 1).Location.Row
.Cells(myRow, "A").Offset(rowCnt - 1) = "資料1-" & .Cells(myRow, "A")
End With
End Sub
※ 最終ページのひとつ前のページで1ページの行数を割り出していますので
前提条件として、最後の2ページのレイアウトは同じとします。m(_ _)m
No.4
- 回答日時:
#2の回答者です。
>ちなみに先頭ページ番号を入力するセルはAN1です。
ということですから、
#2の中のコードで、15行目付近にある、
PageCount = .ExecuteExcel4Macro("Get.Document(50)")
----------------------------------
rec = Cells(1, 1).Value ←この部分から、
------------------------------------------
以下のように書き換えればよいでしょう。
----------------------------------
rec = Range("AN1").Value 'ここから、以下2行を入れる
If rec = 0 Then MsgBox "AN1 に、初期値が入っていません", vbCritical: Exit Sub
Cells(1, 1).Value = rec
------------------------
For i = 1 To PageCount \ VRetPage
No.3
- 回答日時:
こんにちは!
各ページのA列の最初のセルと最後のセルに同じページ番号を入れたい!というコトですよね?
セルの高さによって1ページ当たりの行数が変わってきますので、A列のA1セル以外にデータはない!とします。
Sub Sample1()
Dim cnt As Long, pCnt As Long, myRow As Long
With ActiveSheet
pCnt = .HPageBreaks.Count
Do Until cnt = pCnt
cnt = cnt + 1
myRow = .HPageBreaks(cnt).Location.Row
.Cells(myRow - 1, "A") = .Range("A1") + cnt - 1
.Cells(myRow, "A") = .Range("A1") + cnt
Loop
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.2
- 回答日時:
以下は、Excelのバージョンは関係がないというか、Ver.4 のマクロ関数を使用しています。
位置関係はあっているはずですが、番号の振り方がいまいちはっきりしません。
たぶん、A1 に7があるというのは、他ですでに6までは追わつているという意味だと思います。
'//
Sub PageEnterSheetArea()
Dim PrntRng As Range
Dim PageCount As Long
Dim VRetPage As Long
Dim i As Long
Dim Page As Long
Dim rec As String
With ActiveSheet
Set PrntRng = .Range(.PageSetup.PrintArea)
End With
With Application
VRetPage = .ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(65))")
PageCount = .ExecuteExcel4Macro("Get.Document(50)")
rec = Cells(1, 1).Value
For i = 1 To PageCount \ VRetPage
Page = .ExecuteExcel4Macro("INDEX(GET.DOCUMENT(64),1," & i & ")")
Cells(Page - 1, 1).Value = rec
If PageCount \ VRetPage = i Then Exit Sub '最後は番号を振らない
Cells(Page, 1).Value = rec + 1
rec = rec + 1
Next
End With
End Sub
No.1
- 回答日時:
エクセルはどのバージョンですか?
印刷で、ヘッダー/フッダーの指定はできませんか?
フッダーでページ番号挿入を設定すれば、印刷時に割り付けて印刷されます。
印刷ではなくて、可視化したいのでしょうか?
>1ページ目のA1セルに7が入力されている場合は、1ページ目の最終セルに7、2ページ目に8と入力していき
1ページの行数や列数は変動するのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- PDF EXCEL ページを指定してPDF出力するVBAを教えてください。 2 2023/02/09 10:27
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) セルに抜けた番号の代わりに空白を挿入する 4 2023/04/10 20:29
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
VBAでページ番号、ページ最終行を取得する方法
その他(プログラミング・Web制作)
-
EXCEL、マクロ-改ページ行番号の取得方法を教えてください
Visual Basic(VBA)
-
【Excel】マクロでページを追加することはできますか?
Excel(エクセル)
-
-
4
EXCEL-VBAで印刷時のページ番号を取得したい
Excel(エクセル)
-
5
画像を削除したい(VBA)
Word(ワード)
-
6
VBAで印刷ページ最終行にページ計表示印刷したい
Visual Basic(VBA)
-
7
エクセルでページをコピーして貼り付けるマクロ
Visual Basic(VBA)
-
8
ExcelVBA 改ページの横破線を消す方法
Excel(エクセル)
-
9
A1セルにアクティブセルのページ数を入力したい
Excel(エクセル)
-
10
Excelで特定の文字のところで自動的に改ページしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excle VBA Findメソッドについて
-
Excelで指定した日付から過去の...
-
VBA コピーして次の値まで貼り...
-
VBAコマンドボタンを押すたびに...
-
VBAの計算で@が出てしまう件
-
DataGridViewの各セル幅を自由...
-
【Excel】指定したセルの名前で...
-
Excel VBA、 別ブックの最終行...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
Excelのハイパーリンクにマクロ...
-
ExcelのVBAで数字と文字列をマ...
-
EXCELで変数をペーストしたい
-
指定文字以外のカウント
-
指定した条件で行セルを非表示...
-
【VBA】指定したセルと同じ値で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
VBAの計算で@が出てしまう件
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
VBA ユーザーフォーム ボタンク...
-
VBAでセルをクリックする回...
-
Excel VBA、 別ブックの最終行...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
-
VBAを使用した時間管理
-
”戻り値”が変化したときに、マ...
-
Sub 要具ライフ() ActiveSheet....
おすすめ情報
Excel2013です。
ヘッダー/フッダーではなくシート内にページ番号を振りたいです。
今回のExcel資料は各ページの行数等は変わりませんが、あくまで改ページごとの最終セルにページ番号を振りたいのですが・・・
不備な点があるということで補足
>たぶん、A1 に7があるというのは、他ですでに6までは追わつているという意味だと思います。
シートごとに先頭ページを決めるだけです。
シート1に改ページで10ページある場合、改ページ1ページ目に先頭ページ番号を入力するセルがあり、そのセルに7という数字を入力しマクロを実行すると改ページ1ページ目の最終セルに7、2ページ目の最終セルに8・・・・・10ページ目の最終セルに16といった感じ代入していきたいのですが
またシート2がある場合シート1で先頭ページを7から始めましたが、シート2でも先頭ページ7から始められるようにしたいです。
ちなみに先頭ページ番号を入力するセルはAN1です。
説明が上手くなく申し訳ありません。
tom04さんのマクロを参考にしたらできました。
ありがとうございます。
ちなみに
.Cells(myRow - 1, "A") = .Range("A1") + cnt - 1
おそらくこの文が最終セルに代入するものだと思いページ番号を入れる際固定の文字
例えば最終セルに"資料1""ページ番号" ※このページ番号は変数です
のように資料1を固定として代入したい場合上記の1文を変更すればいいのですか?
"資料1-"ところにセルの数値を代入したいのですが
.Cells(myRow - 1, "A") = セルの番号 " - " & .Range("AN1") + cnt - 1
に変更すると " - " のところでコンパイルエラーが出てしまいます。取得したいセルはAK1なのですが・・・
※代入するのは改ページの最終行のみに変更しています
AN1は先頭ページ番号を入力するセルで、改ページの外にあります
1ページの範囲はA1からAI46までです。
WindFallerさん補足に対するご回答ありがとうございます。
こちらのマクロでは改ページの最初のセルにもページ番号が振られてしまいます。
振るのは改ページごとの最終セルだけなのですが