エクセルVBA|ユーザーフォームの作り方とコントロールの配置方法

vba

エクセルVBAのユーザーフォームとは

エクセルVBAのユーザフォームとは

VBAをつかったマクロ開発ではユーザーフォームを作成できます。ユーザーフォームとは、コントロールとよばれるテキストボックスラベルリストボックスコンボボックスなどを自由に配置し、フォームの作成・利用ができるVBAの機能のことです。

ユーザーフォームを作ることで、マクロを動かすための操作方法や、処理による結果などがユーザーにとって直感的で理解しやすくなる効果があります。

この記事では、VBAでユーザーフォームをつかったマクロ開発をするために、ユーザーフォームに関する基本的な知識や、ユーザーフォームの作り方などについて紹介していきます。

親しみやすく、直感的にわかりやすいユーザーフォームを作ることで、プログラムに関する知識がなくても高度な処理を実行するマクロが操作できるようになります。簡単な操作で高度な処理ができるようになれば、複数人でおこなう作業でも精度を均一にしたり、属人化することの防止効果が期待できます。

ユーザーフォームでマクロを操作できるようにすると、誰にでも使いやすいシステムが作れるようになるよ。

エクセルVBAにおけるユーザーフォームの基礎知識

ユーザーフォームの基礎知識

冒頭にも記載したとおり、VBAのユーザーフォームは、ExcelやAccessなどのOfficeアプリケーションにおいて、ユーザーが直感的に操作できるGUI(Graphical User Interface)を実現するためのオブジェクトです。

ユーザーフォームは、テキストボックスやコンボボックスなどのコントロールと呼ばれるパーツを配置することで、ユーザーが入力・選択する情報を収集し、VBAでそれらを処理するためのインターフェースをつくることができます。

ユーザーフォームで実現できること

ユーザーフォームでは、データの入力、編集、削除、検索、表示などの機能を持つフォームが作成できます。また、グラフやチャート、ボタン、メニューなどのコントロールを組み合わせることで、より複雑なUI(User Interface)を作れます。

ユーザーフォームは、VBAの「UserForm」オブジェクトを使用して作成します。これは、ExcelやAccessなどのOfficeアプリケーションに標準で用意されている機能であり、VBAで簡単に利用できます。

次項からは、ユーザーフォームの作成手順を追いながら説明をしていきます。

独学だと中々スキルが身についた実感が湧かない。学習環境を見直してみませんか?

エクセルで繰り返しや転記作業で苦しい思いをした経験はありませんか?
今まで苦労してきたその作業を簡単なプログラムをおぼえるだけで解決できる可能性があります。
なるべくお金や時間をかけずにエクセルマクロVBAを習得したい人にはこちらの「1日速習講座」がおすすめです。

エクセルVBAのユーザーフォームの作り方

ユーザーフォームをつくるためには、エクセル(Excel)の初期画面から開発タブをクリックして、VBE(Visual Basic Editor)を選択して起動します。

ユーザーフォームの作り方(VBEの起動からユーザーフォームの作成まで)

具体的な手順としては、以下の画像のように操作します。

エクセル初期画面からVBEを起動するまでの手順画像(開発タブをクリックする)
エクセル初期画面からVBEを起動するまでの手順画像(VBEをクリックする)

上記の手順を行うことでVBEが起動します。
VBEが起動したら以下の画像にしたがってユーザーフォームを作成します。

VBEでユーザーフォームを作成する手順を説明する画像1

ユーザーフォームが作成され、以下のような初期画面が表示されます。

これで、VBEでユーザーフォームを作成する準備が整いましたので、次項からはユーザーフォームの作成手順を説明していきます。(※この画面を起動したときに、上の画像のようにツールボックスが表示されていない場合は、[表示]タブから[ツールボックス]を選択して表示してください。)

ユーザーフォームの作り方(コントロールを配置してフォームをデザインする)

さて、いよいよユーザフォームを作っていく手順となりますが、まずはデザインをつくっていきしょう。

ユーザーフォームはわかりやすく作ることが大切です。いろいろなアプリの操作画面をマネしてみると良いよ!

ユーザーフォームを作成するには大きく分けて3つの手順があります。

1.ユーザーフォームの上にコントロールを配置する

コントロールとは、ユーザーフォーム上に配置できるパーツのようなものです。コントロールには、いくつもの種類があり、用途に応じてフォームに配置することで直感的な操作がしやすいフォームが作れます。

