質問: エクセルでマクロを使用してシート2の表から行単位でシート1の表の指定位 エクセルでマクロを使用してシート2の表から行単位でシート1の表の指定位置に値を表示させたい シート2の a列に番号(連番) b列に商品名(数字とアルファベットの組み合わせ) c列に仕入先(数字4桁) d列にメーカー(数字4桁) e列に区分(数字とアルファベットの組み合わせで3ケタ) が入っていて約5,000行のデータが有ります。 シート1にレイアウトした表があって シート1のb4にシート2のa2の値(番号連番) シート1のb5にシート2のb2の値(商品名) シート1のb6にシート2のc2の値(仕入先) シート1のb7にシート2のd2の値(メーカー) シート1のb8にシート2のe2の値(区分) が表示されるようにしてあります。 マクロを利用して、作成したシート1のボタンを押すと シート1のセルb4の番号欄が1から2(シート2のa3の値)に繰り上がり、 シート1の表のa列の番号と同じ行のそれぞれの値を 上記の規則で表示させるようにできますか? シート1のb4が2になるとシート1の3行目をさしますので シート1の表には、 シート1のb4にシート2のa3の値(連番) シート1のb5にシート2のb3の値(商品名) シート1のb6にシート2のc3の値(仕入先) シート1のb7にシート2のd3の値(メーカー) シート1のb8にシート2のe3の値(区分) が表示されます。 シート1のボタンをクリックするごとにb4のセルは3,4,5,6と繰り上がり シート2のa列の番号と一致した行のそれぞれの値を表示させていく。
回答: 質問は丁寧で長いがが、ボタンをクリックするごとに、シート2の1行ずつ下のデータを順に、シート1 の項目を指定行に表示したいということか。 質問表現を工夫してほしい。文章で要点を併用して表現することも望ましい。 ーー もしそうなら、クリックから次のクリックを関連付けることが難しく、public変数でも使わないとダメと思うので、やや難しく好ましくない要求だが、こういう課題なのか??。 普通はシート1に表示したい連番でも入力して、クリックし、シート2からその連番を元にデータ行をさがし、シート1に表示するのが素直。 質問のままだと 例データ sheet2 氏名住所従業員数 山田東京都23 小島神奈川県6 野島千葉県35 標準モジュールに public n sub test01() n = 1 end sub sheet1にボタンを貼り付け、そのシートモジュールに チェックとか一切してなくて、モデル的な説明を断っておく。 private sub commandbutton1_click() n = n + 1 dim sh1, sh2 set sh1 = worksheets("sheet1") set sh2 = worksheets("sheet2") sh1.range("b3") = sh2.cells(n, "a") sh1.range("b5") = sh2.cells(n, "b") sh1.range("b7") = sh2.cells(n, "c") end sub この初期化はtest01の実行しかなく、操作性が良くない。もうひとつの初期化用のボタンを貼り付ければ簡単だが。