- ベストアンサー
エクセルにページ番号を追加したい
watabe007の回答
>その場合の集計表という名前だけで判断して、 >回答してくださったプログラムの中で連続でページ番号を振っていく Sub pageB() Dim i As Long, j As Long For i = 1 To Worksheets.Count If Worksheets(i).Name Like "集計表*" Then j = j + 1 Worksheets(i).Range("G1") = "'" & j & "/" & Worksheets.Count End If Next End Sub
関連するQ&A
- シート番号追加VBA
watabe007さま 大変お世話になりました 前にシートのセルにページ番号を追加するVBAをこちらで教えて頂きまして、本当に有難うございます 前回に下記の内容を教えて頂き、大変有難く使わせていただいております Sub pageA() Dim i As Long For i = 1 To Worksheets.Count If Worksheets(i).Name = "Sheet3" Then Worksheets(i).Range("G2") = "'" & i & "/" & Worksheets.Count ElseIf Worksheets(i).Name = "Sheet4" Then Worksheets(i).Range("G3") = "'" & i & "/" & Worksheets.Count Else Worksheets(i).Range("G1") = "'" & i & "/" & Worksheets.Count End If Next End Sub それで、今回はどのシート名にも属さないシートはページカウントとしてカウントしない、という方法がありましたらお教え頂きたいのですが、方法はありますでしょうか? お忙しいかと思いますが、アドバイス頂けますますと嬉しいです
- ベストアンサー
- Excel(エクセル)
- シートの増減あっても特定セルに連番したい
Excel2007でマクロ作成の初心者です。 すべてのシートのR15セルに、シートの順番どおり 1から連番で番号をつけるマクロを教えていただきました。 Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim i As Integer For i = 1 To ThisWorkbook.Worksheets.Count Worksheets(i).Range("R15").Value = i Next i End Sub これを以下のように改良したのですが、新しく追加したシートにはなぜか 番号が表示されません。どうしたら、うまく連番が入るようになるでしょうか。 Sub シートに連番() Dim i As Integer For i = 1 To ThisWorkbook.Worksheets.Count Worksheets(i).Range("R15").Value = i Next i End Sub
- ベストアンサー
- Visual Basic
- Excel VBAシートの同一番地のセルのリスト化
別々のシートの同一番地のセルの値をリスト化するのにこのようなVBAを見つけました。 シートは追加せず、既存のシートを指定したくて、色々と書き換えをチャレンジしましたがうまくいきません。 既存のシートを指定し、この作業を行うにはどうしたらよいのでしょうか? ご教示いただけますと幸甚です。 Sub Test1() Dim TmpSheet As Worksheet, i As Integer i = Worksheets.Count Set TmpSheet = Worksheets.Add(After:=Sheets(Sheets.Count)) With TmpSheet For i = 1 To i .Cells(i, 1).Value = Worksheets(i).Name .Cells(i, 2).Value = Worksheets(i).Range("E5").Value Next End With End Sub
- ベストアンサー
- Excel(エクセル)
- 同じセル位置にシートの連番をつけたい
Excel2007でマクロ作成の初心者です。 すべてのシートのR15セルに、シートの順番どおり 1から連番で番号をつけたいです。 途中でシートを削除したときも、即座に新しい連番が表示されるようにしたいです。 どうつくったらいいか、皆目わかりません。よろしくお願いします。 Sub test() Dim i As Integer For i = 1 To (Worksheets.Count - 3) Cells(18, 15) = Worksheets(i) Range("R15").Formula = "="1"" Next i End Sub
- ベストアンサー
- Visual Basic
- リストボックスに番号と名前を表示したい。
windows7 Excel2003でマクロ作成中の超初心者です。 現在以下のマクロにより、リストボックスに社員名を表示し、その名をクリック すると、その社員名のシートに飛ぶようになっています。 シート名は社員名になっていますが、最終のシートの5枚は他の目的に使用しています。 現在、リストボックスは、名前だけが順不動に並んでおり、ボックスから、選択するのに、見にくいのでちょっと時間がかかります。 それで名前の前に、シート番号等(任意の番号でも可)を表示して、見やすくして、容易に名前を選択するようにしたいのです。 よろしくお願いします。 Private Sub CommandButton1_Click() Unload 社員選択 End Sub ------------------------- Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To Worksheets.Count - 5 正社員リスト.AddItem Worksheets(i).Name Next i With 社員選択 .StartUpPosition = 0 '初期表示位置を表す値を指定しない .Top = 55 '上端からの距離を設定する .Left = 300 '左端 〃 ' .Show '表示する End With End Sub ----------------------------------------- Private Sub 正社員リスト_Click() Application.ScreenUpdating = False With 正社員リスト Worksheets(.list(.ListIndex)).Activate End With Unload 社員選択 End Sub
- ベストアンサー
- Visual Basic
- コードがうまく作れません
iの値に一致するセルをAK列のセルから探し出し、一致したら同じ行のセルBA列の値を合計します。iの合計が出たらワークシート2にiの値と合計をセルに貼り付けます。 次にiの値を1増やしてまた同じセルを探し出し、合計を出してワークシートの下の行のセルへ貼り付けます。 これで実行すると合計が全て0になります。どうかご指導をお願いします。 Sub sou() Dim h, count, goukei, i, e, f h = 1 e = 1 f = 1 count = 0 goukei = 0 Worksheets("Sheet1").Activate Worksheets("Sheet2").Activate For i = 12345 To 45787 For h = 1 To Cells(Rows.count, "AK").End(xlUp).Row If i = Cells(h, "AK") Then count = Cells(h, "BA") goukei = count + goukei End If Next h Worksheets("sheet2").Cells(e, "A") = i Worksheets("sheet2").Cells(f, "B") = goukei e = e + 1 f = f + 1 Next i End Sub
- ベストアンサー
- その他MS Office製品
- Exel VBAで1つずつ代入するには?
VBA初心者です。 日報を入力する作業を、Exel VBAを使って省力化したいと考えています。 1日が1シート、1か月分で1ブックになっています。 いったん別シートにべた打ちしたデータを、VBAで1つずつ各日のシートに貼り付けたいのです。 1枚目のシートのB列のセルB2~B32(1日~31日分に相当)に数値が入っているとして、 これを格納し、 シート「1日」セルF2、シート「2日」セルF2...シート「31日」セルF2 という具合に各シートの同じセル番地のセルに1つずつ貼り付けていくイメージです。 こんなふうに書いてみました。 ---------------------------------------- Sub test() Dim myNum(30) As Integer Dim i As Integer Dim j As Integer For i = 1 To 30 myNum(i) = Worksheets(1).Cells(i + 1, 2) For j = 1 To 30 Worksheets(i + 1).Cells(2, 6) = myNum(i) Next j Next i End Sub ---------------------------------------- でも、これでは1か月の日数の違いに対応できません。 これ以上はお手上げなので、お知恵を貸してください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 複数のシートの1ページ目と2ページ目を連続印刷したい
Vista Excel2007でマクロ作成中の初心者です。 複数のシートが12個あります。(増減あり) それぞれのシートには、必ず2ページの改ページが設定してあります。 この複数シートの1ページ目だけを連続印刷したいです。 また、2ページ目だけを連続印刷したいです。以下のようにしたのですが うまく印刷できません。よろしくお願いします。 Sub シートの1ページ目の印刷() Dim i As Integer For i = 1 To 12 With Worksheets(i) .Range("A1:Q44").PrintOut End With Next i End If End Sub ------------------------------------- Sub シートの2ページ目の印刷() Dim i As Integer For i = 1 To 12 With Worksheets(i) .Range("Q46:Q89").PrintOut End With Next i End If End Sub
- ベストアンサー
- Visual Basic
- エクセルシートのカーソル位置を先頭にそろえて見栄え良く保存したい。
Option Explicit Sub hidari() Dim i As Integer For i = 0 To Worksheets.Count - 1 If Sheets(Worksheets.Count - i).Visible = True Then Application.Goto reference:=Sheets(Worksheets.Count - i).Cells(1, 1), scroll:=True Next End Sub [やりたいこと] ・表示されている全シートについてカーソル位置を先頭(左上隅)にする。 ・スクロールバーもそこに戻す。 ・表示されている1番目のシートを選択した状態にする。 ・1枚のブックに表示・非表示にかかわらず1枚以上のシートがある。 「先頭」はセルA1でも可視セルの一番左上隅でも良いと思います。 勤務先などの文化によっては、ある程度ニーズがあると思うのですが、なんだか難しいのです。 調査・試行錯誤の後で上記のマクロを作ってみましたが、手順が素直でないだけでなく、グラフなどワークシート以外のシートがある場合の対応もできていません。 もっと上手い人の解決法を知りたく投稿します。何卒よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- シート名変更マクロ
「1」というシートのH4にコピー数を入力し、「1」の後ろに挿入するマクロがあります。できたシートの名前は「1(2)」「1(3)」となってしまいます。このシート名を挿入した数の通し番号(「2」「3」に変更することはできるのでしょうか?挿入するシートの数は決まっていません。 Sub シートのコピー() Dim i As Integer Dim n As Integer n = Worksheets("1").Range("H4").Value For i = 1 To n Worksheets("1").Copy Before:=Worksheets(Sheets.Count) Next i End Sub
- ベストアンサー
- オフィス系ソフト
お礼
本当にご丁寧にありがとうございます!!! 目的のものが出来ました!! 提出しましたら、ヘッダーに番号が常に出てるのが欲しい、など最初から言って欲しいこと言われたりしたのでまた頼ってしまうかもしれませんが、お時間ありましたら宜しくお願い致します 本当に有難うございます!!