[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAである条件をクリアした場合のみ、WAVの音源とOKの文字をだしたい』(Decoy)
初めてご質問させて頂きます。
Decoyと申します。
下記のVBAをエクセルに入れたいと思っているのですが全く構築方法が分かりません。。。
そんな中このサイトを発見し、藁にもすがる思いで投稿させて頂きました。
ご教授いただけますと幸いで御座います。
エクセルのVBAで、B9の値がC9より低く、かつC9のセルとD9のセルの値が同じ場合のときに、F10にOKの赤文字を表示し、任意のWAV音源の音が鳴る。
B10の値がC9より低く、C10のセルとD10のセルが同じ値の時に、、、、、、
(続いていきます)
このような仕様のVBAを作りたいのですが、当方パソコンにめっぽう弱く、参考書片手に作成しているのですが全く理解できずに進んでいないのが原状です。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
>(続いていきます)
これが気になりますね。
条件が排他的でなかったら、wavファイルの再生はどうするんだろう??と おもいます。 (カリーニン) 2015/09/28(月) 17:33
WAV再生がBeep音のような注意喚起の意味だったら、 VBAでなくても条件付き書式でもいいような気がします。 (カリーニン) 2015/09/28(月) 17:40
現状Beep音も聞こえないことは無いのですが。。。。
(Decoy) 2015/09/28(月) 18:05
誤解を与える書き方でした。
条件付き書式でBeep音を鳴らすことは出来ないと思います。 セルのフォントや背景の色を変えたり、罫線を付けたりすること ができます。
Beep音やwav再生はVBAになります。 (カリーニン) 2015/09/28(月) 18:27
どうしても音は必要ですので、やはりVBAで製作致します。
(Decoy) 2015/09/28(月) 18:34
条件分岐の参考HPです。
http://home.att.ne.jp/zeta/gen/excel/c04p20.htm
セルの値による条件分岐の参考HPです。
http://amaotolog.com/excel/47
(カリーニン) 2015/09/28(月) 18:41
wav再生はどのようなものですか?短くすぐに終了するものですか? 長くいものですか?長いものでしたら、途中で終了させたい場合がありますか? 終わるまで再生しますか?
↓はどうでですか?
>条件が排他的でなかったら、wavファイルの再生はどうするんだろう??と >おもいます。 (カリーニン) 2015/09/28(月) 18:46
9行目以下のB,C,D列のセルが変更になれば、その時点で実行します。 とりあえずビープ音です。
シートのシートタブを右クリック、コードの表示を選んで出てきたところに以下のコードを貼り付け 右上のXボタンでシートに戻り、いろいろと値を入れてみてください。
Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range Dim c As Range Dim x As Variant Dim y As Long
Set r = Intersect(Target, Range("B9:D" & Rows.Count)) If r Is Nothing Then Exit Sub
Application.EnableEvents = False
With CreateObject("Scripting.Dictionary") For Each c In r .Item(c.Row) = True Next
For Each x In .keys With Rows(x) .Range("F1").ClearContents If .Range("B1").Value < .Range("C1").Value Then If .Range("C1").Value = .Range("D1").Value Then For y = 1 To 10 Beep Next .Range("F1").Value = "OK" .Range("F1").Font.Color = vbRed End If End If End With Next End With
Application.EnableEvents = True
End Sub
(β) 2015/09/28(月) 18:50
他サイトでマルチポストなので、一時的に私の書き込みは停止します。 (カリーニン) 2015/09/28(月) 18:54
マルチポストの件は申し訳御座いませんでした。
ネットマナーがまだ身についていないようで、非常に恥ずかしく思っております。
今後はこのようなことが無いように致します。
本当に申し訳御座いませんでした。
(Decoy) 2015/09/28(月) 19:17
ついでに遊びです。
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range Dim c As Range Dim x As Variant Dim y As Long
Set r = Intersect(Target, Range("B9:D" & Rows.Count)) If r Is Nothing Then Exit Sub
Application.EnableEvents = False
With CreateObject("Scripting.Dictionary") For Each c In r .Item(c.Row) = True Next
For Each x In .keys With Rows(x) .Range("F1").ClearContents If .Range("B1").Value < .Range("C1").Value Then If .Range("C1").Value = .Range("D1").Value Then doremi "mi", 1 / 4 doremi "mi", 1 / 8 doremi "re", 1 / 8 doremi "do", 1 / 4 doremi "do", 1 / 4 doremi "re", 1 / 4 doremi "re", 1 / 4 doremi "mi", 1 / 8 doremi "re", 1 / 8 doremi "do", 1 / 4 doremi "so", 1 / 4 doremi "so", 1 / 8 doremi "fa", 1 / 8 doremi "mi", 1 / 4 doremi "mi", 1 / 4 doremi "re", 1 / 8 doremi "do", 1 / 8 doremi "re", 1 / 8 doremi "mi", 1 / 8 doremi "do", 1 / 1 .Range("F1").Value = "OK" .Range("F1").Font.Color = vbRed End If End If End With Next End With
Application.EnableEvents = True
End Sub
Private Sub doremi(scl As String, intvl As Double) Dim x As Long Dim y As Long
x = intvl * 16 * 100
Select Case scl Case "do": y = 262 Case "re": y = 294 Case "mi": y = 330 Case "fa": y = 349 Case "so": y = 392 Case "la": y = 440 Case "si": y = 494 Case "do+": y = 523 End Select
Beep y, x
End Sub
(β) 2015/09/28(月) 22:20
> 当方が少々難聴になってきたため、後々のことを考えると
おと(聴覚)よりも え(視覚)を使ったほうがいいと思いますが。
( 佳 ) 2015/09/29(火) 06:14
このHPでVBAの事、ネットマナーの事、色々勉強させて頂きました。
素晴らしいHPだと思います!
いつかアドバイスできる側に回って恩返しできればと思っております。
この度は本当に有難う御座いました!
(Decoy) 2015/09/29(火) 10:31
> 当方が少々難聴になってきたため、後々のことを考えると
>おと(聴覚)よりも え(視覚)を使ったほうがいいと思いますが。
アドバイス頂き有難う御座います。
使用目的を考えると音のほうが良いかなと思い今回の製作を決めたのですが、
絵でもよいかもしれません。
自分で製作するときに検討してみます。
有難う御座いました!
(Decoy) 2015/09/29(火) 10:39
あちらはまだ開いていて、私以外のレスも付いていますので手当しておいてください。
と、思ったら、こちらで話が進んでいるので他の回答者はレスを削除されたようです。
いずれにせよ、開きっぱなしはよくありません。 (カリーニン) 2015/09/29(火) 10:58
あちらの質問は削除の依頼をだしておきます。
(Decoy) 2015/09/29(火) 13:04
こちらが少々間違えておりまして、正しくは下記が正解でした。。。
エクセルのVBAで、B9の値がC9より低く、D9のセルの値がC9と同じかもしくはそれ以上の場合、F10にOKの赤文字を表示し、任意のWAV音源の音が鳴る。
せっかくお答えいただいたのに本当に申し訳御座いませんでした。
(Decoy) 2015/09/29(火) 13:08
wavファイルの鳴らし方の一つ で API使用
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long '0: 同期 '1: 非同期 'APIの宣言↑ Sub test() '↓wavファイル フルパス Ifile$ = "D:\F\ミュージック\ichinose90点の歌声.wav" Call sndPlaySound(Ifile$, 0) End Sub
後は、これをどのように使うか です
(ichinose) 2015/09/29(火) 20:30
私のコードでいえば(どちらも)4行変更。
.Range("F1").ClearContents ↓ .Range("F2").ClearContents
If .Range("C1").Value = .Range("D1").Value Then ↓ If .Range("D1").Value >= .Range("C1").Value Then
.Range("F1").Value = "OK" .Range("F1").Font.Color = vbRed ↓ .Range("F2").Value = "OK" .Range("F2").Font.Color = vbRed (β) 2015/09/29(火) 21:14
ところで。
>>あちらの質問は削除の依頼をだしておきます。
基本的には、こちらも、あちらも マルチ禁止ではない(あちらは、かってはNG)とはいうものの 同時進行で進むと、両方の対応で、Decoyさん自身が、大変かな。
あちら、削除依頼というのは、あちらの事務局あてですか? そうしなくても、あちらは、Decoyさんが、理由をコメントしたうえで、「解決」マークを選んで書き込めば トピはクローズになりますよ。
(β) 2015/10/02(金) 14:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.