- ベストアンサー
任意でsの値にシート名を入れることは可能でしょうか
Sub test() Dim s As Worksheet For Each s In Worksheets Next End Sub このようなシート名を左からループする際に、任意でsの値にシート名を入れることは可能でしょうか? 例えば、 s="シート3" などです。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- 一回のループで次のオブジェクトの値も同時に取得する
一回のループで次のオブジェクトの値も同時に取得するにはどのようなコードを書けばよいですか? 例えば、 ブックにシートが Sheet1 Sheet2 Sheet3 あり、 Sub Sample1() Dim s As Worksheet For Each s In Worksheets Debug.Print s.Name Next End Sub のように、全てのシート名を取得する場合、 Sheet1とSheet2を1回のループで同時に取得する方法はありますか? Sub Sample1() Dim s As Worksheet For Each s In Worksheets Debug.Print s.Name Debug.Print s+1.Name Next End Sub みたいな方法があるのか知りたいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ブック内のシート名を右から取得したい
Sub Sample() Dim s As Worksheet For Each s In Worksheets Debug.Print s.Name Next End Sub このコードを実行すると、左からシート名をひとつずつ取得しますが 右から取得して書き出すにはどうすればいいでしょうか?
- ベストアンサー
- Excel(エクセル)
- 最後の3枚を除くシート名をセルに表示したい。
Excel2007でマクロ作成の初心者です。 シート名をセルに表示したいのですが、シートの最後の3枚だけは セルに表示したくないです。 以下やってもできませんでした。 Sub シート名をセルに() Dim ws As Worksheet Dim i As Integer Const EXCEPT_NAME = "請求書 経理部 一覧表" i = 0 For Each ws In Worksheets i = i + 1 Cells(i + 3, 4) = ws.Name Next End Sub たとえば、Worksheets.Count -3 の数だけセルに表示するにはどうしたらよいでしょうか。
- ベストアンサー
- Visual Basic
- AddItem をクリアしたい
UserForm1.ListBox1.AddItem をクリアしたいです。 エクセルのユーザーフォームに全てのシート名を追加してるのですが Sub a() Dim s As Worksheet For Each s In Worksheets UserForm1.ListBox1.AddItem s.Name Next End Sub を実行する度に追加されてしまいます。 Sub a() Dim s As Worksheet UserForm1.ListBox1.AddItem Null For Each s In Worksheets UserForm1.ListBox1.AddItem s.Name Next End Sub のように、最初にリセットしてから追加したいのですが どうもNULLだとエラーになるようです どうすればリセットできますか?
- ベストアンサー
- オフィス系ソフト
- For Each でシートのループ
簡潔に質問する為に以下のマクロを見て頂きたいのですが、 この場合sheet1,sheet2,sheet3のそれぞれの(1,1)に2が発生せず 現在目でみているシートにのみ有効なのですが、全シートに有効に するには何が足りないのでしょうか Sub aaa() Dim ws As Worksheet For Each ws In Worksheets Cells(1,1)=2 Next End Sub
- ベストアンサー
- オフィス系ソフト
- VBAですべてのワークシートを処理したい
ブック内の全ワークシートに対して同じ処理をするために、 For each ワークシート in Worksheets ~処理~ Next ワークシート を使ってみたのですが、その時にアクティブになっているシートしか処理されません。たとえば次のようなシンプルなコードでも、同様です。何が抜けているのでしょうか。 Sub allworksheets() Dim WS As Worksheet For Each WS In Worksheets Range("a1") = "123" Next WS End Sub マクロの勉強を始めたばかりで、基本的なことでつまづいてます。よろしくお願い致します。
- ベストアンサー
- Visual Basic
- セルに対してFor Each~In~Nextを使う
セルに対してFor Each~In~Nextを使う事は出来ない? シートやブックに対してループする時は Sub aaa() Dim w As Worksheet For Each w In Worksheets MsgBox w.Name Next End Sub 等を使いますが、 A1に「あ」 A2に「い」 A3に「う」 が入っている場合、 Sub bbb() Dim i As Long For i = 1 To Range("a65536").End(xlUp).Row MsgBox Cells(i, 1) Next End Sub で、全ての値を取得できますが、 For~to~nextではなく セルに対してFor Each~In~Nextを使う方法があれば教えてください。 上記のように Dim w As Worksheetは宣言できますが Dim c As Workcellとはできませんでした。 なぜわざわざFor~to~nextでできる事をFor Each~In~Nextでやりたいかと言うと、 シートやブックはFor~to~nextでできるのに、セルはFor~to~nextができない理由を知りたいからです。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- マクロで複数のシートを保護&パスワードをかける為に下記式を作成しました
マクロで複数のシートを保護&パスワードをかける為に下記式を作成しましたが エラー”400”のみ出て上手く行きませんでした。 どこか式がおかしいのでしょうか。。。 一応式を入力しておきます。 超初心者でまったく意味がわからないので、どなたか宜しくお願い致しますm(__)m Sub AllProtect() Dim sh As Worksheet Dim myPassword As String myPassword = InputBox("パスワードを入力してください", "パスワード") For Each sh In Worksheets sh.Protect Password:=1234 Next End Sub Sub AllUnprotect() Dim sh As Worksheet Dim myPassword As String myPassword = InputBox("パスワードを入力してください", "パスワード") For Each sh In Worksheets sh.Unprotect Password:=1234 Next End Sub
- ベストアンサー
- オフィス系ソフト
- マクロ・複数シートに適用するには?
初心者です。以下のマクロを組みました。 これを複数シートに適用するにはどうしたらよいのでしょうか? worksheets selectではうまくいきませんでした>< 具体的には1~80までのシートが数字で分けられており、 「目次」と「新規」以外の全てに適用したいです。 Sub Macro3() Dim sl As String Dim mySht As Worksheet sl = Range("A65536").End(xlUp).Address Range("B1", sl).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True For Each mySht In Worksheets Next End Sub
- ベストアンサー
- その他MS Office製品
お礼
回答ありがとうございました。