エクセルを非表示にして単独アプリのように見せかける
Application.Left = -Application.Width
ユーザーフォームが表示されるときに、Application.Leftに マイナスのApplication.Widthを与えるとエクセル本体をPC画面の左端に押し出すことができます。(フォームだけが画面に残ります)
アプリを終了するとき。エクセル本体を基の位置に戻してからフォームを閉じるようにしてます
Private Sub UserForm_Initialize() '元々のエクセルの表示位置を保存する(変数宣言はジェネラルに) mytop = Application.Top myleft = Application.Left 'エクセル本体を非表示にする Application.WindowState = xlNormal Application.Left = -Application.Width End Sub
画面に残ったフォームの様子です。
コンボボックスの表示文例リストからどれか選択してGOボタンを押します
(新しい表示文は直接コンボボックスに書き込めばSheet1の所定の場所に記録されます)
左端から文が流れます
ストップボタンを押すとフォームを終了します。
(エクセル本体は元の位置に戻ります)
コード
電光掲示板風にText文が右から左に流れて行く動作のコードです。
Private Sub CommandButton1_Click() If ComboBox1.Text = "" Then MsgBox "表示する文字列が選択されていません・・又は、文字列を書き込んで下さい。" Exit Sub End If 'テキスト2はボックスの長さをAutoSize=Trueにセットしています。 Dim i As Long, maxs As Long, moji As String If kensa(ComboBox1.Text) = False Then '表示するテキストが書き込みしてなければ新しく追加書き込みする maxs = ActiveSheet.Rows.Count Cells(maxs, 5).End(xlUp).Offset(1) = ComboBox1.Text End If 'コンボボックスに テキスト内容データの範囲をセットする ComboBox1.RowSource = "e1:e" & Range("e1").CurrentRegion.Rows.Count Me.Height = 115 TextBox2.Text = ComboBox1.Text ComboBox1.Visible = False CommandButton1.Visible = False CommandButton2.Visible = True CommandButton3.Visible = False CommandButton2.SetFocus '表示テキストの移動スピードをセットする '電光掲示板の処理本体============================ Do If CommandButton1.Caption = "stop" Then Exit Do ' '待ち時間を作る Sleep ScrollBar1.Value ' Application.Wait [Now()] + wait_sec / 86400 ' For i = 1 To maxs ' Cells(i, 1) = "" ' Next i '文字列を左方向へ移動させる TextBox2.Left = TextBox2.Left - 1 '=========== DoEvents '処理をwindowsに渡す '=========== '文字列の右端がロードの左端に達したら 'ロードの右端に位置を変更する If TextBox2.Left + TextBox2.Width <= 0 Then TextBox2.Left = Me.Width End If Loop '================================================== CommandButton1.Caption = "GO" CommandButton1.Visible = True CommandButton2.Visible = False 'TextBox1.Text = "" End Sub
VBA覚え立の頃作った、大分昔のものです。もっとやり用があったのでしょうが、当時はこれが精いっぱいでしたね。
自分にとってVBAの原点になるアプリ?…です。
ダウンロード
下のカードからダウンロードしてください。
電光掲示板もどき
1 ファイル 31.96 KB
コメント