![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
たとえば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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
特定の複数のシートに同じ処理をさせたい
Excel(エクセル)
-
-
4
VBAで複数シート選択
Excel(エクセル)
-
5
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
6
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
10
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
11
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
12
別のシートから値を取得するとき
Visual Basic(VBA)
-
13
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
14
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
15
マクロを複数シートに実行するには?
Excel(エクセル)
-
16
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
17
マクロを特定の複数シートで実行する方法
Excel(エクセル)
-
18
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
19
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
20
VBAの「for i=1 to cells(…」と「i=cells(…」の違いを教えてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セックスする度に胸が大きくな...
-
恋人とセフレの違いはなんです...
-
週1ペースで会うカップルでデー...
-
高校生の性行為
-
マッチングアプリで会ったその...
-
彼女とのセックスに新鮮味を感...
-
おじさんになってから若い女性に
-
彼氏が私の性格も見た目も褒め...
-
セックスする時なぜ声出るの
-
ラヴホに入ってもまったり語る...
-
セックスについて。 彼が正常位...
-
未成年同士でラブホに行った際...
-
性欲と、人を好きになるって別...
-
体目的?
-
付き合って1ヶ月でヤった後別れ...
-
俗にいうセフレの定義を知りた...
-
女性に質問です。 僕はセックス...
-
セックス前にAV
-
初めて泊まりにきてくれる彼女...
-
一番多くて週に何回セックスし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セックスする度に胸が大きくな...
-
週1ペースで会うカップルでデー...
-
恋人とセフレの違いはなんです...
-
おじさんになってから若い女性に
-
セックスについて。 彼が正常位...
-
彼氏が私の性格も見た目も褒め...
-
セックスの2回目が無理
-
未成年同士でラブホに行った際...
-
彼女が噛んできます。 歯型がつ...
-
初めて泊まりにきてくれる彼女...
-
性欲と、人を好きになるって別...
-
セックス前にAV
-
彼女とのセックスに新鮮味を感...
-
30代前半男性の性欲
-
セックスする時なぜ声出るの
-
母子相姦経験者ですが、日本で...
-
一番多くて週に何回セックスし...
-
付き合って1ヶ月でヤった後別れ...
-
女性に質問です。 僕はセックス...
-
昨日久々に元セフレ(元々頻繁...
おすすめ情報