セルを読み込んでチェックボックスを作成(UserForm)

今回は、
ユーザーフォームを使った素材を紹介します。

Excelのワークシートのセルにある項目を、
読み込んでユーザーフォームにチェックボックスとして、
表示する方法です。

またこのチェックボックスをONにして、
ボタンをクリックするとシート側にも反映される、
という機能も付けてあります。

※今回紹介するものは、これ単体ではあまり意味がありません。
 応用して使用してくださいませ。
 ファイルもアップロードしてますので、ご自由にお使いください。

では、順を追って紹介していきましょうかね。



1.シートの状態
f:id:basara_reond:20110502162606j:image

  ↑こんな感じでA列に項目(2行目から書き出してます)、
  ボタンを一個置いてます。



2.ユーザーフォームの設定
f:id:basara_reond:20110502162755j:image
  枠とボタンだけ用意します。


3.シートのボタン用のマクロを設定
f:id:basara_reond:20110502162754j:image
  非常にシンプルです。
  シート上のボタンを押したら、ユーザーフォームを立ち上げる。
  というところまで書いています。

  試しに、このボタンを押してユーザーフォームが起動するか
  チェックしてみるといいでしょう。




4.ユーザーフォームにコードを登録
  f:id:basara_reond:20110502162753j:image
  ここからはチョット手が込んでいます(大したことはありませんが。。)
  
  ユーザーフォームをVBEで表示してF7キーを押すとコード編集ウィンドウが出てきます。
  
  ここでは2つのプロシージャを記述しています。
  
  ・UserForm_Initialize
   まずはこちらから作成しましょう。
   UserFormに対してのInitializeイベントです。
   Initializeはユーザーフォームが起動したときに実行されるイベントです。

   ここでシートの項目を読み込み、チェックボックスとしてユーザーフォームに出力しています。
    
  ・CommandButton1_Click
   ユーザーフォームに設置したボタンをクリックした際の動作です。
   ただユーザーフォームにチェックボックスを読み込んだだけでは何も面白くありませんので、
   このコードで、チェックボックスの状態をチェックして、
   ONになっていればシートの各項目のB列にONを、
   OFFであれば、OFFという文字列をB列に表示というコードを書いてあります。


  中身のコードに関しては、深く触れません。
  肝となるのは、チェックボックスの作成を、
  Me.Controls.Add("Forms.CheckBox.1")で行い、
  その参照には、ControlsオブジェクトでControls("CheckBox" & 番号).Vlaueの形で、
  チェックボックスの状態を判定している部分です。   




5.結果
f:id:basara_reond:20110502165034j:image

  チェックボックスをチェックしてからユーザーフォーム上の、
  ボタンをクリックするとB列にその状態が反映されます。

  閉じるときはユーザーフォームの×ボタンをクリックすれば閉じることが出来ます。





今回のサンプルファイルは↓からダウンロードできます。
CHK_BOX.zip 直
(ファイル名はクリックせず、右の↓矢印をクリックしてダウンロードください。)

フリーなので、ご自由にお使いください。
ただ、お決まりですが、このサンプルファイルを使用して、
不利益・不具合などが起こったとしても責任は負えませんので、
その辺はご承知おきくださいませ。

ではでは〜