• ベストアンサー

<エクセル>マクロを使ってデータを入力したいのですが・・

エクセル初心者のため、 どなたかご存知の方がいらっしゃいましたら教えていただけないでしょうか。 エクセルで、ある申込書のフォームにデータ(氏名・フリガナ・生年月日・年齢等を入力したいのですが100名分くらいあるためマクロを作って元データからコピーできれば・・と考えています。 100人分の元データはSheet1にあり、 1名につき1行で、A1に氏名、B1にフリガナ、C1に生年月日・・・(~F1まで)となっています。(~100行目まで) そのデータをSheet2にある申込書フォームの該当欄にコピーしたいのですが、簡単な方法はありますでしょうか。 Sheet2には10名分の入力欄があるので、、 Sheet1の1行目の人のA1(氏名)のデータをSheet2のB12(氏名入力欄)へ、 Sheet1の2行目の人のA2(氏名)のデータをSheet2のB14(氏名入力欄)へ、 ・・・・・ Sheet1の10行目の人のA10(氏名)のデータをSheet2のB30(氏名入力欄)へ、 という感じでコピーしていきたいです。 (フリガナ、生年月日、年齢などそれぞれ欄があります) とりあえず10人分ずつSheet2にコピーできるマクロが組めれば大変助かるのすが・・・。 説明も上手にできず申し訳ないのですが・・・。 私の知識レベルでは100人分こぴぺこぴぺする方が早いのかもしれませんが どなたかアドバイスをいただければ大変うれしいです。 どうか、宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.5

マクロじゃありませんけど Sheet2の B1 =0 (仮)とし B12 =OFFSET(Sheet1!$A$1,(ROW()-12)/2+$B$1*10,0) とし B14 以下に同じものをコピーします するとSheet2の入力欄にSheet1の10名分の氏名が転記されたと思います この状態でSheet2のB1に1を入れて見てください すると、次の10名分が転記されると思います この様にB1に0~9を入れるだけで、10名分ずつ転記出来ます B1が既に使用済の場合は空いている所に変更できます その場合は、式の  $B$1 を変更してください

その他の回答 (4)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

No1 merlionXXです。 > このA1の転記先と同じパターンでB1、C1と繰り返していけばよいのですね。 繰り返し一個ずつ書く方法もありますが、転記先が連続している等、規則性があるならもっと簡単に書けます。B1~F1の転記先がどこになるのかをちゃんと書いてくれればアドバイスできるのですが・・・。

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.3

マクロが組める人ならそれほど難しい作業ではないと思いますが。それが解らない段階の初心者に説明しても、どのようなレベルで理解できているのかがよく判りません。 親切な回答者ならば、ここで手本のマクロを記述して"これをコピーしてやれば使えますよ!"・・・みたいな回答をくれるかもしれないけど、このサイトは根本的にマクロの作成を依頼する場所ではなく、そういう事は規約違反になり削除の対象になりかねません。 ある程度まで自分でマクロを組んでみて、うまくいかない場合にその記述のどこがおかしいのか質問できるくらいなら、マクロで処理した方がいいだろうけど、質問文からするとこの質問の答えを待ってマクロに挑んで処理するよりも、手作業でやったほうがずっと早く出来上がると思います。 っとはいえ、100人分のコピーはやはり大変そうだから、チョットだけ楽になりそうな方法として・・・・ まずsheet1のa1~a10のコピーを取り、sheet2のB12に張り付ける。 B13~B112までを選択してマウスでドラッグして一行分空白を作るように下げる。 同じようにしてB15~B113までを選択してマウスでドラッグして一行分下げる。 これを繰り返せばsheet1とsheet2の間でコピーペーストを何度も繰り返す事はしなくてもよくなる。

mizuki1104
質問者

お礼

おっしゃることごもっともです~。 丁寧にご回答くださりうれしいです。 かなり甘えがあるので、マクロについてはもう少し勉強してから、 と思います。 ヒントもいただけて助かりました。 どうもありがとうございました!

回答No.2

マクロに関しての知識がないのであれば、フォームをwordで作成して、wordの差込印刷を使用してはいかがですか? 今後もこの様な事をしたいのであれば、この機会にVBAを学習されてはいかがですか。

mizuki1104
質問者

お礼

Word・・・ ほんとうですよね~。 正しいご指摘ありがとうございます。 かなり甘えてしまってお恥ずかしいです。 ご回答ありがとうございました!

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

お書きになった情報だけでは氏名(A1)の転記先しか書いてないのでB~Fは無視しています。 要はSheet2、B12以降に1行おきに転記すればいいのでしょうか? ならば、 Sub 隔行転記() For i = 1 To 100 Sheets("Sheet2").Cells(i * 2 + 10, "B") = Sheets("Sheet1").Cells(i, "A") Next i End Sub

mizuki1104
質問者

お礼

ご回答いただきありがとうございます! このA1の転記先と同じパターンでB1、C1と繰り返していけばよいのですね。 とっかかりをいただけてとても助かります。 迅速なご回答、感謝いたします~。

関連するQ&A

  • マクロを使用し、EXCELのデータから必要な部分を取り出し2つのsheetに貼り付けたい

    条件 EXCELのデータ A列からL列まで 複数行(行数は、決まっていない) (例) 40行ほどあるデータを見て 1行目から10行目までをsheet1に 12行目から20行目までをsheet2に貼り付けたい場合。 11行目のA列(空白になっている)に手入力で「a」と入力 21行目のA列(空白になっている)に手入力で「b」と入力し、 1行目から「a」のある行までをコピーし、sheet1に貼り付ける 「a」のある行より1行下から「b」のある行までをコピーし、sheet1に貼り付ける 以上のことをマクロで実行する方法を教えて下さい。

  • マクロでコピーしたセルを4行目毎に挿入する方法

    こんにちは!よろしくお願いいたします。 Excel2003で計算式が入力されている1行をコピーして 4行目にコピーしたセルを挿入したいのですが、複数 あるため、マクロを作りたいと思っています。   A   B  C 1 氏名 住所 件数  → 計算式が入力されている 2 氏名 住所 電話 3 氏名 住所 郵便 4 氏名 住所 ふりがな            → 1行目の計算式も含めコピーしたい この操作を繰り返すマクロを作成したいと思っています。 マクロは初心者です。ご指導よろしくお願いいたします。

  • エクセルのマクロ(VBA)について質問です。

    前回もお世話になりました。今回もまた、VBAの質問です。 ある表があります。 A「No.」B「氏名」C「フリガナ」(D「順番」)という項目があります。 項目名はそれぞれ2行目にあります。 データ入力は3行目からで(セルA3)、入力範囲は32行分です。 毎回32名分すべてにデータが入っていればやりやすいのですが、 31名以下の場合に問題があります。 フリガナ順に並べ替える時に、「データ」→「並べ替え」で「フリガナ」項目を 昇順で並べ替えていますが、この時、セルA3からセルC34までを 範囲指定して上記方法で並べ替えると、入力されていない空白の行までも 並べ替えられてしまい、その空白行が先頭から並べ替えられてしまいます。 そういったわけで、現状ではセルA3から入力されている一番下の データのC列(25名分登録ならセルC27)までを手動で範囲指定し 上記並べ替えを行なっています。 空白行を除いて、入力したデータ分だけ並べ替えたいのですが、 まったくわかりません。 これを何とかVBAで解決したく、質問をさせて頂きます。 お知恵を頂きたく思いますので宜しくお願い致します。 情報が不足でしたら、補足要求をお待ちします。

  • エクセル 複数シートのデータを1シートにまとめるマクロ

    エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。  【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。  【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

  • Excelマクロについて

    マクロについて質問をさせていただきます。 A1~10にデータが入力されています。 その中である特定の文字が入っている行をシート2にコピー(移動でもかまいません)するようなマクロはどのように作成すればよろしいでしょうか?? 宜しくお願いいたします。

  • VBAマクロで離れた結合行に順次データを挿入

    マクロ初心者です。 本やサイトを参考に調べたのですが、どうしても自力ではできないので、お力をお貸しください。 特殊な書式を使わなければならないため、既存のexcelテンプレートでは対応できません。 同一フォルダ内での作業です。 各学級に委員会は2~3名、クラブは0~10名が在籍しています。 <データ> 学級毎に別ファイルの名簿があります。 1行目が項目です。 2行目以下がデータで、出席番号順です。 1クラス40名以下です。 このデータファイルはエクセル初心者でも入力しやすいようにしておく必要があるため あまり変更はできません。 委員会およびクラブ名は、プルダウンで入力されています。    A     B    C   D    E    F 1 出席番号 学年学級 氏名 ふりがな 委員会 クラブ名 2 3 4 ・ ・ ・ <作業1> <データ>から委員会ごと、クラブごとの名簿を作りたいです。 ○○委員会、△△クラブをプルダウンで選択すると 3行目以下に名簿が学級毎出席番号順で並ぶようにしたいです。 委員会とクラブは、別シートあるいは別ファイルにしたいです。          A         B         C 1(項目行) 平成○年度 (委員会/クラブ名選択) 委員会/クラブ 2(項目行) 学年学級        氏名       ふりがな 3      学年学級1       氏名1      ふりがな1 4      学年学級1       氏名2      ふりがな2 5      学年学級2       氏名3      ふりがな3 6      学年学級2       氏名4      ふりがな4 7      学年学級2       氏名5      ふりがな5 8      学年学級3       氏名6      ふりがな6 9      学年学級3       氏名7      ふりがな7 10      学年学級3       氏名8      ふりがな8 11      学年学級3       氏名9      ふりがな9 12      学年学級3       氏名10      ふりがな10 ・        ・          ・ ・        ・          ・ ・        ・          ・ <作業2> <データ>もしくは<作業1>から 評価カードに、 学年学級と委員会/クラブ名をプルダウンで選択することで 下記のように氏名を挿入したいです。 氏名の横などに担当者が手書きで評価を記入していく書式です。 この書式は変更不可能です。   A                   1 A空白  BCDEFG結合(学年学級選択) HI空白  JKLMN結合(委員会/クラブ名選択) 2(空白行) 3           JKLMNOPQRSTUV結合(担当者名が自動挿入) 4(空白行) 5(空白行) 6(空白行) 7(空白行) 8(説明行) 9・10結合(項目行) 11・12結合 ABCDE結合(氏名1) 13(説明行) 14(説明行) 15(説明行) 16(空白行) 17・18結合(項目行) 19・20結合 ABCDE結合(氏名2) 21(説明行) 22(説明行) 23(説明行) 24(空白行) 25・26結合(項目行) 27・28結合 ABCDE結合(次の氏名) 以下、下記の欄に続くの氏名が順次挿入されるようにしたいです。 35・36結合 ABCDE結合 43・44結合 ABCDE結合 51・52結合 ABCDE結合 59・60結合 ABCDE結合 67・68結合 ABCDE結合 75・76結合 ABCDE結合 83・84結合 ABCDE結合 説明の足りないことがあればご教示ください。 どうぞよろしくおねがいいたします。

  • エクセルで日毎のデータの蓄積

    シートBにその日のデータを入力し、そのデータをシートAに蓄積していきたいです。 手作業ならば、 1.入力されたシートBのその日のデータをコピー 2.シートAの同じ日付の行を探し、値のみペースト とするのでしょうが、これを自動化したいです。 セル参照だと、毎日、同じ行にデータが上書きされていくため 無理っぽいし、マクロを使わないとできませんか? コピーとペーストはできそうですけど、「同じ日付の行を探し」というところが難しそうだなぁと思いました。。。 すみませんが、よろしくお願いします。 シートA(データ蓄積用) 日付   データ 12/1   データ1 12/2 ・ ・ 12/31 シートB(データ入力用) 日付   データ 12/2   データ2 ↑日付が変われば、同じ行にデータを上書き

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • Excelマクロで質問です。

    Excelマクロで質問です。 Sheet1にデータが入力されていて(ここでは100行入力されているとします)、 Sheet2のA2からE2に数式が入力されています。 ↓ この数式をSheet1のA列に入力されているデータ行数分プラス1(ここでは100+1) Sheet2のA3以降(A3からA103)にコピペするマクロを教えていただけないでしょうか。 100は、毎回変化します。

  • エクセルマクロの構文

    エクセルマクロに関してご教示いただきたく存じます。 下記の手順を1つのマクロで実行したい場合、どのような構文を書けば実現できますでしょうか? 前提: ・エクセル中、シート(1)、シート(2)を準備。 ・シート(1)には毎日1日分のデータを入力(例えば、1行目の経費項目、金額、経費支払者 の3カラムヘッダーの下に、2行目から1日分のレコードを入力していく) ・シート(2)には毎日の日別データを累積していく(例えば、シート(1)に1日目で10レコード、2日目で15レコード、3日目で20レコードの場合、3日目終了時に計45レコードにしたい。1行目の経費項目、金額、経費支払者 の3カラムヘッダーはシート(1)と同様) マクロ実行: ・シート(1)に1日目のデータ入力(10レコード)が終わった段階で、ボタンを押し、下記マクロを実行  (1)シート(1)の10レコード(A2:C11)を、シート(2)のA2:C11にコピー  (2)シート(1)の10レコード(A2:C11)を、削除(データクリア) ・シート(1)に2日目のデータ入力(15レコード)が終わった段階で、上記と同じボタンを押し、下記のマクロを実行  (1)シート(1)の15レコード(A2:C16)を、シート(2)のA12:C26にコピー(シート(2)において1日目のデータの次に累積させていく)  (2)シート(1)の15レコード(A2:C16)を、削除(データクリア) ・シート(1)に3日目のデータ入力(20レコード)が終わった段階で、上記と同じボタンを押し、下記のマクロを実行  (1)シート(1)の20レコード(A2:C21)を、シート(2)のA27:C46にコピー(シート(2)において1日目のデータの次に累積させていく)  (2)シート(1)の20レコード(A2:C21)を、削除(データクリア) ・4日目以降、同じボタンでマクロを実行する度に、シート(1)のデータがシート(2)の47行目以降、空白なく追加されていく 以上、皆様のお知恵をお貸しください。

専門家に質問してみよう