Excel VBA を使って、同じブックにある一覧表シートのセル範囲を指定して、別の個別シートのデータとして取り込み、編集後その個別のデータを一覧表に再度コピーする方法を教えて下さい。
教員をしています。VBAはまだまだ素人です。
クラス分の生徒の進路希望データ一覧表から、特定の生徒一人分の進路データを個別シートにコピペして、編集後それをその一覧表シートに再度コピペしたいのです。
各生徒には志望校は5校分を設定し、1校につき1行で各データをその列に入力します。
(志望校の学部、学科などのデータをその列に入力します)
先頭には生徒のID番号を行毎に5校分(1組の1番なら1011~1015の4桁)を設定しています。
一覧表のシートにも同じID番号と氏名を40人ほど(最後の生徒なら1401~1405)入力してあります。
その一覧表からID番号を使って各生徒の5校分のデータを、個別シートにコピペして、
個別シートで編集した後で、また一覧表にコピペしたいのです。
どうぞご教授お願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> いかがでしょうか?
文字によるコミュニケーションの難しさを痛感しております。
> 構成としては、学年全体の生徒のID番号、 (中略) を想定しています。
え~と、シートのフォーマットが既に存在しているわけではないのですか?
では、まず両シートフォーマットを、操作イメージと合わせて決めるところから初めて下さい。
これはご本人でないと決められません。
こちらが期待していた「具体的な情報」というのは、
例えば、以下の様な情報です。
「一覧表シート上のボタンをクリックすると、一覧表シートの選択されている行から下へ5行分のA列からZ列を、シート名××の個別シートの□□セル~△△セルへコピーする」
「個別シート上のボタンをクリックすると、個別シートの〇〇セルのID番号を、一覧表シートのA列の3行目から下へ検索して、ヒットした行のA列~Z列へ、個別シートの□□セル~△△セルをコピーする。」
> そのデータを別シートで個人データとして表示し、進路相談でその内容を記入したり修正したりして、それ内> 容が全体の学年のデータシートに反映することができればと思っています。
個別シートというのは一つしか存在しないのですか?
生徒毎にシートが存在するのだと思っていました。
> クラス別に各担任が使えれば、と思ってましたが、いずれ全体の受験結果などを集約するので、最初から学年全体のデータ一覧を想定するのもありですね。
どちらにするか決めるのは、質問者様です。
推測ですが、質問者様も、まだ漠然としたイメージしかお持ちではない様です。
もう少し具体化してから、再度質問された方がよろしいのかもしれません。
すみません、度々。
すでにクラス分のデータは作ってあって、それを個人別シートに呼び出して、
編集したり、加筆して、また元のデータシートに反映させる作業です。
個別のシートは1シートだけで、必要に応じて指定した生徒のデータを呼び出すようにしたいのです。
個別のシートは必要な人数分、プリントできるようにしたいのですが、
この印刷については、印刷用のシートを作ってvlookup関数では取り出し、繰り返し印刷でできようにはしてあります。
こんな構成ですが、いかがでしょうか?
よろしくお願いします。
No.2
- 回答日時:
誰が作成するにしても、具体的な情報がないと適切な回答がつきにくいのではないでしょうか?
・一覧表シート/個別シートの構成
どの行/列にどのような情報が入っているか。
コピーしたいセルの具体的範囲。(両シートで)
・個別シートは複数あると推測できますが、そのシート名は何?(名前/ID番号/その他)
・クラスは何組まであるのか
・ひとつの一覧表シートに全クラス分の情報があるのか、クラス毎に一覧表シートがあるのか
・「同じブックにある一覧表シートのセル範囲を指定」の具体的方法
質問者様がどの様な操作方法をイメージしているのか
あと、No.1さんも仰っていますが、
なぜ、わざわざコピー→編集→コピー(戻す)という手間をかけるのか?
最初から両シートに同じデータを反映するような構成ではまずいのか?
(「編集」がどのようなことを行うのかでも変わってくると思いますが……)
siffon9さん
ありがとうございます。
クラス別に各担任が使えれば、と思ってましたが、いずれ全体の受験結果などを集約するので、最初から学年全体のデータ一覧を想定するのもありですね。
構成としては、学年全体の生徒のID番号、クラス番号、出席番号、氏名、受験学校分類、学校名、学部、学科、コース、文系理系分類、推薦一般などの受験方式、合否、入学の有無、男女、内部進学か否か、備考欄、エントリー期間、願書受付期間、一次試験日、一時発表、二次試験日、二次試験発表、備考欄2、を想定しています。
一人につき5校分を割り当てて、全体のデータを作るとして、6学級ですので約240名、各5校分とすると1200行ほどになるかと思います。
そのデータを別シートで個人データとして表示し、進路相談でその内容を記入したり修正したりして、それ内容が全体の学年のデータシートに反映することができればと思っています。
さらにその個別のシートを印刷して面談しながら手書きメモができればと思っています。
いかがでしょうか?
コピペとかいたのは、そういう方法でやるのがいいかと思っただけで、他にスムーズにできる方法があれば、ぜひご教授ください。
改めてVBAはほぼ素人です。
よろしくお願いします。
No.1
- 回答日時:
こんにちは。
VBAの回答ではありません。
>個別シートで編集した後で、また一覧表にコピペしたいのです。
編集は個別シートで行うのが原則で、一覧表には常にその内容が反映できていれば良いものと解釈しました。
・・であるなら、毎回コピペせずとも、各個別シートの内容が一覧表に反映できれば良いので、一覧表の各セルに適切な参照式を設定しておけば済むのではないかと思います。
IDや氏名で特定できそうですので、参照式をうまく作成すれば一つの式でオートフィルできる形式にすることも可能だと思いますし、それで目的を達成できるのではないかと想像します。
上記の場合は一覧表側では編集しないと仮定していますが、もしも、どちらのシートで編集しても常にその内容が他方のシートに反映されるようにしたいということでしたら、「一覧表→個別シートへ反映」と「個別シート→一覧表へ反映」の2種類のマクロを作成しておいて、changeイベントで処理するようにしておくと、コピペすることを意識する必要もありませんし、コピペを忘れるといったミスもなくなるものと思います。
早速のお返事有難うございます。
データを個別のシートに呼び込むのは関数を使ってできるのですが、その個別のシートに書き込むと関数にデータを上書きして消すことになりますの無理ですよね。
相互にデータをやり取りできるようにVBAを使いたいのですが、どうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
【ExcelVBA】全シートのセルの...
-
ExcelVBA シート名を複数セルか...
-
【VBA】特定の文字で改行(次の...
-
Excel チェックボックスにチェ...
-
VBAで指定シート以外の選択
-
【Excel VBA】Worksheets().Act...
-
VBA 存在しないシートを選...
-
VB6.0でEXCELにシートを追加したい
-
ListViewの画面の更新
-
特定の文字を含むシートだけマ...
-
エクセルのシート名変更で重複...
-
vba 環境依存文字がListViewボ...
-
リストボックスの複数データを...
-
XL:BeforeDoubleClickが動かない
-
同じ作業を複数のシートに実行...
-
ブック名、シート名を他のモジ...
-
Excel マクロについての相談
-
【VBA】色のついたシート名を取得
-
ユーザーフォームに入力したデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報
fujilinさん、ありがとうございました。
関数ではなく、というご回答でしたが、ウッカリ勘違いして返答してしまいました。
相互にコピペを記録マクロでなら作れそうですが、
手書きでVBAのプログラムは上手くいかないです。
さらにご回答いただいたchangeについては勉強不足で分かっていませんでした。
できましたら、も少し詳しくは教えていただけますか?
宜しくお願いします。