別ブックからシートをコピーするのに以下のコードを使用しています。
ブック内の複数のシートの中からシート名を指定してコピーするものです。
これを
〇現在はシート名を指定しています。
各シートのセルA1にはシート№(1~120まで)が振られています。
A1のセルの値が、コードで指定した値(1,16,34,6 など複数指定したいです)と同じシートを
コピーしたいです。
〇貼付け先をWorksheets(1)、Worksheets(2)・・と指定していますが、末尾に順に追加できるよう
にしたいです。
このようなことが可能でしょうか?
宜しくお願い致します。
Sub シート取込()
Dim wb As Workbook
Dim wb2 As Workbook
Set wb = Application.ActiveWorkbook
Set wb2 = Application.Workbooks.Open("C:\aaa\bbb\Desktop\別.xlsm", ReadOnly:=True)
wb2.Sheets("宮城").Copy after:=wb.Worksheets(1)
wb2.Sheets("広島").Copy after:=wb.Worksheets(2)
wb2.Sheets("沖縄").Copy after:=wb.Worksheets(3)
wb2.Sheets("兵庫").Copy after:=wb.Worksheets(4)
Set wb = Nothing
wb2.Close SaveChanges:=False
Set wb2 = Nothing
End Sub
No.3ベストアンサー
- 回答日時:
No.1の者です。
先ずは、Splitの使い方の例を示しただけで、実際にこの関数を使うかは
質問者さん自身になるかと思います。
>myNo = Split("1,16,34,6", ",")
前半は、この様なデータの場合で、myNo(0)~myNo(3)にデータが入る。
>myNo = Split(Range("A1").Value, ",")
実際に、シートA1からデータを取る場合は、上記の様なやり方かな?と。
ただ、対象のシートがアクティブ状態でないと、違うシートからデータを
取る事になるので、一例としてメモに。
>wb2.Sheets("宮城").Copy after:=wb.Worksheets(1)
前半の"宮城"などや、最後の(1)は、どの様にされるかわからないので、
回答が難しいです。
例えば、下記の様に変更する事も可能かと思います。
(手書きなので、若しかしたらエラーになるかも知れません。)
Dim I As Long , mySh As Variant
mySh = Split("宮城,広島,沖縄,兵庫",",")
For I=1 to 4
wb2.Sheets(mySh(I-1)).Copy after:=wb.Worksheets(I)
Next I
No.2
- 回答日時:
こんばんは
こういう事かな?
For Each idx In Split(Range("a1"), ",")
wb2.Sheets(CInt(idx)).Copy after:=wb.Worksheets(Worksheets.Count)
Next
No.1
- 回答日時:
こんばんは。
データが増減した時に、宮城、広島とかを、どうされたいか不明ですが、
例えばSplitを使えば、データを分割する事が可能ですね。
Sub test()
Dim myNo As Variant
myNo = Split("1,16,34,6", ",") ’ Split(Range("A1").Value, ",")
MsgBox myNo(0)
MsgBox myNo(1)
MsgBox myNo(2)
MsgBox myNo(3)
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
【VBA】色のついたシート名を取得
-
セルの値によって、シート見出...
-
ブック名、シート名を他のモジ...
-
別のシートを参照して計算する方法
-
XL:BeforeDoubleClickが動かない
-
VBAで同じシート名のコピー時は...
-
マクロを使って、シート印刷完...
-
ExcelのVBAのマクロで他のシー...
-
VBA 存在しないシートを選...
-
VBA 最終行まで数式をコピーする
-
特定の文字を含むシートだけマ...
-
【Excel VBA】Worksheets().Act...
-
Access エクセルシート名変更
-
ExcelVBA シート名を複数セルか...
-
エクセルVBA 別シートからのコ...
-
同じ作業を複数のシートに実行...
-
実行時エラー'1004': WorkSheet...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報
ご回答ありがとうございます。
データが増減した場合、都度 wb2.Sheets("宮城").Copy after:=wb.Worksheets(1)
の"宮城"を消して別のシート名を入れたりしていたのですが、別ブックのシート№で指定したほうがわかりやすい思うようになりました、かつ
wb.Worksheets(1)の番号をいちいち振るのも面倒なので、末尾に自動で追加できないかと思い質問しました。順番はどうでもよいです。
言葉足らずで申し訳ありません。
コードを貼り付けてみたところ、 ’ Split(Range("A1").Value, ",")部分がコメント扱いになってしまいました、すいませんおしえていただけませんでしょうか?