- ベストアンサー
右からループするにはどうすればいいですか?
Sub test() For Each s In Worksheets Debug.Print s.Name Next End Sub これでシート名を取得する際は左から取得されますが 右からループするにはどうすればいいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
関連する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(エクセル)
- どちらを使った方がいいでしょうか?
Sub test1() Dim ws As Worksheet For Each ws In Worksheets Debug.Print ws.Name Next End Sub Sub test2() Dim ws As Variant For Each ws In Worksheets Debug.Print ws.Name Next End Sub どちらも問題なく実行されますが、 VBA的にどちらを使った方がいいでしょうか?
- ベストアンサー
- Visual Basic
- 任意でsの値にシート名を入れることは可能でしょうか
Sub test() Dim s As Worksheet For Each s In Worksheets Next End Sub このようなシート名を左からループする際に、任意でsの値にシート名を入れることは可能でしょうか? 例えば、 s="シート3" などです。
- ベストアンサー
- オフィス系ソフト
- Worksheet Worksheets オブジェ
「Worksheetオブジェクト」と「Worksheetsオブジェクト」は何が違うのでしょうか? 使い方もいまいちわかりません。 この二つを使う時は、 Sub test1() Dim w As Worksheet For Each w In Worksheets Debug.Print w.Name Next End Sub とするときなのですが、 なぜ、変数の宣言をする時は、Worksheetを使い、 ワークシートの数を数える時は、Worksheetsを使うのでしょうか?
- ベストアンサー
- オフィス系ソフト
- 「.Name」がエラーになる理由は?
Sub 全てのシート名を取得する() Dim w As Worksheet Dim 行 As Long 行 = 1 For Each w In Worksheets Debug.Print w.Name 行 = 行 + 1 Next End Sub Sub 全てのブック名を取得する() Dim wb As Workbooks Dim 行 As Long 行 = 1 For Each wb In Workbooks Debug.Print wb.Name 行 = 行 + 1 Next End Sub 標準モジュールに ふたつのプロシージャーを作ったのですが 「全てのシート名を取得する」は問題なく動作しますが 「全てのブック名を取得する」は「.Name」の部分が 「コンパイルエラー メソッドまたはデータ メンバが見つかりません。」 (Error 461) になってしまいます。 なぜでしょうか? 全てのブック名を取得することはできないのですか?
- ベストアンサー
- オフィス系ソフト
- ブックのすべてのシート名を取得するコード
何が間違いなんでしょうか? エクセル2003です。 ブックのすべてのシート名を取得するコードを考えてるのですが なぜか一番左のシート名しか取得できません。 コードは↓です。 ----------------------------------- Sub test01() Dim x As Workbook For Each x In Workbooks Debug.Print ActiveSheet.Name Next End Sub ----------------------------------- できないので「Workbooks」の部分を「ThisWorkbook」に変えてみたところ 実行時エラーになってしまいました。 ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセス For Eachの時点 絞る
For Eachの時点で、コマンドボタンのみに絞ることは可能ですか? Sub Sample() Dim myFormName As String Dim ctl As Control myFormName = "フォーム1" For Each ctl In Forms(myFormName).Controls Debug.Print ctl.Name Next ctl End Sub これでフォーム上の全てのコントロール名を取得できますが ループの時点でコマンドボタンのみを抽出できますか? For Each ctl In Forms(myFormName).Controls If ctl.ControlType = acCommandButton Then Debug.Print ctl.Name End If Next ctl こうすれば、コマンドボタンのみ絞れますが コントロールの数が多すぎて、処理に時間がかかります。 なので For Each ctl In Forms(myFormName).Controls の部分の、ループの時点でコマンドボタンを絞りたいのですが 絞れる方法があれば教えてください。
- 締切済み
- オフィス系ソフト
- 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だとエラーになるようです どうすればリセットできますか?
- ベストアンサー
- オフィス系ソフト
- パワポ vba 全てのスライドをループする
エクセルなら 全てのシートをループして作業する場合は For Each s In Worksheets Next でできますが、 パワポで全てのスライドをループして 各スライドで作業したい場合は、 どのようなコードになるのでしょうか?
- ベストアンサー
- PowerPoint(パワーポイント)
お礼
ありがとうございました。