記録することによって見えてくるもの

ExcelのListBoxに開いているファイルを表示するマクロ

かわべ
WRITER
 
この記事を書いている人 - WRITER -
かわべ
生誕:1969年 東京 生まれ 趣味:楽器演奏(St.Bass、E.Bass)     読書(ミステリー)     映画鑑賞(学生時代、映画館でアルバイト経験あり)
<スポンサーリンク>  
 

こんにちは。かわべです。

ExcelのListboxを使って開いているファイルからシートを選択するマクロを作成しました。

Listbox_11

今日は、開いているファイル名をリストボックスに表示する方法について記載します。(シートを表示する方法については、後日、記載します。)

会計ソフトのfreeeにExcelで作成した明細書を取り込むときにこのExcelのListBoxを利用しました。


<スポンサーリンク>    
 

ユーザーフォームを作る

Microsoft Visual Basic for Applicationsの画面を開きプロジェクトウィンドウの「フォーム」を右クリックして「挿入→ユーザーフォーム」を選択します。

Listbox_2

ツールボックスのなかのリストボックスのアイコンをクリックしてフォームにリストボックスを作成します。

Listbox_3

フォームの上で適当な範囲をドラッグしてリストボックスの作成します。大きさや表示位置は後で調節できます。

Listbox_4

リストボックスが表示されてユーザーフォーム上で右クリックします。「コードの表示」をクリックします。

Listbox_5

リストボックスの設定

① Inirializeの作成

コードの表示をクリックすると次のような画面になります。ユーザーフォームをクリックしてコードを表示したので

UserForm_Click()」と表示されます。

Listbox_6

リストボックスにリストを表示させるため、右上のClickの右横の「▼」をクリックしてメニュー一覧から「Initialize」を選択します。

Initialize(初期化)したときの記述をすることができます。

 

② ブックをカウントして名前を取得

次の画像のように、ユーザーフォームをInitializeしたときに、「開いているExcelファイル(Workbook)の名前をListBoxに表示する」という記述をします。

Listbox_9

具体的には、上のとおり、ForNext構文を使って、開いているWorkbookの数だけ繰り返す処理を記述します。

上記の緑色の枠囲みの「Workbooks.Count」は開いているワークブックの数を確認します。

赤色の枠囲みのは、ファイル名(Workbookの名前)をListBox1に追加するという記述になります。

実行すると次のような画面が表示されます。

Listbox_10

 

データを引き継ぐ

(1) Macro1の記述

Listboxで選択したファイル名をその後のプログラムに利用するため、「Macro1」として次のような記述をしました。

Listbox_12

ユーザーフォームのListBoxで選択したファイル名をその後のプログラムで利用するため、Macro1とユーザーフォーム1の両方で使える変数を設定する必要があります。そのため、Publicを使って、変数strAaを宣言しました。

Macro1には「ユーザーフォーム1を表示」→「変数strAaを表示」→「ユーザーフォーム1を閉じる」と記述しました。

この記述だけで実行しても、変数strAaに何も代入されないため、エラーとなってしまいますので、ユーザーフォーム1についても

いろいろ記述をする必要があります。

 

(2) ユーザーフォーム1の記述

① 決定ボタンの作成

Macro1を実行した場合、「UserForm1.Show」により、ユーザーフォームを表示することになりますが、ListBoxでファイル名を選択したあとに次のプログラムへ進む「きっかけ」を作成する必要があります。

進むきっかけとして下の画像のとおり「決定」ボタンを作成しました。

Listbox_13

決定ボタンをクリックした場合のコードは次のとおりです。

Listbox_14

変数strAaにListBox1で選択したファイル名を代入しユーザーフォーム1を隠します。この記述するとユーザーフォームを隠した後、Macro1の続きのプログラムを実行することになります。

 

(3) Macro1の実行

ユーザーフォーム1を改良後、Macro1を実行すると、次のようになります。

Listbox_15

ユーザーフォーム1が表示されますので、ファイル名を選択(緑色の枠囲み部分)して決定ボタン(赤色の部分)をクリックします。すると次の画面が表示されます。

Listbox_16

Macro1で記述した、「MsgBox strAa」が実行され、Listboxで選択したファイル名が表示されます。

 

まとめ

Accessでは、リストボックスを活用していましたが、Excelで利用するのは初めてでした。

複数のファイルとシートがあり、さらにその数が増加することが予測される場合は、有効な方法かと思います。

シート名を表示、選択する方法は後日、記載いたします。


■□◆◇ 編集後記 ◇◆□■

駅伝を見るのが好きです。

先日、とある大会に親戚が出場するというのでテレビを見ていたのですが、中盤ぐらいの順位だったので、テレビに映ったのは、襷を渡す時だけでした。

現地に応援に行っても、目の前を走り抜けるのは一瞬だしテレビでも上位でなければ、映る機会はほとんどないし、駅伝(マラソンなど長距離の競技)の応援はなかなか難しいですね。

Pocket
このエントリーを Google ブックマーク に追加
LINEで送る

この記事を書いている人 - WRITER -
かわべ
生誕:1969年 東京 生まれ 趣味:楽器演奏(St.Bass、E.Bass)     読書(ミステリー)     映画鑑賞(学生時代、映画館でアルバイト経験あり)

報酬のお見積り

法人の顧問報酬と決算報酬を、前期の売上実績当期の売上予測でお見積もりすることができます。(※)

LINK 報酬お見積もり【法人用】 web

お名前やメールアドレスの入力は必要ありません。ウェブ上で簡単にお見積もりができます。

※ オプション料金は別途となります。

Copyright© J-musu-no-blog , 2014 All Rights Reserved.