コントロールの種類については以下のとおりです。

コントロール名用途
ラベルフォームにタイトルをつける、ユーザーに簡単な指示を説明するなどの目的で使用することにおすすめ。
テキストボックスフリーライティングのテキスト入力エリアとして使用することがおすすめです。編集不可にすることでラベルのようにつかうこともできる。
コンボボックステキストボックスとリストボックスを合わせたようなコントロールです。フリーライティングで書くも良し、リストから選択するも良い場合なら、こちらの設置がおすすめ。
リストボックス複数の項目から1つ、または複数の項目を選択してもらうことができるコントロールです。決まった項目の内からユーザーに選択を促します。
チェックボックス指定したテキストとともに表示され、チェックのON/OFFの切替をします。
オプションボタン指定したテキストとともに表示され、ON/OFFの切替をします。一般的に使いかたとして、オプションボタンの選択肢が2つ以上ある場合、片方がONなら、もう一方はOFFとなる関係に使用することが多いです。
トグルボタン表示/非表示、編集/閲覧などの状態の切替などで利用する場合に使用します。
フレームラベル付きの四角い枠を表示します。フレーム内に他のコントロールを配置することで、ユーザーに視覚的なグループとして見やすいものとします。
コマンドボタン処理の実行や、キャンセルなど実行の契機として使われることが一般的です。
タブ ストリップタブを配置します。特徴としては、タブに設置したコントロールは、それぞれのタブで共有されます。
マルチページタブ ストリップと同じようなコントロールですが、異なる点として設置したコントロールは、ページごとの個別のあつかいです。
スクロールバー両端の矢印か、スクロールボックスをドラッグすることでページ内の移動ができます。また数値を入力するテキストボックスなどと連動させることで、数値の増減を直感的に操作できます。
スピンボタン両端の矢印で増減の調整が可能です。スクロールバーとの違いはスクロールボックスがなく、ドラッグができない点です。
イメージビットマップ、JPEG、GIF などの画像を埋め込み表示できます。フォームにロゴや、ヘッダなどを埋め込むことでフォームのデザイン性が向上したい場合におすすめです。
RefEditワークシートからセル範囲を選択する機能が実行できます。範囲を指定したセル範囲を返します。

上記のコントロールより、フォームの上に設置したいコントロールを組み合わせることで、オリジナルのユーザーフォームを作成していきます。

2.コントロールの位置や大きさを調整する

ユーザーフォーム上に設置するコントロールの位置や大きさを調整します。マウスを使ってドラッグ操作などで調整していきます。

●まずは、ベースのユーザーフォームの大きさを調整する。
イメージとしては画用紙の大きさを調整する感じです。後から調整が可能なので、大きめにしておくとコントロールの設置などの作業がしやすくなります。

ユーザーフォーム作成時のベースとなるフォームの大きさを調整する手順を視覚的に説明する画像

●ベースの上にコントロールを設置し、位置や大きさを調整していきます。
ベースにパーツを設置していくイメージです。ユーザーフォームは、使用者にとって直感的に操作しやすいものとなるようにつくることが大切ですが、ひとまずはそれぞれのコントロールがどういったものかを確認する上でも、ベース上に好みのコントロールを設置してみましょう。

ユーザーフォーム作成時のコントロールの位置や大きさを調整する手順を視覚的に説明する画像

本記事では、できるだけたくさんの種類のコントロールをつかってフォームを作りたいと考えましたので、以下のようなユーザーフォームを作成してみました。

サンプルユーザーフォーム

今回のサンプルフォームとして、ラベル、スピンボタン、スクロールバー、イメージ、テキストボックス、コンボボックス、チェックボックス、オプションボタン、コマンドボタン、トグルボタン、フレーム、リストボックスのコントロールをユーザーフォーム上に設置しています。

※それぞれのコントロールをひと目でわかりやすくため、ラベルやコントロールの一部のプロパティを初期値から書きかえています。

3.コントロールを制御するVBAを書く

前項までの手順で、ユーザーフォームのベースとなる領域の大きさの指定と、コントロールの選定と設置が完了したかと思います。ここからは、コードを書いて設置したコントロールに動きを加えていきます。

まずは、作成したユーザーフォームを選択した状態で右クリックをして、表示されるメニューから”コードの表示”を選択して、コードエディター画面を起動します。

