Excelスキルアップコレクション
           〜 Something U Want 〜


Google  

WWW を検索
Excelスキルアップコレクション内 を検索
 @     Top  >     Excel VBA スキルアップコレクション Topics  >     (33) フォームを開いてもセルを操作できるようにする

 
(33) フォームを開いてもセルを操作できるようにする

 通常、フォームを開いている最中はセルを操作することができません。しかし、簡単なオプションを指定するだけで、フォームを開いている最中でもセルの操作を可能にすることができます。

 ここでは、フォームを開いている最中でもExcelのセルを操作することができるようにする方法を紹介します。

 ユーザフォームを追加します。フォームの名前を「SampleForm」とします。フォームのCaptionも「サンプル」としましょう。
 [閉じる]ボタンの挙動はそれほど本題と関係ないのですが、コードを記載するなら次のようになります。

 1行目:  Option Explicit
 2行目:  
 3行目:  Private Sub CommandButton1_Click()
 4行目:  
 5行目:      ' フォームを閉じる。
 6行目:      Unload Me
 7行目:  
 8行目:  End Sub

 Excelブックを用意して、標準モジュールに次のコードを記載します。

 1行目:  Option Explicit
 2行目:  
 3行目:  Public Sub Sample_FormModeless_01()
 4行目:  
 5行目:      ' 「SampleForm」をモードレスで開く。
 6行目:      SampleForm.Show (vbModeless)
 7行目:  
 8行目:  End Sub

 Sample_FormModeless_01()を実行して、フォームを開きます。フォームが開いた状態のままでも、セルの操作が可能になっています。セルの操作のみならず、シートの移動、ブックの移動、メニュー操作も可能です。


 ここで使用したShowメソッドを紹介します。
フォーム.Showメソッド
構文:フォーム.Show( [モーダルオプション] )

 フォームを開きます。モーダルオプションは省略可能で、省略時にはvbModal(=1)が指定されたものとみなされます。モードレスでフォームを開きたい場合には、vbModeless(=0)を指定します。

 フォームを作成するときにモードレスで開くことを事前に設定することもできます。ユーザフォームのプロパティにある「showModal」をFalseに設定すれば、フォームのShowメソッドでモーダルオプションを指定しなくても自動的にモードレスで開きます。
ページの先頭へ