【´・ω・`】:S田さんから下のような丁寧なメールを頂いた。
**************************************************************************************
初めまして。英語塾の教員をしております、S田と申します。
教材、テスト作成のための方法を色々と調べていた所、くまぷーさんのページを見つけました。
エクセルがこんなに活用できるのかと、目からウロコが落ちるようでした。ありがとうございます。
当座、私の塾で単語テキスト1冊分の単語テストを作る必要があり、効率的な作成法を考えていたため、
「英単語ランダム出題マクロ」が大変参考になり、ぜひ活用させていただきたく思います。
そこで、一点質問があります。
ホームページで出ているマクロはDataタブの英単語のみをMainタブに出力していましたが、
Dataタブの英単語の隣の列に日本語の意味を書き、英語と日本語の両方を一括してMainタブに出力することは可能でしょうか。
問題と同時に解答も作る必要があり、同時に出力できれば、英語に対応する日本語をそのまま解答に貼り付けることができるため、より活用できるかと考えています。
マクロの一部を改変して対応することができるのであれば、改変する方法を教えていただけると大変助かります。
お忙しい中かと存じますが、ご教授いただけますでしょうか。
よろしくお願い致します。
S田
**************************************************************************************
【´・ω・`】:さて、下が問題のファイルだ。
参考ファイル: QandA001をダウンロード
仕様A
(1)1000単語の中から1番の単語から50番の単語まで
というふうに出題範囲を指定することができる。
(2)(1)の出題範囲からさらに任意の数を出題することができる。
(1)1000単語の中から1番の単語から50番の単語まで
というふうに出題範囲を指定することができる。
(2)(1)の出題範囲からさらに任意の数を出題することができる。
**************************************************************************************
【´・ω・`】:S田さんは英語と日本語を並べて出力したいと言っているわけだ。
(●`ε´●):そんなの簡単だ。おれが教えてやる。
【´・ω・`】:べべちゃん、VBAがわかるのか?
(●`ε´●):そんなもの知らなくても、ちょっと頭を使えばなんとでもなる。
1. DATAシートのB列(英単語の列)に・・・・・
respect@尊敬する
・・・・のように
英単語@訳語
・・・・の形で入力しておく
2. これでマクロを走らせればmainシートに英単語@訳語の形で出力されるので
たとえばmainシートのセルI2にのK列に「respect@尊敬する」と表示されているとして
K2に・・・
=LEFT(I2,FIND("@",I2)-1)
L2に・・・
=MID(I2,FIND("@",I2)+1,LEN(I2)-LEN(K2)+1)
・・・・と入力すればK2にrespect、L2に尊敬すると表示される。
【´・ω・`】:なるほど、これなら元のファイルのコードをいじらなくても済むな。
くまぷー様
お忙しい中、早々に、しかも丁寧にご返答いただきありがとうございます。
上記の関数を記入して、無事に英語と日本語を対応させることができました。
ただ、上記の関数でK2,L2にした作業を他の単語にもしようと下にドラッグすると、全て同じ単語が出てきてしまいました。(全てI2に対応した関数にしかならない)
K3,L3にはI3を、K4,L4にはI4を、という風に対応させる場合は、何か効果的なものはありますでしょうか。
また、上記では@を使っておられましたが、例えば@がただの全角スペースであっても、関数の中の@をスペースにすれば機能するものなのでしょうか。
(念のため、後で誤字脱字をチェックする際に、I列に表示された問題範囲を、他の職員も見れる形でそのまま残しておきたいと思っています。もちろん手作業で@を取り除いていくことはできるのですが、何か効果的な方法があればと思い伺った次第です)
重ね重ね、素人の質問で恐縮ですが、よろしくお願い致します。
S田
(メールでは、うっかり本名を書いてしまったにも関わらず、ブログ上では匿名にしていただき、ありがとうございました)
投稿情報: S田 | 2015年3 月 7日 (土曜日) 午後 08時42分
くまぷー様
すみません。先程の質問に追加でよろしいでしょうか。
今気づいたのですが、実はDataタブの元の英単語に、アクセントがつくアルファベットに下線を入れていたのですが、マクロ実行後のMainタブでは消えていました。
マクロ自体が数値を移す作業なのでこればかりはどうしようもないかと思うのですが、下線を残す方法がもしあればご教授いただけますでしょうか。
(もし無理であっても、手作業で入れることはできるのですが)
よろしくお願い致します。
S田
投稿情報: S田 | 2015年3 月 7日 (土曜日) 午後 08時57分
>上記の関数でK2,L2にした作業を他の単語にもしようと下にドラッグすると、全て同じ単語が出てきてしまいました
コピー、貼り付けでOKなはずですが・・・
>例えば@がただの全角スペースであっても、関数の中の@をスペースにすれば機能するものなのでしょうか。
OKです(ご自分で実験すればすぐにわかることです)。
しかし、区切り文字に全角スペースはお勧めしません。
大勢で作業する場合、半角スペースが混在したりして思わぬ不具合を招くことがよくあります。
不可視の文字は使うべきではありません。
>手作業で@を取り除いていくことはできるのですが、何か効果的な方法があればと
=SUBSTITUTE(I2,"@","*")
上式で@を*に置換することが出来ます。
"*"を""にすれば@を取り除けますでしょ?
>下線を残す方法がもしあれば
元ファイルの仕様を大きく超えています。
簡単な手直しでは無理です。
投稿情報: くまぷー | 2015年3 月 7日 (土曜日) 午後 11時33分
くまぷー様
たびたび、ご返事ありがとうございました。
自分で実験すればすぐに分かることでしたのに、わざわざ質問してしまいすみませんでした。
いただいた返答をもとに、作業を進めて参りたいと思います。
本当にありがとうございました。
S田
投稿情報: S田 | 2015年3 月 9日 (月曜日) 午後 12時39分