- ベストアンサー
ビープ音を連続して鳴らす
honiyonの回答
- honiyon
- ベストアンサー率37% (331/872)
こんにちは、honiyonです。 確か Sleepという関数があったと思います。 Sleep(1000) で 1秒待ちという意味になります。 Beep Sleep(1000) Beep Sleep(1000) Beep でいかがですか? 参考になれば幸いです(..
関連するQ&A
- シリアル通信:オフライン時にうまく終了してくれません
シリアルプリンタの制御をVB6で行っております。 以下のようなコードですが、うまく終了してくれません。 'グローバル 'プリンタの状態 Dim BUF as String '起動時 Private Sub Form_Load() MSComm1.PortOpen = True Text1.Text = "" Timer1.Enabled = True End Sub '終了 Private Sub Form_Unload(Cancel As Integer) Timer1.Enabled = False MSComm1.PortOpen = False End Sub 'タイマー Private Sub Timer1_Timer() Timer1.Enabled = False Call CheckPrint Timer1.Enabled = True End Sub Private Sub MSComm1_OnComm() Dim TimeOut As Long Dim sTime As Long Dim eTime As Long Select Case MSComm1.CommEvent '受信 Case comEvReceive TimeOut = 100 sTime = timeGetTime Do If (TimeOut - eTime) < 0 Then Exit Do End If eTime = (timeGetTime - sTime) Loop Until MSComm1.InBufferCount >= 82 BUF = MSComm1.Input End Select End Sub プリンタの状態チェック Private Sub CheckPrint() Dim sTime As Long Dim eTime As Long Dim TimeOut As Long Dim i As Integer Dim n As Integer BUF = "" 'プリンタの情報取得コマンド MSComm1.Output = "~HS" 'タイマ開始 TimeOut = 400 sTime = timeGetTime eTime = 0 Do DoEvents If BUF <> "" Then Exit Do End If eTime = (timeGetTime - sTime) Loop Until TimeOut - eTime < 0 If BUF <> "" Then ... .. 宜しくお願いします。
- ベストアンサー
- Visual Basic
- vb2005でプログラムをとめるコードは?
お世話になります。 vb2005でプログラムに5秒間、時間をとめようとおもいます。 これだとTimerにエラーがでてしまいます。 ('Timer' は型です。有効な式ではありません。) どこをどうなおせばエラーがでなくなるのでしょうか? 教えてください。お願いします。 Dim sngSt As Single sngSt = Timer Do While Timer - sngSt < 5 DoEvents() Loop
- ベストアンサー
- Visual Basic
- VB 2008: Do Whie...Loop文について
Function FileGetChar(ByVal f As String, ByVal p As Integer) As String Dim i As Integer = 1 Dim j As Integer = 0 Dim l As Integer Dim n As Integer = FreeFile() Dim c As Char If File.Exists(f) Then FileOpen(n, f, OpenMode.Random, OpenAccess.Read, , 1) l = FileLen(f) Do While (i + j <= l) FileGet(n, c, i + j) j = j - (Math.Abs(Asc(c)) > 255) i = i + 1 If i > p Then Exit Do Else c = "" End If Loop FileClose(n) End If Return c End Function [イミディエイトウインドウ] ? FileGetChar("D:\Temp\Test.txt",1) "1" ? FileGetChar("D:\Temp\Test.txt",2) "2" と、一応は動作しています。 l------->ファイル長 i+j----->読み込みのカレントポジション p------->読み込み指示ポジション 今、悩んでいるのはDo...Loop文中のIf Else End If の追放。 何か妙手があれば教えて頂きたい。
- ベストアンサー
- Visual Basic
- エクセルVBAの繰り返し処理の質問
C列にある項目とG列にある項目を比較して、 一致し、H列にある数字が10以上ならば、B列にフラグ1を立てる という処理を行いたいんですが、 下記ぐらいまでしか作れず、うまくいきません・・・ Sub フラグを立てる処理() Dim i As Integer Dim j As Integer Dim k As Integer i = 1 j = 1 Do j = j + 1 Do i = i + 1 If Cells(j, 8) > 9 Then Cells(i - 1, 4) = 1 End If Loop Until Cells(i, 3) <> Cells(j, 7) Or Cells(i, 3) = "" Loop Until Cells(j, 7) = "" End Sub わかる方がいらっしゃいましたら、お願いします。
- 締切済み
- Visual Basic
- VBAでスロットを作る
VBAでゲームを作ろうとしています。まず、手始めに簡単なスロットを作っています。スロットを回転させて止めるまではできたのですがメッセージを出す段階でメッセージが2回、0とiの値が出ます。次のコードなのですが、なぜできないのか、どうすればできるようになるのか教えてください。よろしくお願いします。 Sub SlotLoop_1() Dim i As Long Static Flg As Boolean Flg = Not Flg 'ボタンを使えるようにする With [a1] 'A1を選ぶ Do If Flg = False Then Exit Do i = (i + 1) Mod 10 '(i+1)を10で割った余り。 .Value = i DoEvents Loop End With MsgBox i 'ここが問題 End Sub
- ベストアンサー
- その他(プログラミング・開発)
- エクセルvba 値渡しのsubプロシージャ
お世話になります。 エクセルVBAにて、loop処理中にCALLかけている subが最初の一度だけしか呼べません。 なにか、特別にしなければならないことがあるのでしょうか。 こんな感じです。 dim i as integer sub main() i = 1 max = 5 do if day1 = day2 then 処理1 データ1, データ2 end if i = i + 1 loop until i = max end sub sub 処理1(Byval 引数1 as variant, 引数2 as variant) msgbox("引数1" & 引数1) msgbox("引数2" & 引数2) end sub データ1 及び データ2、 DAY1 DAY2は、必要に応じて 転送処理等やっています。
- ベストアンサー
- その他(プログラミング・開発)
- 再帰処理を用いて階乗を求めるプログラム
こんにちは 再帰処理を用いて階乗を求めるプログラムについて の質問です。 以下のように考えたのですが、 まったく駄目なようです。 どこをどのように直したらいいのか いまいちわかりません。 どなたか教えて下さい。お願いします。 Private Sub CommandButton1_Click() Dim n As Integer 階乗する数 Dim f As Integer 階乗する数の階乗した値 n = Val(TextBox1) Do While f > 1 KEISAN n, f Loop TextBox2 = f End Function Function KEISAN(n, f) If n <= 1 Then f = 1 Else f = n * f(n - 1) End If End Function
- ベストアンサー
- Visual Basic
- 素数を求めるマクロを
走らすと暴走したようになり、素数=151で止まります。 どこが悪いのでしょうか。正常に終わるようにしたいです。 ====================== Sub 素数を求める() Dim i As Long Dim j As Long Dim m As Long Dim p As Long Dim flg As Boolean i = 1 j = 1 p = 2 Do flg = False For m = 2 To Int(Sqr(p)) If p Mod m = 0 Then flg = True Exit For End If Next If flg = False Then Cells(i, j) = p i = i + 1 If i > Rows.Count Then i = 1 j = j + 1 End If End If p = p + 1 Loop End Sub ======================
- 締切済み
- Excel(エクセル)
- エクセルのマクロでLoopを使うと応答なしになり…
エクセル2010でタイマーを作って作動させるとかならず応答なしになります。Sleepも使ったのですが応答なしになりました。そうなった理由をできれば教えてください。よろしくお願いします マクロ Sub macro() Dim EndTime As Long Dim PassTime As Long EndTime = Timer + Range("c6").Value * 60 + Range("E6").Value Do PassTime = Timer Range("c6").Value = (EndTime - PassTime) \ 60 '分 Range("e6").Value = (EndTime - PassTime) Mod 60 '秒 Loop Until EndTime - PassTime <= 0 Beep MsgBox "時間だよ" End Sub
- ベストアンサー
- オフィス系ソフト
補足
ありがとうございます。 が、うまくいきません。 timer関数と同じで1回しか鳴りません。