マクロで戻るボタンを押したらシートの1枚目に戻る方法
- 各シートに「戻る」というボタンを作り、そのボタンを押すとシートの1枚目に戻るようなマクロを作成したいです。
- マクロを使って、シートの1枚目以外に作成された「戻る」ボタンをクリックした場合に、自動的にシートの1枚目に戻るような指示を入れてみました。
- 戻るボタンを押したらシートの1枚目に戻るマクロを、各シートに設置する方法を紹介します。マクロを使って各シートにボタンを追加し、そのボタンを押すとシートの1枚目がアクティブになるようにしてみましょう。
- ベストアンサー
マクロ 戻るボタンを押したらシートの1枚目に戻る
各シートに「戻る」というボタンを作りましたが、 「ボタンを押したらシートの1枚目をアクティブにする」というマクロを付けたいです。 下記は、『「戻る」というマクロを2枚目のシート以降すべてに付ける』というマクロです。 このマクロの中に、各シートの「戻る」ボタンを押せば、シートの1枚目に戻るような 指示を入れたいです。 分かる方いましたら、お願いします。。。 ※下記のマクロは以前ご回答いただいたマクロを引用したものです。 /////////////////////////////////// Sub 戻るボタン設置() Dim Sht As Worksheet For Each Sht In Worksheets If Not Sht.Name = Worksheets(1).Name Then With Sht For i = 1 To 1 '幅140、高さ20のボタンを追加 .Buttons.Add(900 * i, 10, 140, 20).Text = "戻る" Next i End With End If Next Sht Sheets(1).Select End Sub
- tanpopopoketto5
- お礼率78% (45/57)
- オフィス系ソフト
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1をアクティブにするだけのマクロ「シート1選択」を作り、ボタンを押した時のアクションに設定しました。 Sub 戻るボタン設置() Dim Sht As Worksheet For Each Sht In Worksheets If Not Sht.Name = Worksheets(1).Name Then With Sht.Buttons.Add(900, 10, 140, 20) .Text = "戻る" .OnAction = "シート1選択" End With End If Next Sht Sheets(1).Select End Sub Sub シート1選択() Sheets(1).Select End Sub
関連するQ&A
- マクロ ボタンと同じ名前のシートをアクティブにする
ボタンが1シート目に28個並んでいます。 ボタンには、「あああ」「いいい」など、名前が表記されており、まだ「マクロの登録」を行っていません。 「ボタンをクリックすると、ボタンと同じ名前のシートをアクティブにする」 というマクロを、ボタンに登録したいです。 また、常に28個ボタンがあるというわけではありません。25個や、26個になる場合もあります。 ※1シート目にボタンを作り、そのボタンに名前を付ける作業は、 前回教えていただいた下記のマクロを行いました。 Sub ボタン設置() With Worksheets(1) For i = 1 To (Worksheets.Count - 1) nX = 145 * (1 + ((i - 1) Mod 8)) nY = 30 * (1 + Int(i / 8)) .Buttons.Add(nX, nY, 140, 20).Text = Worksheets(i + 1).Range("I2").Value Next i End With End Sub
- ベストアンサー
- Excel(エクセル)
- マクロ 各シートからシート1に戻るボタンを設置する
各シートの同じ位置に「シート1に戻る」ボタンを付けるマクロを実行したいです。 前回教えていただいたことから、ボタンを設置するマクロはわかったのですが、 『2枚目以降のシートから、シートが終わるまで、各シートにボタンを設置する』マクロがわかりません。 1枚目は目次?的なページですので、 2枚目以降から、シートが終わるまで、決められた位置に「戻る」ボタンをつける。 という作業をマクロに記憶させたいと考えています。 ※下記は、こちらで教えていただいたものを参考にしたマクロです。 「戻る」という言葉をどこに入れてよいかもわからりません。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ Sub 戻るボタン設置() With ActiveSheet For i = 1 '幅140、高さ20のボタンを追加 .Buttons.Add(145 * i, 120, 140, 20).Text = i Next i End With End Sub
- ベストアンサー
- Visual Basic
- このマクロを少し修正したい
先日、こちらのサイトで下記のマクロを作っていただきました。 エクセルの置換えシートを使って、別のエクセルシートを一括置換えするマクロです。 ただ、置換えしたいシートのセルが結合していたり、文字の前に空欄が入っていると変換されません。 上記も認識しての置換えは、下記のマクロを修正して可能でしょうか? 修正したマクロを教えていただけると助かります。 With ThisWorkbook If ActiveSheet Is .Worksheets(1) Then Exit Sub For i = 1 To .Worksheets(1).Range("A65536").End(xlUp).Row ActiveSheet.Cells.Replace _ What:=.Worksheets(1).Range("A" & i).Value, _ Replacement:=.Worksheets(1).Range("B" & i).Value, _ LookAt:=xlPart, SearchOrder:=xlByColumns Next End With End Sub
- ベストアンサー
- その他(ソフトウェア)
- Excelマクロにてシートの削除を行いたいです。
初めて投稿させて頂きます。 質問内容 Excelのマクロを使用して指定シート以外のシートの削除を行いたいです。 前条件 外部CSVファイルを取込み、データによってシートを追加して振り分けています。 再度マクロを実行した場合特定のシートを残し(フォーマット等)、他のシートを削除してからデータの振り分けを実施する予定です。 やってみた事 下記の様に書いて実施してみたのですがエラーとなってしまいます。 Sub Clear() Application.DisplayAlerts = False For I = 1 To Worksheets.Count If (Worksheets(I).Name <> "sheet") Then Sheets(Worksheets(I).Name).Select ActiveWindow.SelectedSheets.Delete End If Next I Application.DisplayAlerts = True End Sub 上記の書き方だと1シート毎削除なので、選択したシートを一括で削除出来るとうれしいです。 どなたかご存知の方お願いします。
- ベストアンサー
- Visual Basic
- リストボックスからシートを選びアクティブにしたい
Excel2007でマクロ作成の初心者です。 リストボックスで選択した、リスト項目のワークシートを表示したいのですが、 「インデックスが有効範囲にありません」というエラーがでます。 どうしたらよろしいでしょうか? よろしくお願いします。 ’-------------------------------- Private Sub 顧客リスト_Click() With 顧客リスト Worksheets(.list(.ListIndex - 0)).Activate’----ここでエラー発生します End With End Sub ----------------------------- Private Sub UserForm_Initialize() Workbooks("請求.xls").Activate Dim i As Integer Const EXCEPT_NAME = "経理●一覧●基本●" For i = 1 To Worksheets.Count If InStr(EXCEPT_NAME, Worksheets(i).Name & "●") = 0 Then 顧客リスト.AddItem i & " " & Worksheets(i).Name End If Next i End Sub ’---------------------------
- ベストアンサー
- Visual Basic
- マクロボタンのシートをコピーしたいのですが。。。
こんにちは。 たくさんあるファイルを一つのファイルにシート別にまとめるマクロを作成しました。 毎月同じことをするので、マクロボタンを作成したところ、作成したつきのボタンは正常に作動しますが、このシートを新しいBOOKにコピーして翌月分を作成したところ、マクロが消えてしまい、実行されません。 毎月のことなので、いちいち『前月のマクロをコピーして実行』などしないで、このボタンをコピーすればあとは押すだけ♪なんていう風にうまくいかないものでしょうか? かなり初心者な者で、上手な説明が出来ず申し訳ございません。 Sub 精算用5月() Dim fs As Variant Dim s As Variant Dim w As Workbook fs = Application.GetOpenFilename(Title:="select xls(s)", MultiSelect:=True) If Not IsArray(fs) Then Exit Sub For Each s In fs Set w = Workbooks.Open(Filename:=s) w.Worksheets(1).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count) ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = Application.Substitute(w.Name, ".xls", "") w.Close savechanges:=False Next Worksheets(1).Range("A1").Formula = "=SUM(" & Worksheets(2).Name & ":" & Worksheets(Worksheets.Count).Name & "!A1)" End Sub 上記のマクロでボタンを作成しました。 よろしくお願いいたします。
- ベストアンサー
- 財務・会計・経理
- 複数のシートの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
- エクセルで複数のシートに罫線を引くマクロを教えてください。
エクセルで複数のシートに罫線を引くマクロを教えてください。 エクセルの表を担当者名でシート分割後、空白セル以外に罫線を引きたいのですが 複数シートに罫線を引くマクロを教えてください。 いくつか参考にさせていただき現状以下の様になっています。 元データというシートにAからGまで項目があります PJNo. PJ名 棟No. 棟名 取引先名 書類 担当者 1111 PJ1 10 棟1 取引先1 1 東京 1112 PJ2 11 棟2 取引先2 2 大阪 1113 PJ3 12 棟3 取引先3 3 名古屋 Sub 担当別シート作成() Application.ScreenUpdating = False For i# = 2 To Worksheets("元データ").Cells(2, 2).End(xlDown).Row j# = 1 '検索中の人のシートが既にできているかを判断する。 For Each sheet_name In Worksheets If sheet_name.Name = Worksheets("元データ").Cells(i, 7).Value Then j = 7 Exit For End If Next '検索中の人のシートがない場合、新規に作成する。 If j = 1 Then Worksheets.Add After:=Worksheets(Worksheets.Count) Worksheets(Worksheets.Count).Name = Worksheets("元データ").Cells(i, 7).Value For j = 1 To 7 Worksheets(Worksheets.Count).Cells(1, j).Value = Worksheets("元データ").Cells(1, j).Value Next j End If 'データのコピー For j = 7 To 1 Step -1 Worksheets(Worksheets("元データ").Cells(i, 7).Value). _ Cells(Worksheets(Worksheets("元データ").Cells(i, 7).Value). _ Cells(65535, 1).End(xlUp).Row + 1, j).Value = Worksheets("元データ").Cells(i, j).Value Next j Next i 'それぞれのシートの列幅を最適化します。 For Each sheet_name In Worksheets sheet_name.Columns("A:G").AutoFit Next '---- Dim c As Range Range("A1").Select Set c = Selection.SpecialCells(xlCellTypeLastCell) Range(Cells(1, "A"), c).Select (省略)以下罫線を引くマクロ End Sub
- ベストアンサー
- オフィス系ソフト
- リストボックスからシート削除のマクロを合体したい
Windows7 Excel2007でマクロ作成中の初心者です。 やりたいことは、リストボックスからシートを選択し、そのシートを削除する。 削除したら、リストボックスの中の、シート選択状態を解除し、その項目だけを 削除することです。 以下のコードで出来たのですが、これを統合して一個のコードにしたいです。 どうしたらよろしいでしょうか。 Private Sub 顧客削除_Click() Dim i As Integer Dim btn Dim name As String With 顧客リスト For i = 0 To .ListCount - 1 If .Selected(i) Then name = .list(i) '選択されたリストを変数に格納 btn = MsgBox("本当に、 " & name & " さんを削除していいですか?", _ vbYesNo, "削除の確認") If btn = vbYes Then Application.DisplayAlerts = False Worksheets(Mid(.list(.ListIndex - 0), InStr(.list(.ListIndex - 0), " ") + 1)).Delete Application.DisplayAlerts = True リストボックスの項目削除 End If End If Next i Worksheets(1).Activate End With ActiveWorkbook.Save Application.ScreenUpdating = True End Sub ----------------------------- Sub リストボックスの項目削除() Dim i As Integer For i = 顧客リスト.ListCount - 1 To 0 Step -1 If 顧客リスト.Selected(i) Then 顧客リスト.RemoveItem (i) Exit For End If Next i End Sub
- ベストアンサー
- Visual Basic
お礼
ご回答ありがとうございます。 作業ができましたので、お礼申し上げます。