標準モジュールでVBAのコードを書く画面と同じように、ユーザーフォームのコードを書く画面が起動します。(初回起動では何も書いていない状態の画面が表示されているはずです。)

それでは、ユーザーフォームにコードを書いていきますが、まずはユーザーフォームの初期化をしていくことから書いていきます。ユーザーフォームの初期化をする場合は以下のようにコードを書きます。

Private Sub UserForm_Initialize()
    'ここにそれぞれのコントロールで処理したいことをかいていきます。
End Sub

英単語のつづりを覚えるのが大変だという人は、こちらからコピペしてもらっても良いですが、プルダウンから選択できる便利な方法もありますので、以下の画像の手順を行ってください。

画像のマーカーがついた場所が2カ所ありますが、左側をクリックすると、オブジェクトが選択できます。ここで選択できるオブジェクトは、ベースとなるユーザーフォームと、その上に設置したコントロールです。ここではUserformを選択します。

次に、右側のマーカー部分をクリックすると、プロシージャを選択できるので、任意のものを選択していくのですが、ここでは起動時に実行する”Initialize“を選択していきます。

ここでの選択ですが、オブジェクトを選択する時は、処理(コード)を書きたい対象物を選択し、プロシージャを選択する場面では、マクロが実行される契機(イベント)を選択するようなイメージを持っておくと分かりやすいでしょう。

例えば、オブジェクトで”CommandButton1″を選択して、プロシージャより”Click”を選択した場合は、コマンドボタン1をクリックしたときに実行するマクロを作れます。実際にそれらを選択してみるとコードを入力する画面に以下が自動で追記されます。

ユーザーフォームのコードを書いていく上では、とても重宝する機能なので積極的につかっていくと良いでしょう。

Private Sub CommandButton1_Click()

End Sub

マクロをつくる人にとって優しい機能があるなら、どんどん使っていきましょうね!

実際にサンプルユーザーフォームに、コードを書いたものと、コードを書いた後でマクロを実行したときに表示されるユーザーフォームを確認してみます。

ユーザーフォーム(UserForm)の初期化(Initialize)に書き込んだサンプルコード
Private Sub UserForm_Initialize()

'コンボボックス1への処理
ComboBox1.AddItem "オムライス"
ComboBox1.AddItem "カレーライス"
ComboBox1.AddItem "アヒージョ"

'イメージの表示
Image1.Picture = LoadPicture("C:\XXXX\XXXX\Desktop\nekomusume_01A.jpg")

'リストボックス1への処理
ListBox1.AddItem "ローズマリー"
ListBox1.AddItem "タイム"
ListBox1.AddItem "バジル"
ListBox1.AddItem "オレガノ"
ListBox1.AddItem "ミント"
ListBox1.AddItem "セージ"
ListBox1.AddItem "パセリ"
ListBox1.AddItem "カモミール"
ListBox1.AddItem "ラベンダー"
ListBox1.AddItem "カレーリーフ"

'スピンボタン1への処理
SpinButton1.Max = 12
SpinButton1.Min = 1

SpinButton1.Value = 1
TextBox2.Text = SpinButton1.Value

'スクロールバーへの処理
ScrollBar1.Max = 12
ScrollBar1.Min = 1

ScrollBar1.Value = 6
TextBox3.Text = ScrollBar1.Value

End Sub

各オブジェクト(コントロール)のコードを書く順番はありませんので、どのコントロールから書きはじめても問題ないです。サンプルコードでは、コンボボックス1、イメージ1、リストボックス1、スピンボタン1、スクロールバー1、テキストボックス3の順番で上から書いています。

コントロールのプロパティやメソッドについては、いずれ別の記事でまとめたいと思いますので、本記事では詳しく紹介するのは控えますが、それぞれをざっくり紹介していきます。

コントロールのことを書くといっぱいになるから、ここではよく使いそうなものだけ紹介ね。

ComboBox(コンボボックス)に項目を追加する

コンボボックスに項目を追加する方法は、AddItemメソッドを使います。

構文

オブジェクト.AddItem [ item [, varIndex ]]

itemには、任意の文字列を記入、varIndexには0以上の記入することで項目の位置を指定します。
itemvarIndexともに省略が可能で、varIndexを省略するとitemを末尾に追加します。

サンプルコード

