質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1250閲覧

ExcelVBAでWeb上のmp3ファイルを再生したい。

umai29

総合スコア19

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2020/06/14 14:12

編集2020/06/14 15:31

weblio辞書というサイトから英単語の情報を取得するプログラムをExcelVBAで組んでいます。

A列に英単語、B列に「発音」という文字があるとき、B列の「発音」というセルを右クリックしたときに、Web上にあるmp3ファイルを再生できるようにしたいです。

厳密にいうとハイパーリンクを設定すればブラウザ起動で再生はできるのですが、できればブラウザを立ち上げずにmp3ファイルを再生したいのですが、可能でしょうか。

例えば、セルA2に「people」という単語が入力されているとき、セルB2の「発音」セルを右クリックすると、

URL:https://ejje.weblio.jp/content/people
からmp3ファイル(HTML以下参照)のURLを取得し、音声が流れるようにしたいです。

HTML

1(一部抜粋) 2<audio class="contentAudio" controls="controls" preload="none"> 3 <source src="https://weblio.hs.llnwd.net/e7/img/dict/kenej/audio/S-AB58A66_E-AB5A8C8.mp3" type="audio/mpeg"> 4</audio>

VBAでは以下のようなプログラムを組みました。

VBA

1Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 2 'B列を右クリックしたときのみイベント発生 3 If Target.Row > 0 And Target.Column = 2 Then 4 5 'IEを起動し、Weblioのページを非表示で開く 6 Dim objIE As InternetExplorer 7 Set objIE = New InternetExplorer 8 objIE.Visible = False 9 objIE.navigate WEBLIO_URL & "/content/" & Cells(Target.Row, 1) 10 11 'mp3ファイルのURLを取得 12 Dim sourceTags As IHTMLElementCollection 13 Set sourceTags = objIE.document.getElementsByTagName("source") 14 15 Dim srcTag As IHTMLElement 16 Dim soundSrc As String 17 For Each srcTag In sourceTags 18 soundSrc = srcTag.src 19 Exit For 20 Next 21 22 Shell "C:\Program Files\Windows Media Player\wmplayer.exe /play /close" & soundSrc 23 End If 24End Sub

URLの取得までは確認できているのですが、音声の再生まではできていません。
Web上のmp3をクライアント上で再生する場合、どのような処理を追加すればよろしいのでしょうか。

ご教示をお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

感ですけどieでそのまま遷移したら音鳴らないんですか?

vba

1objIE.navigate soundSrc

あとはgoogle chromeとかブラウザで開けば…もちろん閉じる方法が別に必要になるけど。

vba

1Shell "cmd /c start https://weblio.hs.llnwd.net/e7/img/dict/kenej/audio/S-AB58A66_E-AB5A8C8.mp3"

投稿2020/06/14 15:23

sousuke

総合スコア3830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umai29

2020/06/14 15:33

ご回答ありがとうございます。すみません、説明が不足しておりました。ハイパーリンクを設定すればブラウザ起動で音声を再生できるのですが、できればブラウザを起動せずにmp3をWindows Media Playerみたいなソフトで再生できないかと思いまして。ブラウザ起動しても、せめて非表示状態で音を再生するのみにしたいです。よろしくお願い致します。
sousuke

2020/06/14 16:04

それはshellの引数でできるのでは?vbHydeとかvbMinimizedNoFocusでいいんじゃないですかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問