Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Microsoft 365)
VBAで音声ファイルの正確な長さ(再生時間)を算出する方法
投稿日時: 22/06/20 00:36:02
投稿者: s-kikuchi

初めて投稿します。
VBAで、音声ファイル(wavやmp3)の小数点以下まで含めた正確な長さ(再生時間)を算出する方法はあるでしょうか。
 
特定のフォルダの中にある音声ファイルの長さの合計値を算出したいと思っています。
そこで、あちこち調べて要約「.GetDetailsOf」なるメソッドにたどり着いて、音声ファイルの「長さ」を、「0:03:12」のように取得することができました。
 
しかし、この数字の通りの長さで音声ファイルを再生すると、最後の方で音が途中で切れててしまうのです。
 
調べてみたところ、表示上は「0:03:12」となっていても、実際の長さは、00:03:12.465 のように小数点以下の値が存在しているようで、これが音が途切れてしまう原因のようでした。
 
音声ファイル(wavやmp3)の小数点以下まで含めた正確な長さ(再生時間)を算出する方法はあるでしょうか。
 
直接の数字が取れなくとも、「ビットレートとなにかの値を計算すると算出できるよ」のような情報でも結構です。
 
知見をお持ちの方、ご支援いただければと思います。

回答
投稿日時: 22/06/20 07:44:40
投稿者: simple

https://qiita.com/kon_yu/items/6a556b6411a7291a3333
にあるPythonの mutagenというパケージを使ったら、
小数点一桁までの秒が取得できました。(テスト実行はひとつのmp3だけですが)
 
xlwingsのようなツールを使えば、Excelからpythonが操作できますので、
試してみてはいかがですか?
 
# ここはVBAの質問掲示板です。
# 正直申し上げて、VBAの質問というものから外れている気がします。
# VBAに限定すると範囲が狭まってしまう気がしますし、
# もっと広いテーマも扱う質問掲示板で質問したほうが、
# たくさんのコメントが寄せられるのではないかと思います。

回答
投稿日時: 22/06/20 08:41:17
投稿者: Suzu

再生時間 を 求めた時間 プラス 1秒 で再生する で 事足りないのでしょうか?

投稿日時: 22/06/21 22:02:16
投稿者: s-kikuchi

simpleさま
 
ご回答ありがとうございます。
やっぱり難しそうですね。
 
質問の中には書いていませんでしたが、環境条件的に、事前に用意されたアプリケーション以外のものを新規にインストールすることが非常に難しい環境でしたので、願わくばExcelさえあれば実現可能なVBAで、と思ってこちらのフォーラムに縋った次第です。

投稿日時: 22/06/21 22:03:54
投稿者: s-kikuchi

Suzuさま
 
ご回答ありがとうございます。
音楽などはご提案頂いた内容で回避できるのですが、人との会話の中で、長文であるがゆえに分けて収録している音なども含まれていまして、それで+1秒という手段を取ってしまうと、不自然な間ができてしまうのです。
 
なんとも難しい要件でして・・・。

投稿日時: 22/06/21 22:05:16
投稿者: s-kikuchi

ご回答頂いたお二方。
また、この質問を閲覧頂いた方々。
ありがとうございました。
 
一旦、質問を締めさせていただきます。