あなたはエクセルで文字を右から左に流したいと思ったことはありませんか?
セルに入りきらない文字列でも、自動スライドして流せば、小さいセルでも長い文字列が表示できますよね。
エクセルマクロを使えば、文字を電光掲示板のように、右から左に流せます。
今回は「エクセルで電光掲示板みたいに文字を右から左に流す方法」を紹介します。
エクセルで電光掲示板みたいに文字を右から左に流す方法
エクセルで電光掲示板みたいに文字を右から左に流す方法です。
マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法
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