ComboBox1.AddItem “オムライス”
ComboBox1.AddItem “カレーライス”
ComboBox1.AddItem “アヒージョ”

サンプルコードでは、3つの料理名を項目を追加しています。それぞれの値をAddItemメソッドで1つずつ追加する方法以外にも、追加したい項目が大量にある場合は、繰り返し文や、セル範囲を指定してコントロールに項目を追加する方法があります。

繰り返し文(For)でコントロールに項目を追加する方法

Private Sub UserForm_Initialize()から、End Subの間に以下のコードを追加します。

‘項目を代入するための変数を宣言する
Dim combo_list

‘繰り返し文用のカウンタ変数を宣言する
Dim i As Integer

‘Array関数をつかって”おでん”、”たこ焼き”、”餃子”の配列をつくる
combo_list = Array(“おでん”, “たこ焼き”, “餃子”)

‘For Next文とAddItemメソッドで配列の値をコンボボックスに追加する
For i = 0 To UBound(combo_list)
  ComboBox1.AddItem combo_list(i)
Next i

繰り返し文でコンボボックスに値を追加するサンプルコード

まずは、要素を代入する目的で宣言します。
※サンプルコードでは、combo_listという名前にしています。

その後、Array関数をつかって“おでん”、”たこ焼き”、”餃子の要素を持つ配列にします。

つぎに、繰り返し文で配列の要素数分の回数を指定します。処理については、コントロール(ComboBox)にAddItemメソッドで追加します。

同じ方法でリストボックスへの応用もできるので、コントロールに追加したい要素がたくさんあるときに使えるテクニックとして覚えておきましょう。

なお、サンプルコードでつかった繰り返し文や、配列の基本の使いかたについては、以下の記事で詳しく取り扱っていますので、気になる人はぜひご覧ください。

繰り返し文の書き方はこちら
UBound関数や、配列の書き方はこちら

ListBox(リストボックス)に項目を追加する

同じくリストボックスに項目を追加するときも、AddItemメソッドを使います。

ListBox1.AddItem “ローズマリー”
ListBox1.AddItem “タイム”
ListBox1.AddItem “バジル”
ListBox1.AddItem “オレガノ”
ListBox1.AddItem “ミント”
ListBox1.AddItem “セージ”
ListBox1.AddItem “パセリ”
ListBox1.AddItem “カモミール”
ListBox1.AddItem “ラベンダー”
ListBox1.AddItem “カレーリーフ”

AddItemメソッドで追加する方法以外にも、それぞれの値をAddItemメソッドで1つずつ追加する方法以外にも、追加したい項目が大量にある場合は、繰り返し文や、セル範囲を指定してコントロールに項目を追加する方法があります。

セル範囲でコントロールに項目を追加する方法

セル範囲を指定して、項目を追加する方法を紹介します。セル範囲を指定するときは、Rowsourceプロパティをつかって範囲を指定します。

構文

オブジェクト.RowSource [= String ]

指定するのは文字列(String)である点に注意が必要です。

それでは、このRowsourceプロパティをつかってセル範囲の値を、リストボックスに項目として追加しますが、ここではExcelのワークシートに、以下の画像のような”リスト(表)”があると想定します。このリスト(表)の、2行目から13行目の値をリストボックスの項目として追加していきます。

VBAで作成したユーザーフォームのリストボックスに、セル範囲を指定して項目を追加するためのサンプルワークシート画像

Private Sub UserForm_Initialize()から、End Subの間に以下のコードを追加します。

サンプルコード(セル範囲を文字列で直接指定する方法)

ListBox1.RowSource = “Sheet1!A2:A13”

文字列で指定するため、ダブルクォーテーションをつけることを忘れないようにしてください。

また、Addressプロパティをつかって指定もできます。以下はAddressプロパティをつかったパターンでコードを書いています。

サンプルコード(Addressプロパティでセル範囲を指定する方法)

ListBox1.RowSource = Worksheets(“Sheet1”).Range(“A2:A13”).Address(External:=True)

RangeオブジェクトのAddressプロパティの戻り値は、文字列型です。こちらの方法でも、セル範囲を直接指定した場合と同じ結果が得られます。ただし、引数の”External:=True“の指定がない場合は、アクティブシートのセル範囲を参照してしまう点に注意が必要です。

それでは、上記のRowsourceプロパティをつかったコードで、リストボックスに値を追加したユーザーフォームを起動してみましょう。

