• ベストアンサー

ACCESS(EXCEL)で、ある映像の一部分のみを再生させるためには?

現在、大学院で、テレビ番組で発話されたことばとその映像を使ってある調査をやっています。 そのときに、番組のなかで音声で発話されたことばは、書き起し、エクセルの一セルに一文づつ入力しています。そして、その隣には、発話時刻を入力し、番組のどこの部分で、その文が発話されたかを、すぐに分かるようにしています。 たとえば、番組が始まって、「05:30」のところで、「太郎はご飯を食べた」という発話があったとすると、セルA1にその発話を入力し、セルA2にその発話時刻である「05:30」を添えています。 そして、セルA2のとなり(セルA3)には、番組の映像を、ハイパーリンクを使って、リンク付けています。こうすることで、ある発話の該当映像はすぐに出せるようになりました。 しかし、この場合、どうしても、映像が、最初から再生されてしまうので、自分が確認したいところ(「05:30」)を見るには、また「05:30」のところを探さなければなりません。 そこでですが、ACCESSやEXCELのあるセルに、特定の時刻(たとえば、上の場合だと、「05:30」)を予め入力しておくことだけで、確認したいたいところの映像のみを、見る方法はないでしょうか。 ちなみに、バッチファイルで起動する動画再生ソフト(Mplayer)は、試してみましたが、文ごとにいちいち予めバッチファイルを作り、貼り付けないといけない不便さがありました。 また、以上のことが可能なマクロの開発に関しても、専門の業者の方に相談してみましたが、見積もり価格が非常に高かくて、お願いできませんでした。 できれば、上記のことが可能な既存のソフトまたは方法を教えていただきたいですが、もしそれが無理なのであれば、そのためのマクロ開発費用のだいたいの相場でもぜひとも教えていただければと思います。 長くなってたいへん申し訳ありませんが、よろしくお願いします。

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

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.3

> マクロ開発費用のだいたいの相場 SOHOなどなら時給換算で2000円~3000円くらいではないでしょうか? 1日かかるなら3万~5万ほどです。 それ以下だと普通はやらない(やりたくない)です。 1500円でも派遣事務のExcelWordが使えるだけの女子と同じですからね。 なので、それよりも安くということなら、学生さんかお知りあいで 詳しい人がよいと思います。 なお、UWSCのような オートパイロットソフトをバッチファイル代わりに使う方法もあります。(ちょっとクセがありますが、一応無料です) http://www.uwsc.info/ VBAの記述に似た記述で作れますし、IEやExcelとのCOMオートメーション連携もできます。 参考書→http://www.izagne.com/uwsc/ もしかしたら大きな本屋にあるかもしれませんので立ち読みなどしてみてはいかがでしょうか?

freewill7
質問者

お礼

ご回答、ありがとうございます。 「マクロ開発費用の相場」まで教えてくださって本当に助かりました。実は、今やっている調査に関しては、研究費をいただいておりまして、 専門の業者の方に開発を依頼したところ、35万円くらいがかかると言われました。一応こちらの要望としては、10~15万で解決できたらと思っていたので、ちょっと高すぎるなあと悩んでいました。 それで、このサイトを通じて、これらのことに詳しい方々のご意見をぜひともお聞きしたいと思い、質問させていただきました。 本当にありがとうございます。

その他の回答 (4)

  • yu_tang
  • ベストアンサー率81% (26/32)
回答No.5

まあ基本的には他の方と一緒の意見ですが…。 外部ツールを起動させるのではなく、ActiveX (Windows Media Player ActiveX コントロール) を挿入して使う手もあります。 どっちが都合が良い状況なのか分かりませんが。 その場合の再生位置(開始秒数)の指定方法は下記。 http://msdn.microsoft.com/ja-jp/library/cc429695.aspx 実例。 http://www.happy2-island.com/bbs/bbs.cgi?mode=view&no=80 ただし、これも自力で組めないとか、そもそも ActiveX って何?? 状態の場合は、詳しい方(プロでも知り合いでも)に頼んだほうが 良いと思います。 > マクロ開発費用のだいたいの相場 gadd3 さんも書かれていますが、プロなら3万以下はないです。 電気工事でも、たとえ結果的にゆるんでいたネジを発見して締めた だけだったとしても、プロを拘束して結果を出させたら、一定の 基準単価より下には下がらないです。 それ以下は、お友達価格とか、学生バイトの範疇ですね。

参考URL:
http://msdn.microsoft.com/ja-jp/library/cc429695.aspx
freewill7
質問者

お礼

ご回答、ありがとうございます。 バッチファイルなどを使って外部ツールを起動させる方法以外にも、方法があるんですね。 教えてくださったいずれかの方法を使って自分でやってみるか、またはプロの方に依頼するかについては、まだ迷うところがありますが、まずは、ちょっと自分で試してみたいと思います。 ありがとうございます。

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.4

