- ベストアンサー
Excelマクロで任意の項目の数値を自動コピー
- Excelのマクロを使用して、任意の項目の数値を、任意のセルへ自動的にコピーする方法について教えてください。
- マクロを組むことで、指定したシートの特定のセルの値を自動的にコピーすることができます。
- また、マクロを実行した日付によって、コピーするデータのセルを動的に変えることもできます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
元ネタのシート2は当然として、シート1にも1行目に適切な日付を「記入済み」だとする 各社の名称はシート2にも漏れなく記載されているとする シート2の会社名、目標、実績の位置関係はご相談に例示されている通りだとする 単純に縦横位置を調べて転記するだけです。 sub macro1() dim c1 as long dim c2 as long dim r1 as long dim r2 as long dim d as long dim s as string d = date ’各シートの横位置の確定 c1 = application.match(d, worksheets("Sheet1").range("1:1"), 0) c2 = application.match(d, worksheets("Sheet2").range("1:1"), 0) ’シート1の縦位置を巡回 for r1 = 2 to worksheets("Sheet1").range("A65536").end(xlup).row ’シート2の縦位置を確定 s = worksheets("Sheet1").cells(r1, "A").value s = left(s, len(s)-2) r2 = application.match(s, worksheets("Sheet2").range("A:A"), 0) + 2 ’実態に合わせて応用する事 ’転記 worksheets("Sheet1").cells(r1, c1).value = worksheets("Sheet2").cells(r2, c2).value next end sub #参考 マクロでヤリタイご質問なのでマクロで回答しますが、単純な関数だけでも支障なく解決できるご相談です。 実はマクロじゃなくていいなら、改めて各シートの具体的なレイアウト(どこ番地のセルに何が記入されている)を正確に情報提供して、別途ご相談を投稿してみて下さい。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
本日日付の取得はTODAY関数でもNow関数でも可能でしょう。 それよりも必ずEXCELのバージョンを記載するようにしてください。 行列数の制約が異なりますので。 マクロの構成は、最初に日付判定、次に会社別実績の処理ループ、という流れと思います。 ですが、以下はどうなりますか? ・○社実績が列Aとして、日付は最大いくつ用意してありますか?365日分?366日分? 日付の「年」はまったく考慮しなくて良いのですか?2月29日はどうなる? ・会社は例示の通り、A社・B社の2社ですか?もしもC社も登場するならSheet2のどこに?