ExcelのVBAで、選択されているシートの前後を選択するマクロとして、下記のようなものを作成してメニューボタンに割り付けて使っています。で、質問は、選択されたシートがシート見出しの真ん中になるようにすることって出来ますか?どなたか?詳しい方いらっしゃったら教えてください。宜しくお願い致します。(シートの総数は100ぐらいはあります)
Sub Sheet_Move_Right()
On Error Resume Next
ActiveSheet.Next.Select
On Error GoTo 0
End Sub
Sub Sheet_Move_Left()
On Error Resume Next
ActiveSheet.Previous.Select
On Error GoTo 0
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
何がどううまく行かないの?
何ができるかではなく
何をどうしたが、どううまく行かないのかが分らないと
回答の使用が無いけどね
因みに、補足の条件程度ならすべてクリアしていますよ
提示したマクロはイベントなので
何も考えずにthisworkbookモジュールへコピペしてごらん
そして、マウスでシートタブを選択したり
マクロでシートをselectしてみてごらんよ
その上で分らないことなどを補足してね
No.2
- 回答日時:
こんな感じで
'thisworkbookモジュールへコピペ
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
ActiveWindow.ScrollWorkbookTabs Sheets:=Sh.Index - 5
End Sub
最後の行の「-5」をシートタブが希望の位置へ来るように変更してください
目安として、表示されているタブの半分の数値
10個のタブが表示されていれば「-4、-5、-6」辺りを設定
7個なら「-3、-4」位だと思います
参考まで
この回答への補足
早速のご指導ありがとうございます。
たとえば、シート数が"Sheet1"~"Sheet200"まで、200枚ある場合にSheet50を、Worksheets("Sheet50").Select
で選ぶとします。その時にシート見出しの中心に来るのでしょうか?使い方が判っていないせいか?うまく行きません!
Selectを実行する前に、Sheet200を選んでいても、Sheet1を選んでいても?問題なく動きますか?
宜しくお願い致します。
No.1
- 回答日時:
こんな感じかな?
Sub Sheet_Move_Middle()
If Sheets.Count = 1 Then End
ActiveSheet.Move After:=Sheets(Int(Sheets.Count / 2))
End Sub
この回答への補足
こんばんわ!!
説明が悪くてすみません。
総シート数の真ん中のシートの選択の方法ではなくって、任意のシートを選択すると選択されたシートが、シート見出しの中心に表示されるという意味です!!たとえばシートがSheet1~Sheet200まであったとすると、当然ディスプレイ上にSheet1~Sheet200まで一気に表示出来る訳ではないと思います。ディスプレイの解像度にもよると思いますが、せいぜい10シート分の表示が関の山だと思います。で、シート見出しに表示されている中で、選択シートが中心にくる方法を知りたいと思っています。まず、ディスプレイの解像度と、windowオブジェクトの関係を計算しないと駄目だと考えますが?あさはかな考えでしょうか?再度、ご指導のほど宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
エクセルで複数のシートに画像...
-
Accessのテーブルを既存のExcel...
-
特定のシートのみ再計算させな...
-
Wordで差し込み印刷時に表示す...
-
ワークシートそのものの色を変...
-
EXCELの「シートの見出し」のフ...
-
accessへエクセルの複数のシー...
-
EXCELの図形(テキストボックス)...
-
PowerQueryで行数の指定はでき...
-
エクセルでシートを追加したと...
-
【ExcelVBA】マクロの入ったシ...
-
エクセル 非表示のシートをハ...
-
エクセルのシート連番の振り直し
-
エクセル、特定のシートにパス...
-
エクセルを開くとメニューバー...
-
SUMIF関数【複数のシート...
-
【Excel VBA】コンボボックスで...
-
指定したシート名以外を非表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルで複数のシートに画像...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
ワークシートそのものの色を変...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルの2つのシートを並び...
-
EXCELの図形(テキストボックス)...
-
ハイパーリンクでジャンプした...
-
エクセルのシート連番の振り直し
-
特定の複数のシートに同じ処理...
-
エクセルのシー名を二段表示に...
-
Wordで差し込み印刷時に表示す...
-
エクセルで、シートの名前を変...
-
エクセルでリンク貼り付けした...
-
エクセル、特定のシートにパス...
-
accessへエクセルの複数のシー...
-
Accessのテーブルを既存のExcel...
-
【Excel VBA】データ貼り付け先...
-
EXCELの「シートの見出し」のフ...
おすすめ情報