• ベストアンサー

誰かエクセル教えてください!!(初心者です)

sheet1にA1からA100まで連番が入っています。     B1からB100まで英単語が入っています。     C1からC100まで発音が入っています。     D1からD100まで意味が入っています。     E1からE100まで例文が入っています。     F1からF100まで例文の意味が入っています。 sheet2に10個の単語カードを作りたいんです。 1枚目のカードはsheet2のA3に英単語、B3に発音、C3に意味、D3に例文、A5に例文の意味を入れたいです。2枚目は、A8に英単語、B8に発音、C8に意味、D8に例文、A10に例文の意味を入れたいです。3枚目は、A13に英単語、B13に発音、C13に意味、D13に例文、A15に例文の意味を入れたいです。5枚目まで同様です。6枚目は、F3に英単語、G3に発音、H3に意味、I3に例文、F5に例文の意味を入れたいです。7枚目は、F8に英単語、G8に発音、H8に例文、I10に例文の意味を入れたいです。10枚目まで同様です。これをフォームとします。 sheet1のA1からA100の任意の番号を入れたら sheet2の単語のカードが印刷されるようにしたいです。1~100と入れたら全部印刷されるようにもしたいです。単語は今後も増えていきます。削除はありません。 任意の番号は2セル用意してあって、12番という指定をしたら、12番の単語をフォームで印刷(残り9カードは空白)です。何々から何々までと言う番号を入れると、その範囲の番号の単語を印刷即ちフォームにセットして印刷したいです。 1フォームで中身の単語が次々入れ替わって、印刷したいです。 完成したらsheet2の名前を「印刷」、sheet1の名前を「データ」としたいです。 できれば、sheet1のB列の英単語のデータを並び変えてもA列の番号、C列の発音などがついて来るようにしたいです。 無理なら出来なくてもいいです。 前回、よく似た質問をしているんですが・・・

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

  • ベストアンサー
  • inte-nori
  • ベストアンサー率48% (33/68)
回答No.1

下記のコードでうまくいくでしょうか? G1,G2セルに開始、終了の行番号を入れてください。 Sub 印刷()   On Error GoTo err   Application.ScreenUpdating = False   a = Range("G1").Value   b = Range("G2").Value   y = 3   x = 1   For i = a To b     If y = 3 And x = 1 Then       Sheets(2).Range("A1:I25").ClearContents     End If     Range(Cells(i, 2), Cells(i, 5)).Copy     Sheets(2).Cells(y, x).PasteSpecial Paste:=xlValues     Cells(i, 6).Copy     Sheets(2).Cells(y + 2, x).PasteSpecial Paste:=xlValues     y = y + 5     If (y = 28 And x = 6) Or (i = b) Then       Sheets(2).PrintOut Copies:=1       y = 3       x = 1     End If     If y = 28 Then       y = 3       x = 6     End If   Next err:   Application.ScreenUpdating = True End Sub シートの名前は変更してもいいですが、順番は変えないようにしてください。

hikaru1979
質問者

お礼

inte-noriさん、毎回毎回本当にありがとうございます。完成することができました。期限が少なかったため勉強する時間が無く、また質問しました。 また、分からない所があって、質問が3つあります。 1.Sheet1の1行目を番号、英単語などの項目名を入れたいんですが、1行目に入れても同様のプログラムにした  いです。 2.sheet2の「例文の意味」を入れるセルを、A10からD10、A15からD15(全部で10コ)など、セルの結合をして表示したいです。出来なければ、sheet2のB5、B10・・G5・・G25に入れたいです。 3.sheet1のB列の英単語のデータを並び変えてもA列の番号、C列の発音などがついて来るようにしたいです。今後、英単語は増えていくんですが、頭文字をaからZ順に並べたいんですが、可能でしょうか? よろしくお願いします。

その他の回答 (2)

  • inte-nori
  • ベストアンサー率48% (33/68)
回答No.3

「1.」の項目名の追加については、問題ないと思います。ただし、このプログラムでは行番号を基準にして印刷をしていますので、一つ目の単語から十個目の単語までを印刷したい場合には、G1に2、G2に11を入れるようになります。 「2.」については、セルを結合すると貼り付けがうまくいかないようですので、B列及びG列に表示する方法でお願いします。シート2の結合をすべて解除し、コード15行目の     Sheets(2).Cells(y + 2, x).PasteSpecial Paste:=xlValues のところを     Sheets(2).Cells(y + 2, x + 1).PasteSpecial Paste:=xlValues に変更してください。 また「3.」については、データの入っている範囲(仮に100行目までデータが入っているならA1:F100)を選択した後、「データ」>「並べ替え」で、英単語の入っている列を「最優先されるキー」に指定すれば、並べ替えられると思います。

hikaru1979
質問者

お礼

