質問: 英語単語を読み上げるコンテンツを作る方法 youtubeに「絶対覚える英単語1000」というサイトがあるのですが英単語を覚えるのに役立ちます。 この「絶対覚える英単語1000」を真似して、自分で、 1英単語が表示する 2その英単語を読み上げる 3しばらくして、その英単語に対する日本語が表示する 4その日本語を読み上げる コンテンツを、作りたいですが、どのようにすれば、良いでしょうか? ソフトは、 日本語読み上げソフト「テキスト読み上げ太郎」を持っています。 ひよっとして、プログラムを作る必要が御座いましたら、excel2013のvbaも少し使えます。
回答: すみません。 お礼を見落としてしまいました。すぐに手を加えました。 補足のほうは、特別な時のために取っておいてくださいね。 それから、「我儘を申しまして」なんていう気兼ねは、不要です。 それは、私も考えていたことですから、自分なりのアレンジをいくつか加えています。 私は、システムとして考えていますから、これが終われば、p-dicから抜き出し問題を作る、データ作りも考えなければなりません。私は、数千から万のデータを保有していますが、気に入らないものが大半です。それで、「学辞郎」をわざわざ手に入れました。これから、問題を作るのもなかなか大変です。p-study system用というツールはあっても、私は、満足していませんでしたから。 今、私の英単語の語彙力は、words and tools のintermdiate ですと、10,000語をやっと越えるぐらいです。120語ありますから、もっとも量の多い単語テストです。 http://www.bhever.net/wordsandtools/index_lemma.htm http://testyourvocab.com/ こちらは、アテになりませんが、15,000レベルまで一応いきます。 > vbaを実行しました。 これがスタートですから、後は、できれば、逆にアドバイスしていただきたいと思います。 #3で書いたように、あまりデザインとか私は得意ではありません。 私自身としても、ある程度の格好、システムとして作りたいと思います。 >更に、大きな文字で、表示して頂きましたら、うれしいです。 私は、フォントを16にしています。これは、マクロでなくても良いと思いますが、臨時的にマクロに入れておきましょう。 こんどの改良点を少し説明すると、★で、表示スピードが多少変わります。 spd は、スピードで、数が多くなるほど、遅くなります。 ★★ swは、sw = true とすると、日本語が先になり、英語が後になって出てきます。 =""409""> となっているのが、米国です。 =""809""> となれば、英国です。 ただ、聞いてみると、日本語のクォリティが低いなって思います。 misakiさんがあればと思いますが、組み入れられないかもしれません。しかし、misakiさんがあれば、英語の方もクォリティを上げたくなります。いずれにしても、日本語のクォリティが上がればと思います。 データは、あくまでも、シートのセルにこだわりたいと思います。#3で書いたように、記録をする必要があるのではないかと思うからです。 ボタンを右クリックして、マクロの登録で、こちら「settingvoice2」に変えます。以下で、少し楽しんでみてください。 '// sub settingvoice2() dim voice as spvoice dim s1 as string, s2 as string dim dispsh as worksheet dim datash as worksheet '表示シート1[worksheets("sheet1")]で使う set dispsh = worksheets("sheet1") 'データシート[worksheets("sheet2")]のa2 から、下に入れていく。 set datash = worksheets("sheet2") set voice = new spvoice 'テキスト・スピーチ tts インスタンス const spd as long = 50 '通常50~200まで ★ dim bln as boolean dim sw as boolean: sw = false '日英切り替えスイッチ★★ with dispsh .range("c4, c6").clearcontents if bln = false then with .range("c4, c6").font if .size < 12 then .size = 16 .bold = true bln = true end if end with end if end with if sw then voice.speak "さあ 英単語を覚えましょう" else voice.speak "learn the next words by heart" '英語 end if with datash for j = 2 to .cells(rows.count, 1).end(xlup).row if sw then s1 = .cells(j, 2).value: s2 = .cells(j, 1).value else s1 = .cells(j, 1).value: s2 = .cells(j, 2).value end if for i = 1 to len(s1) sleep spd dispsh.range("c4").value = mid(s1, 1, i) doevents next i application.screenupdating = false if sw then voice.speak s1 '日本語 else voice.speak "" & s1 & "" '英語 end if application.screenupdating = true sleep 1000 for i = 1 to len(s2) sleep spd dispsh.range("c6").value = mid(s2, 1, i) doevents next i application.screenupdating = false if sw then voice.speak "" & s2 & "" '英語 else voice.speak s2 '日本語 end if application.screenupdating = true sleep 1000 dispsh.range("c4,c6").clearcontents next j end with if sw then voice.speak "おつかれさまでした。" else voice.speak "thank you for listening" '英語 end if set voice = nothing end sub '//