たとえばSheet1とSheet2を一度に選択する場合、
Sub Macro6()
Sheets(Array("Sheet1", "Sheet2")).Select
End Sub
と書くと思います。
ワークシートを変数で書く場合は
Sub test()
Dim ws1 As Worksheet, ws2 As Worksheet
Sheets(Array(ws1.Name, ws2.Name)).Select
End Sub
と、いちいち名前で指定しなければならないのでしょうか?
それとももっと別の書き方があるのでしょうか?
No.5ベストアンサー
- 回答日時:
> この場合、仮にシート1つだけなら
> ws(1).Move
> で大丈夫ですよね?ところが複数になると
> Sheets(Array(ws(1).Name, ws(2).Name)).Move と、わざわざNameで名前を指定するしかないんでしょうか?
この辺はわたしも詳しくないのですが、ws(1)やws(2)はオブジェクト型変数ですから、Array関数ではまとめられないのではないでしょうか?
どうしてもオブジェクト変数のまま使用したいのなら
ws(1).Select
ws(2).Select False
ActiveWindow.SelectedSheets.Move となると思います。
ならば
Sheets(Array(ws(1).Name, ws(2).Name)).Move の方がよほど簡単ですよね。
> ならば
> Sheets(Array(ws(1).Name, ws(2).Name)).Move の方がよほど簡単ですよね。
たしかにそのとおりでしたね。
ありがとうございます。
No.4
- 回答日時:
No.3です!
コードを見させていただきました。
Sheet1・Sheet2のSheet名が同じ、またはあるきまったセルの値をSheet名にするのであれば
Sheet名を指定せずにできそうな感じですが、
コードを拝見する限りにおいては
Sheet1を「回答」というSheet名に!
Sheet2を「詳細」というSheet名にするにあたり、規則性がないようなので
はやりそれぞれのSheet名を指定するのが間違いないような気がします。
この程度しか判りませんが、Sheet名を指定せずにできる方法があればごめんなさいね。m(_ _)m
No.3
- 回答日時:
こんばんは!
的外れならごめんなさい。
Sheet1とSheet2を選択した後、何かの操作をする訳ですよね?
考え方として、両Sheetを一気に!というのではなく、Sheet1の操作が終わればSheet2の操作に!という方法にすればどうでしょうか?
仮にSheet1・Sheet2のA1セルにABCDと表示するコードは↓のような感じで大丈夫だと思います。
Sub test()
Dim i As Long
For i = 1 To 2
Worksheets(i).Cells(1, 1) = "ABCD"
Next i
End Sub
※ この場合Sheet名は一切関係なく、Sheet見出しの左側から1番目・2番目のSheetのA1セルに
ABCDと表示されるはずです。
参考にならなかったら読み流してくださいね。m(_ _)m
ありがとうございます。
実は、だいぶ略しましたが以下のようなことをしております。
Sub ファイル作成()
Dim ws(2) As Worksheet
Dim myPth As String, dp As String
Static myS As Long
myS = myS + 1
myPth = ThisWorkbook.Path & "\" & Format(Date, "YYYYMMDD") & "(" & Format(myS, "00") & ")"
MkDir myPth
Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
Set ws(0) = Sheets("Sheet2")
Set ws(1) = Sheets(Sheets.Count)
Set ws(2) = Sheets.Add(After:=Sheets(Sheets.Count))
With ws(2)
'略
.Range("AF2").Value = ws(0).Range("B1").Value
dp = .Range("AF2").Value
End With
With ws(1)
'略
.Range("A1").Value = dp
End With
MsgBox dp & "を作成しました。"
Sheets(Array(ws(1).Name, ws(2).Name)).Move
Sheets(1).Name = "回答"
Sheets(2).Name = "詳細"
ActiveWorkbook.SaveAs Filename:=myPth & "\" & dp & ".xls"
ActiveWindow.Close
End Sub
この場合、仮にシート1つだけなら
ws(1).Move
で大丈夫ですよね?ところが複数になると
Sheets(Array(ws(1).Name, ws(2).Name)).Move
と、わざわざNameで名前を指定するしかないんでしょうか?
No.2
- 回答日時:
記述方法は様々だと思いますが、他の方法では
インデックス番号で指定する方法
Sheets(Array(ws1.Index, ws2.Index)).Select
すべて選択したいなら、
Sheets.Select
こんな方法もあります。
ws1.Select
ws2.Select False
>と、いちいち名前で指定しなければならないのでしょうか?
すべて選択する場合以外では、いちいち名前で指定するのが普通です。
> すべて選択する場合以外では、いちいち名前で指定するのが普通です。
そうなんですか・・・・・・。
せっかくws1,ws2とオブジェクトで変数を指定したのに、わざわざその名前を取得しなければならないことに違和感がありました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) userformでSheetを選択して開くコード 1 2023/05/15 16:27
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) vbaで列幅について 1 2022/11/15 08:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
-
特定の複数のシートに同じ処理をさせたい
Excel(エクセル)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
-
4
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
5
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
UserForm1.Showでエラーになります。
工学
-
9
VBAで複数シート選択
Excel(エクセル)
-
10
VBAでワークブックの名前を変数にして開かせる?
Excel(エクセル)
-
11
VBAで変数に関数式の結果をセットする場合
Excel(エクセル)
-
12
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
13
作ったマクロを複数のシートで実行できるようにしたい。
Excel(エクセル)
-
14
Excelマクロ シート名を変数で指定
Excel(エクセル)
-
15
【Excel VBA】 WorksheetやRangeオブジェクトとして宣言した変数の開放は必要でしょうか?
その他(Microsoft Office)
-
16
マクロを複数シートに実行するには?
Excel(エクセル)
-
17
【VBA】コピー&複数個所のペースト繰り返し
Excel(エクセル)
-
18
VBA Constの指定シートのセルを指定する方法
Visual Basic(VBA)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
20
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セックスする度に胸が大きくな...
-
週1ペースで会うカップルでデー...
-
恋人とセフレの違いはなんです...
-
彼女が噛んできます。 歯型がつ...
-
おじさんになってから若い女性に
-
付き合って1ヶ月でヤった後別れ...
-
セックスについて。 彼が正常位...
-
オナ禁中はセックスしてもいい...
-
30代前半男性の性欲
-
初めて泊まりにきてくれる彼女...
-
セックスする時なぜ声出るの
-
彼氏が私の性格も見た目も褒め...
-
俗にいうセフレの定義を知りた...
-
彼女とのセックスに新鮮味を感...
-
僕の心が狭いのでしょうか…?セ...
-
部活の後輩の女子をセックスに...
-
セックスの2回目が無理
-
彼女と旅行
-
セックス前にAV
-
彼女とのセックスの頻度につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セックスする度に胸が大きくな...
-
週1ペースで会うカップルでデー...
-
セックスについて。 彼が正常位...
-
恋人とセフレの違いはなんです...
-
彼女とのセックスに新鮮味を感...
-
初めて泊まりにきてくれる彼女...
-
彼女が噛んできます。 歯型がつ...
-
おじさんになってから若い女性に
-
30代前半男性の性欲
-
セックスの2回目が無理
-
5年くらいSEXしてなかったから...
-
性欲と、人を好きになるって別...
-
セックス前にAV
-
ドM 私はとてもドMで、彼と付き...
-
彼氏が私の性格も見た目も褒め...
-
女子高生です。 寝起きの後に必...
-
一番多くて週に何回セックスし...
-
胸が揺れるくらい激しいセック...
-
彼女いない歴年齢は恥ずかしい...
-
動物みたいなセックス、交尾だ...
おすすめ情報