指定したセル範囲に書かれた値が、項目としてリストボックスに追加されました。

Rowsourceプロパティでセル範囲に含まれる値を、項目として追加した場合は、AddItemメソッドでの項目の追加処理はできません。項目を追加したい場合は、ワークシートのリストに項目を追加した後、Rowsourceプロパティで指定するセル範囲を修正する方法でおこないます。

AddItemメソッドで項目(item)を追加はできない。

ListBox1.RowSource = “Sheet1!A2:A13”
‘AddItemで項目の追加をするとエラーが発生します。
ListBox1.AddItem “蛇つかい座”

セル範囲を更新する方法であれば、項目が追加できる

ListBox1.RowSource = “Sheet1!A2:A14”

Rowsourceプロパティでセル範囲を指定する場合は、ワークシートのリスト(表)に項目を追加した後で、セル範囲を書きかえる方法で対応しましょう。

Image(イメージ)に表示する画像を指定する

Imageに写真を表示するには、Pictureプロパティに値を設定します。

構文

オブジェクト.Picture = LoadPicture(pathname)

pathnameは、画像が格納されている完全なファイルパスを文字列で指定します。

サンプルコード

Image1.Picture = LoadPicture(“C:\XXXX\XXXX\Desktop\nekomusume_01A.jpg”)

※文字列なので、ダブルクォーテーションをつけて忘れずに書きましょう。また、JPEGイメージ(*.jpg)以外にも、GIFイメージ(*.gif)やビットマップ(*.bmp)ファイルの表示が可能です。

この記事のサンプルフォームでは、わたしの画像を表示してみるよ。

SpinButton(スピンボタン)の最大値と最小値を指定する

SpinButton(スピンボタン)の最大値と最小値に、MaxプロパティMinプロパティに値を設定します。

構文

オブジェクト.Max [Long]

オブジェクト.Min [Long]

※最大値はMaxプロパティで指定、最小値はMinプロパティで指定します。Longには長整数型の数値を入力します。

サンプルコード

SpinButton1.Max = 12
SpinButton1.Min = 1

これでスピンボタンで選択できる数値は最小が1で、最大が12の範囲で制限できます。

TextBox(テキストボックス)にSpinButton(スピンボタン)の値を表示する

スピンボタンでは、Valueプロパティをつかって値を指定しており、右側のテキストボックスに値を表示するようにします。該当する部分のサンプルコードは以下のとおり。
※スピンボタン自体に値を表示する機能がないため、ラベルやテキストボックスなど、別のコントロールを使って、スピンボタンの現在値を表示する処理を追加することで、ユーザーに分かりやすいフォームとして品質が向上します。

サンプルコード

SpinButton1.Value = 1
TextBox2.Text = SpinButton1.Value

このコードにより、スピンボタンを含むフォームを起動したときの初期値は”1″です。ユーザーフォーム上のテキストボックス(厳密に言えば、TextBox2)に1を表示します。

ScrollBar(スクロールバー)の最大値と最小値を指定する

スピンボタンと同じように、MaxプロパティMinプロパティに値を設定します。

サンプルコード

ScrollBar1.Max = 12
ScrollBar1.Min = 1

ここでのサンプルフォームでは、スピンボックスと同じく1~12の範囲で指定しています。

TextBox(テキストボックス)にScrollBar(スクロールバー)の値を表示する

こちらもスクロールバー自体に表示する機能がないため、右側に設置したテキストボックスに現在の値を表示するように指定します。(ユーザーが現在値を見ながら数値の選択ができるようにするため)

サンプルコード

ScrollBar1.Value = 6
TextBox3.Text = ScrollBar1.Value

スクロールバーの初期値は”6″に指定。ユーザーフォームを起動した時点で、テキストボックス(厳密に言えば、TextBox3)に6を表示します。

独学の学習効率でお悩みの人必見!
<動画学習見放題サービス>

初心者にやさしいチューターなら今すぐにはじめられる

オンラインで学習したい
プログラミングで副業をはじめたい
パソコン・エクセルの学習をしたい

ユーザーフォームを起動して状態を確認する

ユーザーフォームとコントロールに対するコードの記入が完了したら、マクロを実行してみましょう。実行方法は他のプロシージャと同じで、VBEの画面の上部に表示されている”“をクリックするか、F5キーで実行します。

