- ベストアンサー
VBAで複数シート選択
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。#2のお礼に関して、 Sub test01() n = 2 m = 3 Sheets(n).Select For i = n + 1 To n + m - 1 Sheets(i).Select False Next i End Sub でどうですか。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17068)
Sub test01() Dim sh As Worksheet For Each sh In ActiveWorkbook.Worksheets MsgBox sh.Name ' 処理 Next End Sub でどうですか。 問題にしているある1つのシートは、処理を除外する場合がありますが、If文でシート名を 判別して、スキップしてください。
お礼
ありがとうございます。 For Nextは一番最初に考えたのですが、Sheets(n)~Sheets(n+x)に該当する場合、すべて選択するという処理の書き方が分からないのです。 よろしかったらご教示お願いできませんでしょうか?
- bonaron
- ベストアンサー率64% (482/745)
> 新たに追加されたSheets(n)~Sheets(n+x)を選択するような場合です。 要は、シート名の配列を渡せば良いわけで。 サンプルです。 Sub Test1() Dim sh() As String Dim i, n, x n = 5 x = 2 ReDim sh(n To n + x) For i = LBound(sh) To UBound(sh) sh(i) = Sheets(i).Name Next Sheets(sh).Select End Sub
お礼
ありがとうございます。 ReDim?また新たな疑問が湧いてきましたが、なんとか追加されたシートインデックスを(n To n + x)にいれて目的を達することができました。
関連するQ&A
- vbaで全てのシートを選択状態にしたい 印刷
マクロの記録で、全てのシートを選択すると、 Sheets(Array("シート1", "シート2")).Select というのが取得できるのですが、 このコードはシート名が増えたり、シート名が変更されると、使えなくなってしまいます。 全てのシートを選択状態にして、印刷をするvbaをしたいのですが、 シートが増えても使えるvbaコードはありますか?
- ベストアンサー
- その他MS Office製品
- A~B間にある全てのシートを選択する記述を教えてください
VBAの基本がまったくわかっていない初心者です。 マクロで、あるブックの左から3つ目のシートが“A”、末尾が“B”という名前のシートで、そのAからB間のシート全てを選択したいのですが、方法が分かりません。自動記述で選択すると、 Sheets(Array("Sheets1","Sheets2")).Select などとなりますが、シートの数も名前も不定ですので名前では指定できません。 このサイトなどで調べて Sheets(Sheets(3):Sheets.Count).Select などとやってみましたがエラーになります。 丸投げで恐縮ですが、記述のしかたを教えていただけないでしょうか。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
マクロのコードに Sheets("AAA").Select と記述していますが、あるブックに対しマクロを実行したとき、AAAというシートがないときは、AAAというシートがないというダイアログを表示したいのですが、そのようなことが出来ますか? 存在しないシートを選択した時にエラーメッセージを表示するには?
- ベストアンサー
- Visual Basic
- VBAでのエラーです・・。
最近VBAマクロを本を片手に勉強しています。シートを選択するVBAを作っていて次のような記述ができないのか考えています。 dim A as String A = "sheet2,sheet3" Sheets(Array(A)).select とやると、Arrayの行で「インデックスが・・・」というエラーで落ちます。Arrayを変数で指定することができないのですが・・。なにか記述に問題があるのでしょうか?(変数Aに"sheet2", "sheet3"と値が入るようにしても結果はNGでした・・。) 宜しくお願いします。
- 締切済み
- オフィス系ソフト
- VBAの定義と印刷について
VBAで下記の様に定義をして印刷していますが、sheet"AAA","BBB"と同じく 新しいsheet"DDD"もの一緒に印刷したい場合の定義はどうなるのでしょう!教えて頂けますでしょうか。 よろしくお願いします。 別sheetの"sheet1"A列 AAA,BBB,CCC B列 1,2,3 として印刷フラッグがある。 VBAでは Sub sheet1印刷() CNT = 4 CNT1 = 1 CNT2 = 1 TAKE = 0 CK = 30 Do Until CNT2 = CNT Do Until CNT1 = 4 If Sheets("sheet1").Cells(CNT1, 1) = Sheets("sheet1").Cells(CNT2, 3) Then TAKE = Sheets("sheet1").Cells(CNT1, 2) Select Case TAKE Case 1: Sheets("AAA").PrintOut Copies:=1 Case 2: Sheets("BBB").PrintOut Copies:=1 Case 3: Sheets("CCC").PrintOut Copies:=1 End Select CNT1 = 1 Exit Do Else: CNT1 = CNT1 + 1 End If Loop CNT2 = CNT2 + 1 Loop End Sub
- 締切済み
- Visual Basic
- VBAで全シートを一括選択したい
VBAを勉強し始めたばかりの初心者です。 エクセルで非表示に切り替えられているシートを 一括で表示に切り替えできるマクロを作成しているのですが 「全シートの選択」方法がわかりません。 ひとつずつのシートなら 下記のマクロでうまくいくのですが・・・ 2行目の「("Sheet3")」を全シートに切り替えれば うまくいくかなって思っているのですけど 方法がわかりません。 よい方法をご存知の方、よろしくご教授願います。 Sub Macro1() Sheets("Sheet3").Visible = True Sheets("Sheet1").Select End Sub
- ベストアンサー
- Visual Basic
- VBA 一個前のシートのデータをコピーして貼付
(1) Private Sub Workbook_Open()に、マクロの記録で作成した(2)を組み込んで処理をしたいのですが、一つ前のファイルを選択する記述・一つ前のシートを指定する記述が判りません。 ●御教示いただきたい事項 ・(1)で開かれた時、ファイルはマスター.xls が開いていますが、 ファイル名 ccc.xlsが開いた状態にする記述のしかた。 ・(2)が各シートで実行される、共通の記述のしかた。 (1) Private Sub Workbook_Open() Workbooks.Open Filename:="C:\Documents and Settings\aaa\My Documents\bbbマスター\マスター.xls" End Sub (2) ファイル名 ccc.xlsにマクロの記録で作成 Sub Macro4() Range("J11").Select 'Sheets("7月")のセル J11 Sheets("6月").Select Range("I7").Select Selection.Copy Sheets("7月").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
- ベストアンサー
- オフィス系ソフト
- 複数のシートにまたがる列の削除について
こんばんは、複数のシートを選択して特定の列を削除するVBAについて質問させてください。Sheet1とSheet2のA~C列を削除したく、以下のVBAを入力しましたが、削除されるのはSheet1のA~C列のみでSheet2に同様の処理が行われません。 手作業でやると複数のシートを選択のうえ列の削除ができるので、VBAでできないということはないと思うのですが、どのように記述すればよいのでしょうか・・・?!どなたかご教授よろしくお願いいたします! Sheets(Array("Sheet1","Sheet2")).Select Range("A:C").Delete Shift:=xlToLeft
- ベストアンサー
- Excel(エクセル)
- VBAで、エクセルワークシート上の図を選択・削除したい
VBAで、ワークシート上の図をすべて選択して削除するのは、どのように書いたら良いでしょうか?実際の図は一つなのですが、オートマクロで記述すると、 ActiveSheet.Shapes.Range(Array("Picture 3").Select のように、番号が変わってしまいます。
- ベストアンサー
- その他MS Office製品
お礼
imogasiさん、いつもありがとうございます。 Sheets(i).Select Falseで、順次セレクトできるんですね! これならわざわざシート名を配列に入れていかなくても、都度選択していけばいいということがわかりました。 ありがとうございました。