Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6465 / 13644 ツリー ←次へ | 前へ→

【45088】同時に動作させる命令はありますか。 おさむ 06/12/12(火) 15:00 質問[未読]
【45089】Re:同時に動作させる命令はありますか。 Jaka 06/12/12(火) 15:33 発言[未読]
【45091】Re:同時に動作させる命令はありますか。 おさむ 06/12/12(火) 15:44 発言[未読]
【45094】Re:同時に動作させる命令はありますか。 Jaka 06/12/12(火) 16:19 発言[未読]
【45098】Re:同時に動作させる命令はありますか。 おさむ 06/12/12(火) 16:42 発言[未読]
【45101】Re:同時に動作させる命令はありますか。 Jaka 06/12/12(火) 17:16 発言[未読]
【45103】Re:同時に動作させる命令はありますか。 おさむ 06/12/12(火) 18:26 お礼[未読]
【45113】Re:同時に動作させる命令はありますか。 Jaka 06/12/13(水) 9:10 発言[未読]

【45088】同時に動作させる命令はありますか。
質問  おさむ  - 06/12/12(火) 15:00 -

引用なし
パスワード
   シート上でフォームのボタンで下記動作させています
同時に標準モジュールのマクロを動作させられますか?
教えてください
Sub 消去月曜()
  Dim 日付 As Date

  ActiveSheet.Unprotect
   Range("D10:G30,J10:Q30,I11:I12,I14:I30,D32:D38").Select
    Selection.ClearContents
  日付 = Now()
  Do Until Weekday(日付) = 2
    日付 = 日付 + 1
  Loop
  With Range("J6")
    .Value = Format(日付, "yyyy/mm/dd")
    .Select
  End With
 
  Dim II As Integer, RR As Long, CC As Long
  For II = 1 To 14
   Select Case II
     Case 1 To 7: RR = 7 + II * 3: CC = 6
     Case Else:  RR = 24 + II:  CC = 4
   End Select
   Worksheets("sheet1").Cells(RR, CC) _
       .Value = "=Calendar!H" & (4 + II)
   If II < 8 Then
     Worksheets("sheet1").Cells(RR, 10) _
       .Value = "=Calendar!I" & (4 + II)
   End If
  Next
End Sub

標準モジュールは下記です。
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub テロップ()
  Dim st1 As String, SP1 As String, TX1 As String, Flg As Boolean
  Dim DefoFntIdx As Long, Defocol As Double, i As Long
  Dim MAd As String
 
  MAd = "B2"
  st1 = "計算中!!"
  SP1 = StrConv(Space(4), vbWide) '間隔
 
  '文字を1回1回ループさせようと思ったが、最初に作っておくのが簡単。
  For i = 1 To 6
    TX1 = TX1 & st1 & SP1
  Next
    :
    :
    :
End Sub

【45089】Re:同時に動作させる命令はありますか。
発言  Jaka  - 06/12/12(火) 15:33 -

引用なし
パスワード
   ▼えっと、あのテロップは、プログレスバーには向いてません。
プログレスバーだったらこんな感じでもそれらしくは見えます。

Application.DisplayStatusBar = True
For i = 1 To 100
  If i Mod 10 = 0 Then
   moji = moji & "■"
   Application.StatusBar = moji
   Application.Wait Now + TimeValue("00:00:01")
  End If
Next
MsgBox "終了"
Application.StatusBar = ""

【45091】Re:同時に動作させる命令はありますか。
発言  おさむ  - 06/12/12(火) 15:44 -

引用なし
パスワード
   ▼Jaka さん:
