パソコンカレッジ スタッフのひとりごと

パソコンスクールのスタッフが、
初心者から上級者まで役立つ情報をお伝えします。

一定時間間隔で文字を次々に表示する(Excel VBA)

2009-09-14 08:39:46 | ExcelVBA
さあ、新しい一週間の始まりですね。

今日は、ExcelVBAを使って、セルに入力された値を、タイプライターのように
1秒ずつ順次表示していくプログラムをご紹介します。

たとえば、B列2行目に「おはよう」と入力してから実行すると、次のように表示されます。




1病後・・・





1病後・・・



ってな、感じで、表示されていくのです。



さて、さっそくコードを書いてみましょう。


ALT + F11 で、VisualBasicEditorを起動します。

「挿入」→「標準モジュール」をクリックします。

そこに、次のようにコードを記述してください。




Sub typewriting()
    Dim s As String
    Dim i As Integer
    Dim t As Double
    
    Range("B5").Value = ""
    t = Range("B7").Value / 24 / 60 / 60
    s = Range("B2").Value
    For i = 1 To Len(s)
        DoEvents
        Application.Wait Now + t
        Range("B5").Value = Mid(s, 1, i)
    Next
End Sub



画像も載せておきます。




コードの簡単な解説です。

mid関数は、指定した位置から指定した分の文字列を取得する関数です。

Application.Wait を使うと、指定した時間だけ処理を待ちます。




それでは、エクセルに切り替えて、F5キーを押して確認してください。


今回は、B列7行目に秒数指定ができますよ。
2と入力すると、2秒おきに文字が増えていきます。


なお、同様のプログラムをVisual Basic でやろうと思うと、これまた一筋縄ではいかないのであります。

それは、またの機会に・・・

だい
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 配列数式 基礎(Excel) | トップ | 自分の名前が一目でわかる「... »
最新の画像もっと見る

コメントを投稿

ExcelVBA」カテゴリの最新記事