サンプルで作成したフォームとコードを表示すると以下の画像のように表示されました。

ユーザーフォーム(サンプル画像)
VBEで作成したユーザーフォームを起動した初期値を確認するための画像

コントロールのImageは、企業のロゴや、マスコットキャラクターなどを表示したりすると、オリジナルシステムみたいでカッコいいよね♡

ユーザーフォームをつかった毎月の作業を自動化することもできる?マウスの移動やクリック操作を、エクセルVBAのコードでつくったマクロで操作する方法とは。

詳しくは以下のリンクをクリック(別のページに移動します。)

ユーザーフォームが表示されたら、コンボボックス、リストボックスなどをクリックしてコードを書いて指定した項目(item)が追加されているかを確認してみてください。
※サンプルコードどおりにコードを書かれてるのであれば、以下の選択ができるようになっています。

コントロール追加した項目(item)
ComboBox1オムライス
ComboBox1カレーライス
ComboBox1アヒージョ
ComboBox1の選択可能な項目(item)
コントロール追加した項目(item)
ListBox1ローズマリー
ListBox1タイム
ListBox1バジル
ListBox1オレガノ
ListBox1ミント
ListBox1セージ
ListBox1パセリ
ListBox1カモミール
ListBox1ラベンダー
ListBox1カレーリーフ
ListBox1の選択可能な項目(item)

ここまでの時点では、スピンボタンと、スクロールバーの▲▼を操作しても、横に設置したテキストボックスの値は切り替わりません。

上記は、ユーザーフォームの初期化をするプロシージャ『Private Sub UserForm_Initialize()』とは別の部分でコードを書く必要があります。

それでは、ユーザーフォームの初期化プロシージャの作成のときと同じように、オブジェクトとプロシージャを選択して作成していきます。

SpinButton(スピンボタン)が操作された時に処理する内容をプロシージャに書く

VBEのコード入力画面で、オブジェクトリストから、スピンボタン(SpinButton1)を、プロシージャリストから(Change)を選択してください。(※操作方法がわからなくなった人は、この記事で紹介しているこちらで確認できます。)

プロシージャが作成された後は「TextBox2.Text = SpinButton1.Value」を追記します。

サンプルコード
Private Sub SpinButton1_Change()
    
    TextBox2.Text = SpinButton1.Value

End Sub

このコードを書くことでスピンボタンが変わるたびに、テキストボックスのテキストをスピンボタンの値に更新します。これで操作するたびに、テキストボックス(TextBox2)の数値が連動します。

ScrollBar(スクロールバー)が操作された時に処理する内容をプロシージャに書く

VBEのコード入力画面で、オブジェクトリストから、スクロールバー(ScrollBar)を、プロシージャリストから(Change)を選択してください。(※操作方法がわからなくなった人は、この記事で紹介しているこちらで確認できます。)

プロシージャが作成された後は「TextBox3.Text = ScrollBar1.Value」を追記します。

サンプルコード
Private Sub ScrollBar1_Change()
    
    TextBox3.Text = ScrollBar1.Value

End Sub

このコードを書くことでスクロールバーが変わるたびに、テキストボックスのテキストをスクロールバーの値に更新します。これで操作するたびに、テキストボックス(TextBox3)の数値が連動します。

上記のChangeプロシージャにコードが書き込めたら、改めてユーザーフォームを起動し、スピンボタンと、スクロールバーの▲▼を操作をしてください。それぞれのコントロールの横に設置したテキストボックスの値が連動して、値が切り替わることが確認できます。

エクセルVBAでユーザーフォームをつくる方法のさいごに

VBAで身近な作業で使えるマクロが作れるようになると、作業を効率的にすすめたり、処理を自動的に実行するなどで効力を感じられます。自分で作ったマクロの効力を感じることができたら、つぎは自分以外の使用者に共有するためのステップを考えていきましょう。

ここで紹介したユーザーフォームは、あなたが作ったマクロによる効果を共有するための手段として有効な方法だと言えます。こちらで紹介した方法をつかって直感的な操作であつかうことができるシステムを作ることにチャレンジしてみると良いでしょう。

今回はエクセルVBAでユーザーフォームをつくる方法でした。ここで紹介したのは、ほんの一部なので紹介できなかった部分はいずれ他の記事でも紹介するよ。

コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。

コメント

タイトルとURLをコピーしました