返事ありがとうございます。
プログレスバーをやりたいのではなく
Sub 消去月曜()動作中に
同時に命令が出せないかなと思ったのですが
できませんか?
ちなみに下記モジュールの動作時間は設定できるのでしょうか

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'***********************************************************
Sub テロップ流_セル版()
  Dim St1 As String, SP1 As String, Tx1 As String, Flg As Boolean
  Dim DefoFntIdx As Long, Defocol As Double, i As Long
  Dim MAd As String
 
  MAd = "G6"
  St1 = "計算中!!"
  SP1 = StrConv(Space(4), vbWide) '間隔
 
  '文字を1回1回ループさせようと思ったが、最初に作っておくのが簡単。
  For i = 1 To 6
    Tx1 = Tx1 & St1 & SP1
  Next

  Tx1 = Tx1 & StrConv(Space(Int(Len(St1) \ 2)), vbWide)
  With Range(MAd)
    .Value = ""
    If .Column > 1 Then
      If .Offset(, -1).Formula = "" Then
       .Offset(, -1).Value = Space(1)
       Flg = True
      End If
    End If
    DefoFntIdx = .Font.ColorIndex
    Defocol = .ColumnWidth
    With .Font
      .ColorIndex = 2
      .Name = "HG正楷書体-PRO"
      '.FontStyle = "メディウム 太字 斜体" 'PCによって無い。2002
      .Size = 14
      .Bold = True
      .Italic = True
    End With
    .HorizontalAlignment = xlRight
    .Value = StrConv(Right(St1, Len(St1) - 4), vbWide)
    .Columns.AutoFit
    FitCol = .ColumnWidth
    .ColumnWidth = FitCol
    .Value = ""
    .Font.ColorIndex = 5 '3
  
    For i = 1 To Len(Tx1)
      .Value = .Value & Mid(Tx1, i, 1)
      Sleep 20 '200
    Next
  
    .ColumnWidth = Defocol
    .Font.ColorIndex = DefoFntIdx
    '.ClearContents
    If Flg Then
     .Offset(, -1).ClearContents
    End If
  End With
End Sub

【45094】Re:同時に動作させる命令はありますか。
発言  Jaka  - 06/12/12(火) 16:19 -

引用なし
パスワード
   ▼おさむ さん:
>Sub 消去月曜()動作中に
>同時に命令が出せないかなと思ったのですが
>できませんか?
VBAは、2本の通路を同時に進行できると思えないです。が、
ゲームを作っている人もいるのでなんとも言えないです。

>ちなみに下記モジュールの動作時間は設定できるのでしょうか
初めの時間を取得して、その時間に動作時間を足しこんで、その時間を過ぎたらループを抜けるとかぐらいだと思います。

【45098】Re:同時に動作させる命令はありますか。
発言  おさむ  - 06/12/12(火) 16:42 -

引用なし
パスワード
   ▼Jaka さん:
>▼おさむ さん:
>>Sub 消去月曜()動作中に
>>同時に命令が出せないかなと思ったのですが
>>できませんか?
>VBAは、2本の通路を同時に進行できると思えないです。が、
>ゲームを作っている人もいるのでなんとも言えないです。
>
>>ちなみに下記モジュールの動作時間は設定できるのでしょうか
>初めの時間を取得して、その時間に動作時間を足しこんで、その時間を過ぎたらループを抜けるとかぐらいだと思います。
ありがとうございます。
テロップのSpeedはへんこうできませんか
たびたびすみませんよろしくお願いします。

【45101】Re:同時に動作させる命令はありますか。
発言  Jaka  - 06/12/12(火) 17:16 -

引用なし
パスワード
   下のほうにだけしか書いてませんでした。

Sleep 30 'ここで、テロップ速度調整。

【45103】Re:同時に動作させる命令はありますか。
お礼  おさむ  - 06/12/12(火) 18:26 -

引用なし
パスワード
   ▼Jaka さん:
ありがとうございました。
goodです。

【45113】Re:同時に動作させる命令はありますか。
発言  Jaka  - 06/12/13(水) 9:10 -

引用なし
パスワード
   書き忘れたので。

>動作時間は設定できるのでしょうか
下に書いてあるとおり、最初に紙テープを用意してその分を表示させているだけだから、動作時間には限界があります。
1次的に目立つようにしただけですから、動作時間を設定したいならループ処理に変える必要があります。

>  '文字を1回1回ループさせようと思ったが、最初に作っておくのが簡単。
>  For i = 1 To 6
>    Tx1 = Tx1 & St1 & SP1
>  Next

6465 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free