ありがとうございます。完成することができました。 今後多分変更箇所は無いと思います。 分からない事がありましたらまた新規で質問するかもしれませんが、その際はよろしくお願いします。 本当にありがとうございました。

  • keikan
  • ベストアンサー率42% (75/176)
回答No.2

全然参考にならないかもしれませんが、 この手の個々のデータを同じように扱う処理をするのであれば、Accessを強くおすすめします。 今回の場合、Accessを使えば、コードを書く必要もなく 見たまんまの配置をマウスで項目を配置するだけでできてしまいます。下記のような追加事項も簡単にできます。 もし利用環境があるのなら、一度試してみてください。

hikaru1979
質問者

お礼

ありがとうございます。今は利用環境がないためできませんが、今後検討したいとおもいます。

関連するQ&A

  • 誰かエクセル教えてください!!(初心者です)

    sheet1にA1からA100まで連番が入っています。     B1からB100まで英単語が入っています。     C1からC100まで発音が入っています。 sheet2に2列5行で10個の単語カードを作りたいんです。これをフォームとします。 sheet1のA1からA100の任意の番号を入れたら sheet2のカードが印刷されるようにしたいです。 1~100と入れたら全部印刷されるようにもしたいです。単語は今後も増えていきます。 Sheet2の10個の単語カードは10個を超えたりシートを何枚も使うのではなく、年賀状作成ソフトのように1枚だけ(この場合10個ですが)にしたいです。 よろしくお願いします。

  • エクセル関数で文字をリンクさせ、カードを作りたいのですが。。。

    以前、QNo.3889525 で同様の質問をさせて頂きましたが、出来栄えが良かったため、その後また子供に漢字カードを 作ってあげたくて数式を変えてみましたが、どうしても分からなくなってしまいました。 今回は、 シート1に漢字のデータ(漢字、よみ、英単語、発音記号)があり、それをシート2に印刷用としてリンクさせたいのです。 1語分のカードは表裏用があり、AB列が表用、CD列が裏用のそれぞれ2行づつで出来ています。 印刷用シートは表(AB行)裏(CD行)用で横4行/縦2行になっています。それぞれデータを1行目→2行目1行目→2行目…と 交互に入るように設定したいのですが。。。 ◆Sheet1(データ)     A     B     C       d 1   一    いち    one     発音記号 2   右    みぎ    right    発音記号 3   雨    あめ    rain     発音記号 4   音    おと    sound    発音記号 ◆Sheet2(印刷用)      A      B      C         d 1    一     右      one       right 2    いち    みぎ    発音記号    発音記号 3    雨     音      rain        sound 4    あめ    おと    発音記号    発音記号 以前質問させて頂いた時にご回答頂いた数式に手を加えてみました。現在はAB行は上手く出来ていますが、CD行がどうしても出来ません。 現在の数式は(C行) =INDEX(単語表!$C:$D,INT((ROW(C1)-1)/2)*2+COLUMN(C1),MOD(ROW(2:2),2)+1)  なのですが、シート1の3行目(rain)からしか表示されず、1~2行目(oneとright)がどうしても出てきません。 AB行は上手く出来ているので、恐らく上記の関数を少し変えれば出来るだろう!と試していたのですが、無理でした。。。 よろしくお願いいたします!!

  • エクセルのデータ加工

    過去ログなどを探してみましたが見つけられませんでしたので ご教示下さい。 ワードで差込印刷を行うために、以下のシート1をシート2へ 加工したいのですが・・・・レコードが5000位です。 (シート1) A B C D 1 a あ 男 1 b い 女 2 c う 男 3 d あ 女 3 e う 女 3 f あ 女 (シート2) A B C D E F G H I J K L M 1 a あ 男 b い 女 2 c う 男 3 d あ 女 e う 女 f あ 女 こんな加工を一括して行えますでしょうか? 事業所番号Aにて管理を行っています。 現在シート1なのですが差込印刷を事業所ごとに行う必要があります。 そのためシート2のように加工したいのですが・・・ 宜しくお願いいたします。

  • エクセル関数で文字を一つ飛ばしにリンクさせたいのですが。。。

    エクセルで子供に英単語の暗記カードを作ってあげたいのです。 シート1に英単語のデータ(単語、意味、発音記号)があり、それをシート2に印刷用としてリンクさせたいのですが、 1単語のカードが(単語、意味、発音記号)の3行で出来ているため普通にリンクを貼って3行をセットに下へドラッグしても、 単語のデータが2行とばしでしかリンクされなくて困っています。 印刷用シートは横2行になっているので、データを1行目→2行目1行目→2行目…と交互に入るように設定したいのですが。。。  -データ-(シート1)        -印刷用-(シート2) television  テレビ 記号      television  telephone telephone   電話  記号  →    テレビ    電話 floor     床   記号        記号     記号 calculator  電卓  記号       floor    calculator                     床     電卓                     記号     記号 1行目には奇数の単語、2行目には偶数の単語がリンクされる様にすれば良いのではないか?と考えたのですが、どの様な関数を使えば 良いか分かりません。 あと関数とは別なのですが、それぞれのカードの裏に単語の意味の イラストをつけて印刷したいのですが、エクセルにイラストを沢山 つけて保存することは可能でしょうか? よろしくお願いいたします。

  • エクセルについての質問です。こんなことはできるのでしょうか?

    エクセルについての質問です。こんなことはできるのでしょうか? まず「データ」という名前のシートのA列に動詞,名詞など品詞が入っています。B列に高1,高2など学年が入っています。C列に数字(2や3など)が入っています。D列に英単語が入っています。E列に日本語訳が入っています。F列は作業列でF2のセルに=IF(AND(A2=問題作成!$A$2,B2=問題作成!$B$2,AND(C2>=問題作成!$C$2,C2<=問題作成!$D$2)),ROW(A1),"")が入っており,以下のセルに数式がコピーされています。 次に「問題作成」というシートのA5セルに=IF(COUNT(データ!$F$2:$F$2294)<ROW(A1),"",INDEX(データ!D$2:D$2294,SMALL(データ!$F$2:$F$2294,ROW(A1))))が入っており,以下のセルに数式がコピーされています。B5セルには=IF(COUNT(データ!$F$2:$F$2294)<ROW(B1),"",INDEX(データ!E$2:E$2294,SMALL(データ!$F$2:$F$2294,ROW(B1))))が入っており,以下のセルに数式がコピーされています。 「問題作成」のシートのA2セルは動詞や名詞など品詞が選択できるようになっています。B2セルは学年が選択できるようになっています。 この後,C2セルにWordでページを指定して印刷するときのように,2-3,6,8のように入力すると,「データ」のシートからそのページに該当する単語のみを「問題作成」のA5,B5以下に引っ張ってくるようなことはできますでしょうか? また,入っている数式に問題があれば,お教え願いたいのですが。 よろしくお願いいたします。

  • エクセルの画面分割

    エクセルで日本語学習者のための単語帳を作っています。 A列に単語を入れて、B、C、D列には意味や例文を入れています。 普段はB、C、D列は「表示しない」にしておき、 A列のセルをクリックするとその単語の意味や例文を、 E1、E2、E3に表示するようにしています。 ここまではいいのですが、 下の方の単語を見るために画面を下にスクロールしていくと、 画面全体が動いてしまい、うまくいきません。 「分割」や「ウィンドウ枠の固定」を試してみましたがうまくいきません。 A、B、C、D列とE列を別々に縦スクロールするには、 どのように設定して画面を固定したらよいでしょうか。

  • エクセルの関数で抽出

    EXCELで単語テストを簡単に作れないかと試行錯誤しているのですが、 A1 番号   1~2569まで B1 英単語 C1 日本語訳 D1 順位 =RANK(E2,$E$2:$E$2570) E1 乱数 =RAND() F1 選択範囲 F2 選択番号始め F3 選択番号終わり G1 抽出番号(A1~の抽出したもの) H1 選択英単語(B1~の抽出したもの) I1 選択日本語(C1~の抽出したもの) こういうデータがあり、H1~I1にF2とF3で選択した範囲(たとえば10~30等)を入力するとG1~I1にその範囲でランダムに重複ない選択範囲内の問題が抽出されるようなものを作りたいのですが、うまく出来ません。 やり方を教えていただけないでしょうか。よろしくお願いします。

  • エクセルで印刷

    エクセルのシートに名簿があります。 A列に番号(1~70)、B列に住所、C列に氏名・・G列まであります。 シート2の指定したセル(c3.c5・・)にシート1の指定した 番号の住所、氏名を印刷したいのです。 同じシートでも構いません。 シート上側に印刷フォーム、下側に名簿を移します。 番号指定、印刷、1枚づつの印刷でも構いません。 過去の質問を見たのですが難しくて理解できません。 PC初心者ですが宜しくお願いします。

  • エクセルのデータをワードでリンクし、自動印刷をかけたい

    エクセルで電話一覧を作成し、 sheet1に、 A  B  C  D NO 氏名 電話 FAX sheet2に フォームを作成し、VLOOKUPでC1に1~50まで 順次入力すると、氏名・番号・FAXが反映してあります。 このフォームをWordにリンクして、 そのWordを自動印刷したい

  • EXCELで単語テスト作成

    EXCEL2003で作った英単語・意味・例文・例文訳のデータを 例えば番号1~50までと指定した範囲をランダムで20問選んで、 印刷したいんですけど、どうやったらいいか教えて下さい。 毎回手作業でやらずに自動化して、Wordの文書に貼り付けしたいんですが、出来ますか?教えて下さい。よろしくお願いします。

専門家に質問してみよう