![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつも親切に教えてくださりありがとうございます。
今回悩んでいるのは下記内容です。
・シート「①」「①の元データ」「②」「②の元データ」……のように、①~⑮までの
元データとそれを貼り付けるためのシートが存在する
・貼り付け元のシートを「~の元データ」、貼り付け先のシートをそれに対応する数字とする
・①②③……のシートへ、①の元データ・②の元データ・③の元データ……のシートから、
①②③……のシートに同じ名前の見出しがある列のみコピーしたい
このような内容です。もしわかる方がいらっしゃればお知恵をお借りしたいです。
よろしくお願いいたします。
![「【VBA】シート名と見出しが一致する列を」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/e/543205331_65ee8c512be40/M.png)
No.2ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Option Explicit
Public Sub シート間転記()
Dim sws As Worksheet
Dim tws As Worksheet
Dim sh_array As Variant
Dim i As Long
sh_array = Array("①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨", "⑩", "⑪", "⑫", "⑬", "⑭", "15")
For i = 0 To UBound(sh_array)
Set sws = Worksheets(sh_array(i) & "の元データ")
Set tws = Worksheets(sh_array(i))
Call sheet_copy(sws, tws)
Next
End Sub
Private Sub sheet_copy(sws As Worksheet, tws As Worksheet)
Dim wcol As Long
Dim dicT As Object
Dim maxcol1 As Long
Dim maxcol2 As Long
Dim col1 As Long
Dim col2 As Long
Dim key As String
Set dicT = CreateObject("Scripting.Dictionary")
maxcol1 = sws.Cells(1, Columns.Count).End(xlToLeft).Column
maxcol2 = tws.Cells(1, Columns.Count).End(xlToLeft).Column
tws.Rows("2:" & Rows.Count).ClearContents
For col2 = 1 To maxcol2
key = tws.Cells(1, col2).Value
If key <> "" Then
dicT(key) = col2
End If
Next
For col1 = 1 To maxcol1
key = sws.Cells(1, col1).Value
If key <> "" Then
If dicT.exists(key) = True Then
col2 = dicT(key)
sws.Columns(col1).Copy Destination:=tws.Columns(col2)
End If
End If
Next
End Sub
No.1
- 回答日時:
こんにちは
どこがわからないのかもわかりませんけれど・・・
基本的には、一つのシートへの転記処理を作成して、それをループして、必要なだけ繰り返すようにすれば宜しそうに思われます。
シートのセットは
・文字の連結
・指定シートの存在確認
が出来れば良いので、できているものと仮定して・・
順に1列ずつ処理をしてゆくとして、
タイトルと合致する列の検索がわからないということでしょうか?
簡単にやるなら、1行目から一致するものを探せば良いだけなので、
元シート.Rows(1).Find(検索したいタイトル)
などで、探すことが可能です。
https://learn.microsoft.com/ja-jp/office/vba/api …
あるいは、1行目をループして、値が一致するセルを探しても宜しいかと。
あとは、対象列をコピペすればよいだけなので、
参照元列.Copy 転記先列
とすれば列のコピーができます。
値だけを転記したければ、
転記先列.Value = 参照元列.Value
で「値の転記」が可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) A2~I4179列にあるリストを支社名ごとにシートに分けたいです。 各シート名はA列にある支社名とし 3 2023/08/29 16:46
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) エクセルシートのデータを1列飛ばしで別ブックのシートに貼り付けるマクロが知りたい 2 2023/06/05 22:37
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
エクセル マクロ 別シートから実行すると動かない
Excel(エクセル)
-
Excel関数の先頭に「@」が入っているのは何故?
Excel(エクセル)
-
Excelでの判別方法
Excel(エクセル)
-
-
4
表示されている人数だけを数えたい!!
Excel(エクセル)
-
5
VBAコードについて
Visual Basic(VBA)
-
6
Excelにてある膨大なデータを管理しています。 そこで、特定の市町村にのみ色を付けたいです。 Ex
Excel(エクセル)
-
7
エクセルでチェックボックスを一列にたくさんつくり、各行にリンク先のセルを設定する場合、どのようにした
Excel(エクセル)
-
8
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
-
9
エラー表示になってしまいます。
Excel(エクセル)
-
10
エクセルで相対パスの書き方を教えてください
Excel(エクセル)
-
11
エクセルの表の参照値から円を取って数字で扱えるようにしたい
Excel(エクセル)
-
12
Excelでエラーが出るのですが・・・
Excel(エクセル)
-
13
データの入力規則 Excelです。 例えば、 C1セルに、 A列のデータ(B列にあいうえお"と入っ"
Excel(エクセル)
-
14
VBA 同一シート内での転記の仕方
Excel(エクセル)
-
15
Excel 大なり小なりを表すとき、 例えば「10以上」なら、>=10 と表せますが、 この10の部
Excel(エクセル)
-
16
エクセルで2桁から5桁の数字があります。その数字のダブリを解消する方法を教えてください。
Excel(エクセル)
-
17
VBAのコードを教えてください
Visual Basic(VBA)
-
18
余分なEXCELファイルに印刷され、経線が入る
Excel(エクセル)
-
19
他人が作ったマクロの理解
Excel(エクセル)
-
20
Win10でExcel VBA GetPhoneticを使い ふりがな候補を全て連続で取得する方法?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
Excel複数シートにあるデータを...
-
文字の色も参照 VLOOKUP
-
VLOOKアップ関数の結果の...
-
エクセルのブック分割マクロを...
-
SUMPRODUCTにて別シートのデー...
-
Excelでの並べ替えを全シートま...
-
エクセル複数シートのデータを...
-
エクセルの列の限界は255列以上...
-
Excel の複数シートの列幅を同...
-
エクセルで、チェックボックス...
-
Excelで全てのシートに一気に列...
-
エクセルの横に並んでいるもの...
-
VBAで検索して、行をコピー&追...
-
【条件付き書式】countifsで複...
-
Excelに自動で行の増減をしたい...
-
エクセルVBA 行追加時に自...
-
【VBA】複数のシートの指定した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
Excel の複数シートの列幅を同...
-
エクセルで横並びの複数データ...
-
エクセルの列の限界は255列以上...
-
【条件付き書式】countifsで複...
-
Excelでの並べ替えを全シートま...
-
SUMPRODUCTにて別シートのデー...
-
エクセル マクロ 標準モジュー...
-
VLOOKアップ関数の結果の...
-
エクセルで、チェックボックス...
-
Excel VBA ピボットテーブルに...
-
オートフィルタ使用時にCOUNTIF...
-
スプレッドシートでindexとIMPO...
-
エクセルVBAで、ある文字を含ん...
-
エクセルのブック分割マクロを...
-
【VBA】複数のシートの指定した...
-
Excel複数シートにあるデータを...
おすすめ情報