おまけです。 もし、バッチの直接実行で解決できるならご参考に。 違ってたら無視してください。 ●Accessから他のアプリケーションのファイルを開く方法 公式 Call Shell("アプリ本体のパス",1) ファイルを直接開きたいときは、プログラム本体のパスのあとに半角空けてから 開きたいファイルのフルパスを記述する。 以下の例は、 C:\dfsr01ハガキ告知面タテ.doc を開く。 ≪例1≫ Call Shell("C:\Program Files\Office2000\Office\Winword.exe C:\dfsr01ハガキ告知面タテ.doc", 1) ≪DOSプログラムを直接実行させる場合≫ Call Shell("xcopy c:\order01 d:\order01 /s /e /d /y", 1) ≪DOSのバッチファイルを実行させる場合≫ Dim RetVal RetVal = Shell("C:\WINDOWS\デスクトップ\Data\databack.bat", 1) ' databack.batを実行します。 ≪その他≫ Call Shell("""C:\Program Files\Mojosoft\Rockm\Rockm.exe"" ""C:\My Documents\Roc\画像回転と画像コピー.roc""", 1) Call Shell("C:\Program Files\Internet Explorer\Iexplore.exe C:\order01\index.htm", 1) ●おまけ・・・バッチファイルを実行中に待機する方法 Option Compare Database Option Explicit '******************************************************************************** 'WindowsAPI宣言 'OpenProcess関数 'プログラム実行状態の監視を開始させる関数 'GetExitCodeProcess関数 'プログラムが終了したか調査する関数 'CloseHandle関数 'プログラム実行状態の監視を終了させる為の関数 '******************************************************************************** Declare Function OpenProcess Lib "kernel32" _ (ByVal dwAccess As Long, ByVal lpCommandLine As Long, ByVal IDProcess As Long) As Long Declare Function GetExitCodeProcess Lib "kernel32" _ (ByVal lpdExitCode As Long, hHandle As Long) As Long Declare Function CloseHandle Lib "kernel32" _ (ByVal hObject As Long) As Long Public Const PROCESS_QUERY_INFORMATION = &H400 Public Const STILL_ACTIVE = &H103 Public Function WaitShell(CommandLine As String) Dim ShellReturn As Long Dim ShellStatus As Long Dim ProcessReturn As Long Dim ProcessStatus As Long 'Shell関数を実行する ShellReturn = Shell(CommandLine, 2) '第2引数が1だとウィンドウを表示、2はステータスバー。ファイルですか?フォルダですか?と聞かれることもあるので、vbHideにはしないほうがいい。 'プログラム実行状態の監視を開始 ProcessReturn = OpenProcess(PROCESS_QUERY_INFORMATION, False, ShellReturn) Do 'プログラムが終了しているか調査 GetExitCodeProcess ProcessReturn, ShellStatus DoEvents 'プログラムが実行されている間はループしつづける Loop While ShellStatus = STILL_ACTIVE 'プログラム実行状態の監視を終了 ProcessStatus = CloseHandle(ProcessReturn) End Function 以上をコピペして実行時は以下のようにする。 Function file_copy01() DoCmd.OpenForm "しばらくお待ちください" Forms![しばらくお待ちください].Repaint Call WaitShell("D:\たけうち\カレンダー巡回結果_全員\全員データ吸い込み.bat") 'バッチファイルを実行。 DoCmd.Close acForm, "しばらくお待ちください", acSaveYes End Function

freewill7
質問者

お礼

ご回答、ありがとうございます。 関数やプログラムなどについてあんまり詳しくなくて、せっかく詳しく教えてくださったのに、正直よく理解できないところも多いですが、これから紹介してくださった書籍などをも参考にしながら、少し勉強してみようと思います。 本当にありがとうございます。

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

> 文ごとにいちいち予めバッチファイルを作り、貼り付けないといけない不便さがありました。 これは「面倒ではあるが、一応目的の動作ができる」ということでしょうか? もしそうでしたら、ExcelやAccessでは、Shell関数を使って、 バッチファイルの 命令文を直接VBA内に書いて実行することができます。 (つまり、バッチファイルを作成せずに、VBA上で直接 XcopyやPath、Dirなどのバッチ命令を実行できます。) そのとき、バッチ内容を関数化するなどすると、多少でも 手間が省けるのではないでしょうか?

freewill7
質問者

お礼

ご回答、ありがとうございます。 「文ごとにいちいち予めバッチファイルを作り、貼り付けないといけない不便さがありました。」は、おっしゃるとおりに、 「面倒ではあるが、一応目的の動作ができる」という意味でした。 パコソンやそれに関してあんまり詳しくなくて、関数に、Shell関数や、それを使った解決方法があるとは知りませんでした。 一応、手元に「できる大事典 EXCEL関数」という本があったので、調べてみましたが、Shell関数については書いてないですね。ほかの書籍やネットなどを参照しながら、これから、バッチ内容の関数化を試してみます。 ありがとうございます。

noname#182251
noname#182251
回答No.1

>(Mplayer)は、試してみましたが、文ごとにいちいち予めバッチファイルを作り、貼り付けないといけない これでできるならば、バッチファイルを自動生成するプログラムを組めばよいのでは? 主たる環境はACCESSなのかEXCELなのか?

freewill7
質問者

お礼

ご回答、ありがとうございます。 主たる環境はEXCELですが、これからACCESSに変えようと思っているところです。 パソコン全般やプログラムなどに関して、ほとんど専門知識がないので、バッチファイルを自動生成してくれるプログラムがあるということも知りませんでした。 他の方々のご回答などを参考にしながら、これから使いやすそうなものを調べようと思います。

関連するQ&A