Excel VBA質問箱 IV

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

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


6497 / 13646 ツリー ←次へ | 前へ→

【44840】一定の間隔でセルに文字を表示するには akira 06/12/3(日) 12:06 質問[未読]
【44843】Re:一定の間隔でセルに文字を表示するには りん 06/12/3(日) 13:00 回答[未読]
【44898】Re:一定の間隔でセルに文字を表示するには akira 06/12/5(火) 17:48 お礼[未読]
【44853】Re:一定の間隔でセルに文字を表示するには Kein 06/12/3(日) 23:04 回答[未読]
【44862】Re:一定の間隔でセルに文字を表示するには akira 06/12/4(月) 13:42 お礼[未読]
【44864】Re:一定の間隔でセルに文字を表示するには Kein 06/12/4(月) 15:20 発言[未読]
【44866】Re:一定の間隔でセルに文字を表示するには akira 06/12/4(月) 16:56 質問[未読]
【44869】Re:一定の間隔でセルに文字を表示するには Kein 06/12/4(月) 22:02 発言[未読]
【44899】Re:一定の間隔でセルに文字を表示するには akira 06/12/5(火) 17:51 お礼[未読]

【44840】一定の間隔でセルに文字を表示するには
質問  akira  - 06/12/3(日) 12:06 -

引用なし
パスワード
      Dim Msg As String
   
   If TextBox1.Text =”A”
   Msg= ”せいかい"
   Else
   Msg= "ちがうよ"
   End If
   MsgBox Msg
   
   たとえば、このコードで せいかい でOKをクリックすれば
   セルのA1からD1まで やったね と一文字ずつ順番に表示したいのですが
   そのようなことはできますか?よろしくおねがいします。
 

【44843】Re:一定の間隔でセルに文字を表示するには
回答  りん E-MAIL  - 06/12/3(日) 13:00 -

引用なし
パスワード
   akira さん、こんにちわ。

>   たとえば、このコードで せいかい でOKをクリックすれば
>   セルのA1からD1まで やったね と一文字ずつ順番に表示したいのですが
>   そのようなことはできますか?よろしくおねがいします。

>   Dim Msg As String
  Dim r1 As Range, rdt(1 To 1, 1 To 4) '行1列4の範囲に対応
>   
 If TextBox1.Text =”A”
   Msg = "せいかい"
   rdt(1, 1) = "や"
   rdt(1, 2) = "っ"
   rdt(1, 3) = "た"
   rdt(1, 4) = "ね"
  Else
   Msg = "ちがうよ"
  End If
  MsgBox Msg
  '結果表示
  With Application.ActiveSheet.Range("A1:D1")
   If rdt(1, 1) = "や" Then
     'やったね
     .Value = rdt()
   Else
     '中身を消す
     .ClearContents
   End If
  End With
  Erase rdt

こんな感じです。

【44853】Re:一定の間隔でセルに文字を表示するには
回答  Kein  - 06/12/3(日) 23:04 -

引用なし
パスワード
   なにかアニメーションのように、目立つ動きをさせたいのでしょーか ?
それなら例えば・・

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'↑モジュールの先頭に宣言

Sub Test_Msg()
  Dim Msg As String
  Dim Ary As Variant
  Dim Fsz As Integer, i As Integer
   
  If TextBox1.Text = "A" Then
    Msg = "せいかい"
  Else
    Msg = "ちがうよ"
  End If
  MsgBox Msg
  If Msg = "せいかい" Then
    Ary = Array("や", "っ", "た", "ね")
    Fsz = ThisWorkbook.Styles("標準").Font.Size
    For i = 1 To 4
     With Cells(1, i)
       .Value = Ary(i - 1)
       .Font.Bold = True
       .Font.Size = 24
     End With
     Rows(1).AutoFit
     Columns(i).AutoFit
     DoEvents: Sleep 500 '1000で1秒として、任意の長さに調節
    Next i
    With Range("A1:D1")
     .Font.Bold = False
     .Font.Size = Fsz
     .EntireColumn.ColumnWidth = _
     ActiveSheet.StandardWidth
    End With
    Rows(1).RowHeight = _
    ActiveSheet.StandardHeight
  End If
End Sub

【44862】Re:一定の間隔でセルに文字を表示するには
お礼  akira  - 06/12/4(月) 13:42 -

引用なし
パスワード
     Keinさん ありがとうございます。私のしたいことでした。このコードを標準モジュ  ールで作成して実行させたらEntireColumnのプロパティーの使い方が不正とでまし  た。自分なりに調べてみたのですが、わかりませんでした。よろしければ教えて
  下さい。お礼が遅くなってすみません。
>
>
>Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
>'↑モジュールの先頭に宣言
>
>Sub Test_Msg()
>  Dim Msg As String
>  Dim Ary As Variant
>  Dim Fsz As Integer, i As Integer
>   
>  If TextBox1.Text = "A" Then
>    Msg = "せいかい"
>  Else
>    Msg = "ちがうよ"
>  End If
>  MsgBox Msg
>  If Msg = "せいかい" Then
>    Ary = Array("や", "っ", "た", "ね")
>    Fsz = ThisWorkbook.Styles("標準").Font.Size
>    For i = 1 To 4
>     With Cells(1, i)
>       .Value = Ary(i - 1)
>       .Font.Bold = True
>       .Font.Size = 24
>     End With
>     Rows(1).AutoFit
>     Columns(i).AutoFit
>     DoEvents: Sleep 500 '1000で1秒として、任意の長さに調節
>    Next i
>    With Range("A1:D1")
>     .Font.Bold = False
>     .Font.Size = Fsz
>     .EntireColumn.ColumnWidth = _
>     ActiveSheet.StandardWidth
>    End With
>    Rows(1).RowHeight = _
>    ActiveSheet.StandardHeight
>  End If
>End Sub

【44864】Re:一定の間隔でセルに文字を表示するには
発言  Kein  - 06/12/4(月) 15:20 -

引用なし
パスワード
   >EntireColumnのプロパティーの使い方が不正
あ、それなら EntireColumn は削除して下さい。

.ColumnWidth = _
ActiveSheet.StandardWidth

だけでいいです。(先頭のドットは消さないように)
ちなみにこちらでは、エラーにはなりませんでしたが。

【44866】Re:一定の間隔でセルに文字を表示するには
質問  akira  - 06/12/4(月) 16:56 -

引用なし
パスワード
    Keinさん 何回もすみません。今度は実行させると
 If TextBox1.Text="あ"then でエラーがでました。
 先ほど指摘された箇所は削除しました。オブジェクト
 が必要ですというエラーでした。よろしくお願いします。

 

【44869】Re:一定の間隔でセルに文字を表示するには
発言  Kein  - 06/12/4(月) 22:02 -

引用なし
パスワード
   TextBox1 は、どこに配置してますか ? ユーザーフォーム上であれば
そのコード全体を "フォームモジュール" に入れ、ワークシート上
なら "シートモジュール" に入れて、コマンドボタンのクリックイベント
などに変更しないといけませんよね ?

【44898】Re:一定の間隔でセルに文字を表示するには
お礼  akira  - 06/12/5(火) 17:48 -

引用なし
パスワード
     りんさん ありがとうございます。お礼が遅くなってもうわけありません。
  調べながらやっていたらやっと理解できました。 

【44899】Re:一定の間隔でセルに文字を表示するには
お礼  akira  - 06/12/5(火) 17:51 -

引用なし
パスワード
     Kein お礼が遅くなってすみません。方法がわかりました。
  ありがとうございました。

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