以前作成した記事
「Excelマクロでの同シート内転記方法」に続く記事です。
https://www.miraclejob.com/recommend/detail?cd=719
【実施内容】
シート「記入フォーム」にてボタン「①内容記入」を押下、
B・C列の各項目に対象データを記入して行く。
項目ごとにメッセージが表示されるため、
各項目毎のメッセージ内容に沿って記入を行う。
全て入力を終えると、空白欄及び「集計シート」に入力した内容が記載される事を確認する。
集計シートには記入フォームシートから転記されたデータが、
前回入力データの下部に転記されている。
【マクロ内容】
①転記用変数設定
Dim 集計 As Worksheet
『 Dim ’変数名’ As Worksheet 』
⇒変数にワークシートの意味を持たせる。
『 Set ’変数名’ = Worksheets("シート名") 』
⇒上のコマンドとセット。変数名に与えるシート名を入力する。
『 Dim ’変数名’ As Long 』
『 With ’変数名’ 』
⇒Withに続く変数名、今回の場合は集計シートであり、
以下のコマンドはこのシート上で実施する内容であると省略するコマンド
「End with」で締める必要があるが、まだ締める必要はない。
『 ’変数名’ = .Range("B" & Rows.Count).End(xlUp).Row + 1 』
⇒この変数は、『集計シートのB列を下から順に無記入ではない項目』
がないか確認後、記入されている行の1つ下の行に入力をする』という内容
②のコマンド内容
『 .Range("B" & myRow & ":C" & myRow & ":D" & myRow & ":E" & myRow & ":F" & myRow & ":G" & myRow & ":H" & myRow).Value = 入力.Range("B16:H16").Value 』
⇒B列からH列までの行数に、myRowの変数名が記憶したコマンドを実行、
そこで見つかった記入箇所に、記入フォームシートの内容を転記するコマンド
『 End With 』
⇒With 変数の適用範囲を締めるコマンド
【今後の課題】
・登録者毎に転記シートが自動選択されるようにする
・入力内容を何でも転記してしまう状態であるため、除外例及び警告文が表示されるようにする
・withステートとは
http://officetanaka.net/excel/vba/beginner/16.htm