サイトアイコン HIBISEI Blog

エクセルで電光掲示板みたいに文字を右から左に流す方法

あなたはエクセルで文字を右から左に流したいと思ったことはありませんか?

セルに入りきらない文字列でも、自動スライドして流せば、小さいセルでも長い文字列が表示できますよね。

エクセルマクロを使えば、文字を電光掲示板のように、右から左に流せます。

今回は「エクセルで電光掲示板みたいに文字を右から左に流す方法」を紹介します。

エクセルで電光掲示板みたいに文字を右から左に流す方法

エクセルで電光掲示板みたいに文字を右から左に流す方法です。

マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

3.コード入力画面が開く

これを2回くりかえして、ボタンを2個作ります。

「START」「STOP」ボタンにしました。

4.コードを入力

コードを入力します。

5.ボタンができた →B2セルに流したい文字列を入力

B2セルに流したい文字列を入力します。

6.「START」ボタンをクリック →A1セルで文字が流れて表示される

STARTボタンをクリックすると、A1セルで文字が流れて表示されます。

7.「STOP」ボタンを押すと停止する

「STOP」ボタンを押すと停止します。(A1セルには「(停止しました)」を表示)

まとめ

エクセルで電光掲示板みたいに文字を右から左に流す方法です。

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.新規作成をクリック

3.コードを入れる画面が出る

4.コードを入力

5.ボタンができた →B2セルに流したい文字列を入力

6.「START」ボタンをクリック →A1セルで文字が流れて表示される

7.「STOP」ボタンを押すと停止する

これで文字が右から左に流れて、見やすくなりますね!

ちなみに、今回使ったコードはこちらです。

' Sleep関数の宣言(上に書いておく)

#If VBA7 Then
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If

Dim StopFlag As Boolean
Sub ボタン1_Click()

    Dim msg As String
    Dim displayStr As String
    Dim i As Long
    Dim padLen As Integer
    Dim fullMsg As String

    StopFlag = False ' フラグを初期化

    msg = Range("B1").Value ' B1に表示したい文字列
    If msg = "" Then
        MsgBox "B1に表示したい文字列を入力してください。", vbExclamation
        Exit Sub
    End If

    padLen = 20 ' 表示幅
    fullMsg = Space(padLen) & msg & Space(padLen)

    Do
        For i = 1 To Len(fullMsg) - padLen
            If StopFlag Then
                Range("A1").Value = "(停止しました)"
                Exit Sub
            End If
            displayStr = Mid(fullMsg, i, padLen)
            Range("A1").Value = displayStr
            DoEvents
            Sleep 200 ' 0.1秒待機
        Next i
    Loop


End Sub
Sub ボタン2_Click()
    StopFlag = True
End Sub

モバイルバージョンを終了