- ベストアンサー
エクセルのシート1データをシート2に自動的したい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
既に質問者の技量を勘案してか、関数でやる回答が出ています。 でも仕事でこういうのをやるには、VBAでやるのが、普通でしょう。 VBAでは出来ない・しないなら、読み飛ばしてください。 ====== ・入力シートSheet1は毎月固定する。 ・ボタンを1つ,Sheet1シートに配置する。 (入力が終わったことと、シート2にデータを累積することをシステムに知らせるため。) Sheet2の現在(前月終り)の最終行の直下から、Sheet1のデータを追加する。 従ってSheet1とSheet2の、列的な見出し(=項目内容)は同じとする。 Sheet1とSheet2のシート名は毎月変わらないとする。 Sheet1の最上部行に見出し行があり(下記例では2行分)、毎月変わらないとする。 ・Sheet1で、開発ー挿入ーActivexコントロールーコマンドボタン でシートにコマンドボタンを貼り付ける。 ・コマンドボタン(デザインモード状態で)をダブルクリックして Private Sub CommandButton1_Click() End Sub という画面が現れるから、この真ん中の空白行部に(処理内容のVBAコードを) 下記をコピペして入れる。 Private Sub CommandButton1_Click() Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") '---- Sh2endrw = sh2.Range("A100000").End(xlUp).Row 'Sheet2最下行取得 sh1endrw = sh1.Range("A100000").End(xlUp).Row 'Sheet1最下行取得 'MsgBox Sh2endrw 確認用 sh1.Range("A1").CurrentRegion.Select Selection.Offset(2).Resize(Selection.Rows.Count - 2).Select '見出し2行を除く Selection.Copy sh2.Range("A" & (Sh2endrw + 1)) '最下行の次行以下にコピー貼り付け '--- sh1.Range("a3:D" & sh1endrw).Clear 'Sheet1の見出しを除きクリア End Sub ======= ・デザインモードの終了する。以上で準備完了。 ・Sheet1のデータ入力完了する。毎月作業。 ・Sheet1のボタンクリックする。毎月作業。 ・結果のSheet2を確認。毎月作業。 Sheet1の第3行以下は抹消されているはず。次回入力に備えて。
お礼
imogasiさん アドバイスありがとうございました。 初心者の私にはVBAは難しくて直ぐには出来そうにありません。 まずはエクセルの関数を理解してから、としたいと思います。 貴重な時間を取らせてすみませんでした。
お礼
vlookup関数について表記のエクセル教本を見つけましたので理解できました。 ありがとうございました。
補足
mt2015さん アドバイスありがとうございます。 初心者なので、もう少し教えてください。 実際の作成しようとしている表は”10月”のシートにはData項が複数個あります(上記表のBのほかC,D,Eなどと)。例えば、C項を選択した場合には教えてくれた式をどのように変えればよいのでしょうか?.エクセルの関数の本を見ているのですがよくわかりません。 よろしくお願いいたします