PeaceJetのブログ

金融系の社内エンジニアをやりながら、マーケティングやデータ分析などもやっています。

画面中央に「処理中」という案内板を出す方法【エクセル VBA】

こんにちは、PeaceJetです。

今回は、画面中央に「処理中です」という案内を出す方法をご紹介します。

意外と難しいのかなぁ~と思う方も多いかと思いますが、意外と簡単ですのでお試しあれ。

ユーザーフォームの準備

今回はユーザーフォームを使用して、「ただいま、処理中です・・・」という案内板を作成します。

作成例

f:id:PeaceJet:20161005183811j:plain

パーツを作成し終えたら、ユーザーフォームに以下のように記述します。

f:id:PeaceJet:20161005184055j:plain

Private Sub UserForm_Initialize()
  With UserForm1
    .StartUpPosition = 0
    .Top = Application.UsableHeight / 2 '(1)
    .Left = Application.UsableWidth / 2 - 172.5 '(2)
  End With
End Sub
ユーザーフォームの「横幅」を入力する

(1)と(2)は画面サイズを計算しています。
(2)の「172.5」部分をユーザーフォームの横幅(ピクセル単位)に変更して下さい。

こうすることで、フォームが画面中央に表示されるようになります。

微調整が必要な場合は――

debug.print Top & Chr(10) & Chr(13) & Left

などで、確認しながらやってみるのもいいでしょう。

標準モジュールの準備

次に、標準モジュールからウインドウを呼び出してあげます。

Sub Example()

'(3)
With UserForm1
    .Show vbModeless
    .Repaint
End With

'(4)
Rem ここに処理を記述してください。

'(5)
Unload UserForm1

End Sub

上記を詳述すると、以下のようになります。

  • (3)で、案内板を呼び出します。
  • (4)で、処理を行う。
  • (5)で、案内板を消します。

P.S.

最近、ExcelVBAのことばかりなのですがjavaScriptPHPもやっていたりします。

てか、書きたいことは、この他にも沢山ありましてですね・・・。

特に、旅行TIPSなどを書いていきたいのであります。

次は、必ず載せるぞ! Only技術ブログにはさせないからなぁぁ!