L2. イベント抽出フォーム

(vba18)
(vba18)

「イベント抽出フォーム」とは、基データにある各種イベントの中から抽出するイベントを指定できるようにするもの。

 

 

ユーザーが選んだイベントのみを、カレンダーに表示するようにしたもの。

L2-1. 抽出するイベント項目を事前に設定したユーザーフォーム

基データファイルにあるすべてのカレンダーイベントを、個人に合わせて抽出できるように、ユーザーフォームを作成した。(参照:K.フォーム

i08:カレンダーイベント抽出に使用するフォーム
i08:カレンダーイベント抽出に使用するフォーム

ここでは、作成済みのフォーム(参照:K.フォーム)を、「カレンダー作成マクロ」ブックに組み込む操作を示す。 

L2-1-1. 作成済みのユーザーフォームをエクスポートする

他のエクセルブックで作成したユーザーフォームを、別のエクセルブックで使うには、まずそのユーザーフォームをエクスポートして、PC上のフォルダーに保存する必要がある。

  1.  ユーザーフォームがあるエクセル ブックの VBE を開く

作成済みのユーザーフォーム(「UserForm1」)のある「フォーム作成練習.xlsm」エクセルブックを開く。

 

「Alt」 + 「F11」を押して、VBE を表示する。

  1.  「UserForm1」を右クリックし「ファイルのエクスポート」を選択
l2-1-1_02:エクスポートするフォームを右クリックし「ファイルのエクスポート」を選択する
l2-1-1_02:エクスポートするフォームを右クリックし「ファイルのエクスポート」を選択する
  1.  保存先フォルダーを指定し「保存」する

必要に応じて、フォームファイルだけを保存するフォルダーを、「マクロの練習」フォルダー傘下に作成し、そこに保存する。(下記🔰を参照)

「ファイル名」「ファイルの種類」は、(変更しないで)そのままで保存する。

l2-1-1_03:保存先フォルダーを指定し「保存」する
l2-1-1_03:保存先フォルダーを指定し「保存」する

🔰 新規フォルダー作成

保存先フォルダーを新たに作成しているのは、似たような名前の他のファイルが一つのフォルダー内で多数混在していると、エクスポートしたフォームのファイルとの区別がつかなくなる可能性があり、混乱を避けるためである。

ということで、新規フォルダー作成は必須ではない。

  1.  保存されたファイルを確認する

Windows のエクスプローラーで、保存場所のフォルダー内容を確認し、2つのファイルが保存されているのを確認する。

l2-1-1_04:同じ名前の「*.frm」と「*.frx」ファイルが保存されているのを確認する
l2-1-1_04:同じ名前の「*.frm」と「*.frx」ファイルが保存されているのを確認する

L2-1-2. カレンダー作成マクロブックを新規作成する

  1.  カレンダー マクロを作るエクセル ブックを新たに用意する
l2-1-1_01:新エクセルブックをマクロ有効ブックで保存する
l2-1-1_01:新エクセルブックをマクロ有効ブックで保存する
  • 保存フォルダー:「マクロの練習」フォルダー(「信頼できる場所」として登録済み)傘下にサブフォルダー「カレンダー」を作成する
  • ファイルの種類:「マクロ付有効ブック(*.xlsm)
  • フ ァ イ ル 名:「Myパソカレンダー作成マクロ

フォルダー「マクロの練習」傘下の「カレンダー」フォルダーに、

新規の「Myパソカレンダー作成マクロ.xlsm」ファイルが、作成された。

フォルダー「マクロの練習」を信頼できる場所と指定したときに、「サブフォルダー」を含む、として指定しているので、傘下のフォルダーに保存されるマクロ付ファイルは、マクロ有効となる。 

L2-1-3. カレンダー作成マクロブックにユーザーフォームをインポートする

  1. 「Myパソカレンダー作成マクロ.xlsm」ファイルを開き、VBEを起動

マクロ有効ブックを開き、VBE(VBA Editor)を起動するとProject名が表示される。

Project名は「VBAProject + マクロ有効ブックファイル名.xlsm」で表示。

import-form00:マクロ有効ブックを開きVBEを起動すると、Project名が表示される
import-form00:マクロ有効ブックを開きVBEを起動すると、Project名が表示される

🥺 ここではマクロ付エクセルブックは「Myパソカレンダー作成マクロ検証.xlsm」となっているが、事前に作業手順書の作成にあたり、本番とは別なファイル名で作業を行う手前、「・・・検証.xlsm」というファイル名の物で作業を行い、画面コピーをせざるを得なくなった。

「・・・検証.xlsm」と表示されるところは「・・・.xlsm」だと理解してほしい。

  1. プロジェクト名を右クリックして「ファイルをインポート」を選択
import-form01:VBEでプロジェクトを右クリックし「ファイルのインポート」選択する
import-form01:VBEでプロジェクトを右クリックし「ファイルのインポート」選択する
  1. 保存されている場所でフォーム「UserForm1」を選択し、「開く」

「ファイルのインポート」ダイアログが開くので、ユーザーフォーム「UserForm1」が保存されているフォルダーを開く。中から、「userForm1」を選択する。最後に「開く」をクリックする。

import-form02:ユーザフォーム「UserForm1.frm」を選択し「開く」をクリックする
import-form02:ユーザフォーム「UserForm1.frm」を選択し「開く」をクリックする
  1. 「UserForm1」がマクロブックにインポートされた
  • ユーザーフォーム「UserForm1」がインポートされ、プロジェクトエクスプローラーのツリー構造に「フォーム」ファルダ―が表示された。

  • 「フォーム」フォルダーを開くと「UserForm1」ファイルが顔をだす。

  • 「UserForm1」をクリックすると、右側画面にフォームが表示される。
import-form03:UserForm1がマクロブックにインポートされた
import-form03:UserForm1がマクロブックにインポートされた
  1. 「UserForm1」のコードがあれば、削除しておく

「UserForm1」を選択した状態で、フォームの「コードの表示」アイコンをクリックする。

コードウィンドウに表示されるコードが残っていれば、削除する。

import-form04:フォームのコードが残っていれば削除する
import-form04:フォームのコードが残っていれば削除する
  1. 「標準モジュール」も追加する

メインのサブプロシージャが入る予定の標準モジュールも追加する。

import-form05:標準モジュールを挿入する
import-form05:標準モジュールを挿入する

念のために、ここでExcelファイルを「保存」しておきます。

以上で、マクロ付きブックに、コードを記述する準備が完了した。