VBA初心者です。ワークシートが5つあり各シートにデータを転記するマクロを作成したいのですがワークシート名を変数にしてループ処理することはできるのでしょうか?
下記はワークシート名"H"にだけ転記するマクロを作成してみましたがこの後がわからず悩んでいます。よろしくお願いします。
Dim データ行 As Integer
Dim cnt As Integer
Dim データ数 As Integer
cnt = 4
データ行 = Cells(Rows.Count, 8).End(xlUp).Row
For データ数 = 11 To データ行
If Worksheets("入力").Cells(データ数,1).Value= "2"Then
Worksheets("H").Cells(cnt, 6).Value = Worksheets("入力").Cells(データ数, 8).Value
Worksheets("H").Cells(cnt, 7).Value = Worksheets("入力").Cells(データ数, 9).Value
Worksheets("H").Cells(cnt, 8).Value = Worksheets("入力").Cells(データ数, 27).Value
Worksheets("H").Cells(cnt, 9).Value = Worksheets("入力").Cells(データ数, 19).Value
Worksheets("H").Cells(cnt, 10).Value = Worksheets("入力").Cells(データ数, 20).Value
Worksheets("H").Cells(cnt, 11).Value = Worksheets("入力").Cells(データ数, 21).Value
Worksheets("H").Cells(cnt, 12).Value = Worksheets("入力").Cells(データ数, 10).Value
Worksheets("H").Cells(cnt, 13).Value = Worksheets("入力").Cells(データ数, 11).Value
Worksheets("H").Cells(cnt, 14).Value = Worksheets("入力").Cells(データ数, 22).Value
Worksheets("H").Cells(cnt, 15).Value = Worksheets("入力").Cells(データ数, 23).Value
cnt = cnt + 1
End If
Next データ数
No.2ベストアンサー
- 回答日時:
> 説明不足でした。
ワークシートが8個ありその内の5つを変数に格納したいのですがtargetSheetで対照とする方法もわかりません。お手数ですがよろしくお願いします。であるならば、その状態や条件も提示していただかないと的確に回答できませんよ。
8個のシート中、5個の対象シートがどこにあるか決まっていない。or 決まっている。
5個の対象シートの名前には決まった位置に共通する文字があり、残り 3個のシートには無い。
とか、、、
対象 5シートの位置が一番左から 5つである場合は
For i = 1 to ThisWorkbook.Worksheets.Count
Set targetSheet = ThisWorkbook.Worksheets(i)
' 処理いろいろ
Next
4番目から 5つであれば
For i = 4 To 8
Set targetSheet = ThisWorkbook.Worksheets(i)
Next
対象シートのシート名の先頭が必ず "H-" で始まっており、対象外シートは別の文字から始まっているのであれば
For Each targetSheet In ThisWorkbook.Worksheets
If Left(targetSheet.Name, 2) = "H-" Then
' 処理いろいろ
End If
Next
とか
規則性がぜんぜん無いけれど 5シートの各名前が決まっているのなら、あらかじめ文字列型の配列に対象シートのシート名を入れておき、
For i = 0 To 4
Set targetSheet = ThisWorkbook.Worksheets(targetNames(i))
Next
とか。
または 対象 5シートの名前を 9つめのシートのセル A1~A5 に書いておけるならば、そのセルの値を読み込んで targetSheet で参照させるとか。
ともかく情報が必要です。
対象シート名、数、文字位置も決まっておりますので最初に教授いただいた方法でやってみます。
お手数お掛けしました。ありがとうございました。
No.1
- 回答日時:
For Each の中で Worksheet 型のオブジェクト変数を使ってループ。
これだと対照ワークブックに含まれるすべてのシートが処理対象になる。
Dim targetSheet As Worksheet
For Each targetSheet In ThisWorkbook.Worksheets
targetSheet.Cells(cnt, 6).Value = Worksheets("入力").Cells(データ数, 8).Value
targetSheet.Cells(cnt, 7).Value = Worksheets("入力").Cells(データ数, 9).Value
targetSheet.Cells(cnt, 8).Value = Worksheets("入力").Cells(データ数, 27).Value
targetSheet.Cells(cnt, 9).Value = Worksheets("入力").Cells(データ数, 19).Value
targetSheet.Cells(cnt, 10).Value = Worksheets("入力").Cells(データ数, 20).Value
targetSheet.Cells(cnt, 11).Value = Worksheets("入力").Cells(データ数, 21).Value
targetSheet.Cells(cnt, 12).Value = Worksheets("入力").Cells(データ数, 10).Value
targetSheet.Cells(cnt, 13).Value = Worksheets("入力").Cells(データ数, 11).Value
targetSheet.Cells(cnt, 14).Value = Worksheets("入力").Cells(データ数, 22).Value
targetSheet.Cells(cnt, 15).Value = Worksheets("入力").Cells(データ数, 23).Value
Next
この回答への補足
説明不足でした。ワークシートが8個ありその内の5つを変数に格納したいのですがtargetSheetで対照とする方法もわかりません。お手数ですがよろしくお願いします。
補足日時:2009/02/11 14:26お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでシートの違うデータでグ...
-
複数シートからデータを拾って...
-
シート削除して同名シート追加...
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
マクロで月毎に自動仕訳する方法?
-
Excelですが、同一データが複数...
-
【Excel】マクロでグラフ系列に...
-
トランジスタの選び方
-
CMOS-IC CD4007UBEのnmosfetの...
-
エクセルで抽出したデータを別...
-
エクセル:データをシートに飛...
-
エクセルについて教えてくださ...
-
Excelで日付変更ごとに、自動的...
-
エクセルファイルを開く時、常...
-
EXCELで複数のシートを一度に「...
-
VBA バックグラウンドで別ブッ...
-
VBAでブックを非表示で開いて処...
-
エクセルの選択範囲以外を削除...
-
【ExcelVBA】マクロの入ったシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
VBAで CTRL+HOMEの位置へ移動...
-
トランジスタの選び方
-
Excelで日付変更ごとに、自動的...
-
【エクセルマクロ】複数シート...
-
EXCELで2つのファイルから重複...
-
他のシートの一番下の行データ...
-
エクセル 縦に長い表の印刷時...
-
エクセル マクロ "特定の日付...
-
【Excel】マクロでグラフ系列に...
-
エクセル VBA VLOOKUP
-
EXCEL 複数行のデータを1行にま...
-
エクセルで名簿を50音で切り分ける
-
エクセルのカメラ機能について
-
時間帯の重複を除いた集計について
-
オートフィルタで抽出したデー...
おすすめ情報