「Windows」の「Excel VBA」だと、シートを表示させずに フォーム を表示出来るため、擬似的に「Visual Basic」で開発したアプリのような動作をさせる事ができますが、同じことを「Mac」の「Excel」で実行すればアプリの様に見えるかも?とふと疑問に思ったので検証してみました。
目次
「Windows」の「Excel VBA」でシートを表示させずにフォーム表示
まずは普通に「Windows」の「Excel VBA」の場合。テストした環境は「Windows10」と「Excel 2016」です。
フォーム上の各ボタンにはこのように記述しています。
'フォームに記述
Private Sub Button1_Click() 'Hello World ボタン
MsgBox ("Hello World")
End Sub
Private Sub Button2_Click() 'Excel シート を開く ボタン
Application.Visible = True
Me.Hide
End Sub
メッセージボックスは今回のテストに全く必要ありませんが何となくつけてみました(笑)。
フォームの表示は標準モジュールに記述しました。
'標準モジュールに記述
Public Sub Form_Open()
Application.Visible = False
UserForm.Show vbModeless
End Sub
こちらをThisWorkbookのモジュールから呼び出します。
'ThisWorkbookに記述
Private Sub Workbook_Open()
Call Form_Open
End Sub
一応、後から再表示出来る様に、シート上のボタンにも割り当てました。
「Application.Visible」が動作しない
テストの前に「Excel」の「環境設定」で「」のチェックを外しておきます。(セキュリティ上はチェックを入れておいたほうがいいので、とりあえずテストの間だけ。)
設定変更後、上のコードを記述したエクセルファイルを「Mac」で開くと…
シートが普通に表示されてしまいました。
「Mac」の「Excel VBA」でシートを表示させずにフォーム表示
「Application.Visible」が使えないので、「Windows」版と同じような動作は出来ませんが、何とか擬似的にやってみたいと思い、最小化するようにしてみました。
'フォームに記述
Private Sub Button1_Click() 'Hello World ボタン
MsgBox ("Hello World")
End Sub
Private Sub Button2_Click() 'Excel シート を開く ボタン
'Application.Visible = True
ActiveWindow.WindowState = xlMaximized '最大化
Me.Hide
End Sub
'標準モジュールに記述
Sub Form_Open()
'Application.Visible = False
ActiveWindow.WindowState = xlMinimized '最小化
UserForm.Show vbModeless
End Sub
「Dock」に「Excel」が出てしまっていますが、それっぽくは見えます。
当初の目論見通りには行きませんでしたが、これはこれで使えそうです。
自己紹介
松田 大と申しますm(_ _)m
インディーズでミュージシャンをやっていたのですがいつのまにか...
とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。
「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています(^_^)。
現在勤めているJTクラウドシステムでは、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。
現在、取締役兼二児のパパ。イクメン目指して、公私ともに慌ただしくしています(笑)
インディーズでミュージシャンをやっていたのですがいつのまにか...
とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。
「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています(^_^)。
現在勤めているJTクラウドシステムでは、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。
現在、取締役兼二児のパパ。イクメン目指して、公私ともに慌ただしくしています(笑)







