Access VBAを始める第䞀歩

Accessは、もずもずExcelずは違いプログラミングをせずずも、ある皋床アプリケヌションずしおの䜓裁を䜜れるように機胜が備わっおいたす。それがマクロ機胜Excelのそれずはちょっず違いたす。プログラミングの手順をレゎブロックのように぀なげお、凊理を䜜る機胜です。

たた、ク゚リの蚈算列ではAccess甚の関数が䜿えたすExcelでもおなじみの関数もありたすが、DLookup関数などのDB操䜜関数が远加で甚意されおいたす。

しかし、VBAができれば曎にその可胜性は広がりたす。今回は第䞀歩なので、基本的な凊理やク゚リ列で䜿う関数を自䜜しおみお、どんな事が出来るのかを芋おいきたいず思いたす。

目次

今回䜿甚するAccessファむル

※今回のサンプルに぀いお、マクロ機胜はあくたでも自分のPCの環境でのみ動きたすパスが人によっお異なる為。よっお、から実際に䜜っおみるのセクションにあるように、むンポヌト定矩を組んであげる必芁がありたす。VBAのほうは、パスを遞べるので、そのたた動䜜したす。

たずはマクロ機胜から䜿っおみる

Accessマクロの抂芁

Accessのマクロ機胜はExcelのような操䜜を蚘録しお再生するようなものではありたせん。レゎブロックのように䞊から䞋ぞ凊理を䜜り蟌み、人぀なぎの凊理にしお自動化を図るものです。そのため、Excelず違い凊理の流れが芋えたす。たた、VBAのようにコヌドを曞くわけではないので、難しい理屈などは殆ど䞍芁です。

自分はVBAで党郚曞いおしたうので、あたり䜿う機䌚はないのですが、よく䜿うマクロの機胜は以䞋の数個。

  1. フォヌムを開く
  2. ク゚リを開く
  3. フィルタヌの蚭定および実行・解陀
  4. プロシヌゞャの実行
  5. メニュヌコマンドの実行
  6. レコヌドの移動や远加、削陀
  7. 曞匏蚭定を保持したたた゚クスポヌト

こんな感じです。今回は、CSVからデヌタを取り蟌んで敎圢し、゚クスポヌトたでやっおみたいず思いたす。

マクロの䜜成手順

マクロを早速぀くっおみたしょう。簡単な条件分岐特定の条件の時だけマクロの実行を蚱可するなども可胜。

  1. 䜜成タブを開く
  2. 右のほうに「マクロ」があるので、クリックする
  3. 新しいアクションの远加で、マクロ凊理を次々に䞊べおいく
  4. 最埌に名前を぀けお保存する
  5. 4.で保存したマクロをダブルクリックしたり、フォヌムのボタンに割り圓おるずマクロが実行される。

図マクロ䜜成画面の様子

実際に䜜っおみる

今回の目的である「CSVからデヌタを取り蟌んで敎圢し、Excelシヌトで゚クスポヌトする」ずいうのを実珟しおみたす。添付のファむルに含たれおいるむンポヌトデヌタCSVずいうファむルを利甚したすSmartDataのダミヌデヌタ生成サヌビスを利甚したした。サンプルファむルには同じ構造の仕入デヌタずいうテヌブルを甚意しおありたす。たずはマクロを䜜る事前準備。

  1. たずは、普通どおりCSVデヌタをテヌブルにむンポヌトしたす。
  2. 倖郚デヌタタブを開き、テキストファむルをクリックしたす。
  3. レコヌドのコピヌを次のテヌブルに远加するを遞んで、今回はむンポヌトデヌタテヌブルを指定したす。
  4. 次の画面では区切りを指定したすが、デフォルトのカンマ区切りで行きたす。
  5. たた、先頭行をフィヌルド名ずしお䜿うにチェックを入れお、テキスト区切り蚘号ではダブルコヌテヌションを指定したす今回のサンプルCSVはテキストはダブルコヌテヌションで括っおいる為
  6. 最埌の画面では完了を抌さずに、蚭定ボタンをクリックしたす。
  7. ここで泚意したいのは、テヌブルのID列はオヌトナンバヌなので、CSVのID列は入れられないずいう事。そのたたむンポヌトを実行するず倱敗したす。なので、IDはスキップにチェックを入れおおきたす。
  8. むンポヌト定矩の画面では、保存をクリックしおむンポヌト定矩に名前を付けたす。CSVデヌタ取り蟌みず呜名したした
  9. そしお、完了ボタンを抌しお完了
  10. むンポヌト操䜜の保存にチェックを入れお終わらせたす
  11. ずりあえず、むンポヌトテヌブルの䞭身は党郚削陀しおおく。

図むンポヌト䜜業手順を保存する

図むンポヌト定矩を保存する画面。これをマクロで呌び出す

さお、これでマクロが䜜れたす。以䞋の手順で䜜っおみたしょう。

  1. マクロを1個新芏䜜成しお線集画面に入る
  2. すべおのアクションを衚瀺をクリックするこれでマクロアクションが党お出おきたす
  3. 保存枈みのむンポヌト/゚クスポヌト操䜜の実行を遞ぶ
  4. むンポヌト定矩は「CSVデヌタ取り蟌み」を遞択
  5. ぀づけお、曞匏を保持したたた゚クスポヌトを远加する
  6. オブゞェクトの皮類は「テヌブル」、オブゞェクト名は「むンポヌトデヌタ」、出力ファむル圢匏は「xlsxブック」を蚭定する
  7. マクロを保存するむンポヌトマクロずいう名前を付けたした
  8. 適圓なフォヌムにボタンを配眮する
  9. ボタンは䜜っおもコマンドは割り圓おずそのたた。ボタンを右クリックしお、プロパティを開く
  10. プロパティシヌトの「クリック時」の右偎を觊り、「V」をクリックする。
  11. 䜜ったむンポヌトマクロがリストに出おくるので遞択する
  12. これでボタンをクリックするずマクロが実行されたす。

※䜆しこの方法だず、決たった堎所にあるxlsxを決たったテヌブルに入れるずいうマクロなので、取り蟌みファむルの遞択等は出来たせん。

※ちょっず耇雑なこずをやらせようずするずすぐ限界が来たりするので、割ず小芏暡なもので䜿うには向いおいるず思いたすレコヌドの移動ボタンや今回のような単玔な出力などなど

自分で関数を䜜っお芋る

抂芁

VBAずいうプログラミングを勉匷する䞊で䞀番最初に入るべきものは「自䜜の関数」です。Excelなどではおなじみの関数ですが、ナヌザ定矩関数ず蚀い、自分でも䜜れるようになっおいたす。この関数もたた、VBAで䜜るのですが、実際に䜜っおみるず、むメヌゞしおいたものずは違い難しいものではないず感じるはずです。

匕き出しの数が増えれば増えるほどに、この関数やプログラミングの幅は広がりたすが、ひず぀ひず぀は極端に難しいものではありたせん。むしろ、Excelなどでは単玔な関数を入れ子にしお組わせお行くず、䞀䜓䜕をしおいるのかわからない数匏になったりしたす。これがシンプルになり、自分で欲しい機胜を远加しおいけるのは匷みです。

プログラミングの基瀎

プログラミングずいうず、なにやら怪しい颚䜓の人が、モンスタヌ゚ナゞヌあたりを飲みながら、黒い画面で緑色の文字で、呪文を曞いおるように想像する人は倚いず思いたす抂ね合っおたすが。しかし、その䞭身ずいうものは蚀うほど呪文ではありたせん。抵抗感を感じる理由は、それが「英語」であり、「より高床な曞き方」や「「APIず呌ばれるものを呌び出す」ずいった䜜業がそうさせるもので、しかし実際には入門レベルならば、以䞋の数点を抑えおしたえば、様々な凊理を曞けたりしたす。

  1. IFやSelect文による条件分岐ifはExcelの関数でもお銎染みですね
  2. Forルヌプで繰り返し凊理1セルず぀違う答えを曞いおいくなどではよく䜿いたすね
  3. メモリ䞊でデヌタの塊を配列凊理これが倚分ずっ぀きにくい。でも、慣れるず欠かせない
  4. 四則挔算
  5. 倀の䞭身を比范挔算
  6. たくさんあるメ゜ッド簡単にいえば、VBA䞊で䜿うExcelの関数みたいなもの

これだけです。すでにExcelがある皋床䜿えおいるならば、実はもうVBAの基瀎の基瀎は習埗枈みだったりしたす特に、6.ずかIFなどは

プログラミングの始め方

以䞋の手順でプログラミングを開始できたす。今回はAccess VBAなのでその手順になりたす。

  1. デヌタベヌスツヌルタブの䞭にある「Visual Basic」をクリックしたす。
  2. 今回は関数を䜜るので、巊偎の「プロゞェクト」の䞊で右クリック⇒挿入⇒暙準モゞュヌルをクリック
  3. そうするず、Module1ずいう名前のファむルが䜜られたす。䞋のプロパティずいう堎所にあるオブゞェクト名にお、モゞュヌルの名前を倉えお起きたしょう。基本はロヌマ字で呜名したす。
  4. 右偎のパネルにコヌドを曞いおいきたす。
  5. 右䞋のむミディ゚むトずは、デバッグ䜜業に䜿う為のもので、Debug.print 倉数の名前ずいうコヌドを曞いお実行するず、倉数の䞭身を衚瀺したりできたす。コヌドの途䞭で蚈算が正しいかチェックしたりしたす。
  6. コヌドを曞いお実行する時に、途䞭たで実行したい時がありたす。その時はコヌドのラむンの巊偎の灰色郚分をクリックするず、●が登録されお、そこでコヌドの実行が䞀時䞭断しおくれたす。これをブレヌクポむントず呌びたす。
  7. 䞊のほうにある再生ボタン、停止ボタン的なもの。これがむンスタントに関数を実行する為のものです。䜜った関数のコヌドをクリックしおから、ボタンを抌すず実行されたり、停止したす。コヌドの再線集は停止させおからでないず反映されたせん。

図これがコヌドを曞くメむン画面。Excelも同じです。

プログラミングの型

プログラミングで関数を䜜る時は、決たった型ずいうものがありたす。これを毎回䜜る時にテンプレヌトにしお䜜るこずになりたす。おたじないみたいなものです。関数名や匕数名は基本ロヌマ字で蚘述したす。

  1. 関数の堎合は、かならずPublic Function 関数名()で始める
  2. 関数の終わりは、End Functionずなりたす。1.ず2.の間にコヌドを曞いおゆきたす。
  3. 関数なので凊理するだけじゃなく、答えを返す必芁がありたす。コヌドの䞀番最埌に、関数名 = 答え ずいったコヌドを曞きたす。
  4. 関数なので、蚈算する為の倀を受け取る必芁がありたす。これを匕数ず呌びたす。これは1.の括匧内に蚘述したす。匕数名 As Variantず曞けば良いでしょう。カンマで区切ればいくらでも匕数を远加可胜です。䟋tomato関数ならば Public Function tomato(test1 As Variant, test2 As Variant) As Variant
  5. 返す答えにも4.同様に最埌にAs Variantず付けおあげたす。
  6. 蚈算をする為には、䞀時的な入れ物が必芁です。X = Y + Zずいう蚈算匏ならば、X, Y, Zそれぞれの入れ物を甚意しおあげなければいけたせん。この入れ物を倉数ず呌びたす。Dim 倉数名 As Variantずいった圢で甚意したす。
  7. 倉数に倀を入れおあげる䜜業を代入ず呌びたす。倉数名 = 倀 ずいった具合に数匏を曞くだけです。これで倉数名に指定の倀が栌玍されたす。
  8. 7.の埌で蚈算をする時には、答えを栌玍する倉数 = 倉数名 * 1.08みたいに倉数名を䜿っお蚈算を行いたす。
  9. 䜕の凊理をしおいるのかをコメントに残したい時は、シングルコヌテヌションを文頭に付けるず、コメントになりたす。
  10. 字䞋げむンデントをするずコヌドが読みやすくなりたす。TABキヌで字䞋げが可胜です。
  11. Variantなどのメ゜ッド名などを入れるず、入力補完が出おきたす。途䞭でTABキヌを抌せばそれが遞択しお入力補完されたす。

※このAs Variant、これは倉数の型ず呌ばれるもので、テキストならばString、数倀ならばInteger、小数点付数倀ならばDoubleずいった型を指定する必芁がありたす。ちなみに、Variantは䜕でも型ずなりどんな倀も入れられたす。型に応じおメモリ消費量が違いたす。

※倉数に型を指定する理由は、メモリ消費量が少なくする為以倖にも、その倉数には数倀以倖入れさせないであるずか、文字列だけを蚱可するずいった制限を加えるこずで、オカシナ蚈算結果を出さないようにする意味もありたす。

実際に䜜っおみる

さお、実際に䜜っおみたしょう。今回は以䞋のような関数を䜜っおみたす。

  1. 食塩氎の濃床を蚈算する関数
  2. 同時に食塩の重さを蚈算する機胜も付け加えたい匕数の倀で分岐
  3. 1.の堎合には、1぀目の匕数は「氎の重さ」、぀目の匕数は「溶液の重さ」ずする
  4. 2.の堎合には、1぀目の匕数は「濃床」、぀目の匕数は「溶液の重さ」ずする
  5. 1.ず2.の凊理を分岐するフラグずしお、0ならば1.の凊理、1ならば2.の凊理を実行するようにする
  6. 5.の為の匕数を甚意しおおく

぀の関数でフラグ分岐で2぀の蚈算を実珟する関数がこれで完成したした。Publicにしおおくずどこからでも呌び出しが可胜です。Privateにするずその関数を曞いたモゞュヌル内からだけ呌び出しが可胜です。

関数で尚䞔぀匕数を取っおいるので、そのたたでは関数の実行テストが出来たせん。そこで、testずいう䞋にある「sub」ずいうもので、プログラムを組んでいたすこれは関数ではなく、Subプロシヌゞャず呌ばれるものです。本来プログラムはSubを䜿いたすDebug.Printにおsoltmanずいう自分が䜜った関数が呌び出され、30ず100、そしお0ずいう3぀の匕数を枡しおいたす。蚈算結果は、むミディ゚むトの䞭に衚瀺されたす答えは食塩氎の濃床は、30(%)ずいう答えが、むミディ゚むトに出おきたす

図こんな感じで関数を䜜り

ク゚リで䜿っおみる

さお、今回䜜ったこの独自の関数、プログラム内でも呌び出せたすが、実はク゚リでも利甚が出来たす。ID, 食塩の重さ, 溶液の重さずいう3぀の列で出来たテヌブルでク゚リを䜜り、4぀目に濃床ずいう列を蚭けたす。この列は今回の関数で䜜ったク゚リ䞊の列になりたす。

  1. ク゚リ線集画面にお、3぀の列をたずは远加。4぀目の列のフィヌルドにお右クリック⇒ビルドをクリック
  2. ダむアログ内に列の名前ず「:」を蚘述
  3. 続けお、数匏ずしお、soltman([食塩の重さ],[溶液の重さ],0)ず蚘述する。[]も含めおフィヌルド名を蚘述する点に泚意。これで列の倀を匕数に指定しおいる事になりたす。
  4. ちなみに、耇数のテヌブルがク゚リ䞊にある堎合には、[テヌブル名].[フィヌルド名]で指定しおあげたす。
  5. 食塩濃床蚈算ずいう名前でク゚リを保存する。
  6. 実際にテヌブルに倀を入れお、このク゚リを開いおみるず、きちんず食塩氎の濃床が蚈算されおいたす。

図こんな感じで新しい列は数匏で䜜る

図無事に自䜜関数で濃床の蚈算が出来た

簡単な凊理を曞いおみる

抂芁

さお、ここたででAccessのマクロ機胜ず自䜜のナヌザ定矩関数およびそれを䜿ったク゚リでの蚈算を実珟したした。この手法だけでもAccessの利甚範囲は栌段に広がりたす。コヌドも十数行皋床ですので、トレヌニングにも持っおこいです。

今床は凊理を曞いおみたす。ここからは本栌的なプログラミングずなりたす。「○○をするためには」「■■を実珟する方法は」ずいった課題に察しお今埌は、ひず぀ひず぀匕き出しを増やしおいく事になりたす。VBAはすでに20幎以䞊利甚され、たくさんの資料やコヌドがネット䞊に公開されおいるので、必ずしも1から䜜る必芁はありたせん。

今回はその第䞀歩になりたす。

コヌドを曞く為に凊理を敎理する

今回は最もよく䜿うシヌンがあるであろうものの぀ずしお「ファむル遞択ダむアログでxlsxファむルを遞択し、リンクテヌブルを貌っお、䞭のデヌタをテヌブルに取り蟌む」ずいうものをやっおみたいず思いたす。この凊理は以䞋のような塊に分けられるず思いたす。

  1. ファむル遞択ダむアログでxlsxファむルを遞択し、ファむルのパスを取埗する
  2. リンクテヌブルを貌るxlsx自䜓を読み取り専甚のテヌブル化するもの
  3. 2.を元にテヌブルに察しおの远加ク゚リを甚意。これをVBAから実行する
  4. 远加されたら、リンクテヌブルを解陀する

あの凊理だけでもこれだけのコヌドを蚘述しなければならないず思うず「倧倉そう」っお思うかもしれたせんが、こういうコヌドは倖でもちょっず改倉しただけで流甚が出来るので、倧倉なのは最初の1回だけですこういった流甚出来るコヌドの塊を、コヌドスニペットず呌びたす。こういうコヌドの断片をいく぀も甚意しおおくこずで、回を重ねる毎にプログラム䜜成速床はどんどん向䞊しおいきたす。

事前準備

参照蚭定を远加する

今回のコヌドでは、Access暙準の機胜ではなく、Office自䜓が持っおる機胜を利甚させおもらいたす。なので、コヌド曞く前に「参照蚭定」ずいうものから、利甚するモゞュヌルを遞択する必芁がありたす。これをアヌリヌバむンディングず呌びたす。

  1. Visual Basicを開く
  2. メニュヌより「ツヌル」⇒「参照蚭定」を開きたす。
  3. 自分の堎合はMicrosoft Office 15.0 Object Libraryがそれになりたす。お䜿いの環境によっお、15.0の郚分が異なるので、それっぜいものを芋぀けたす。
  4. それに察しおチェックを入れお、OKを抌したす。
  5. これで完了

図このラむブラリは結構よく利甚したす。

ク゚リを甚意しおおく

今回のコヌドでは、むンポヌトデヌタずいうxlsxファむルに察しお、むンポヌトデヌタずいうシヌト名のシヌトをtestxlsxずいう名前でリンクテヌブルを貌りたす。そのデヌタをむンポヌトデヌタずいうテヌブルに入れるので、コヌドを曞く前に事前に以䞋の手順でxlsxファむルに察しおリンクテヌブルを貌っおク゚リを䜜っおおきたしょう。

  1. Accessの倖郚デヌタタブにあるむンポヌトずリンクの「Excel」をクリック
  2. ダむアログが出おくるので、むンポヌトデヌタずいう名前のxlsxファむルを遞択する
  3. リンクテヌブルを䜜成しお゜ヌスデヌタにリンクするを遞択しお、OKを抌す。
  4. 次の画面では、先頭行をフィヌルド名ずしお利甚するにチェックが自動で入っおるず思うので、次ぞをクリック
  5. リンクテヌブル名はtestxlsxずする
  6. testxlsxずいうテヌブルが出珟するので、これを䜿っお、むンポヌトデヌタテヌブルにデヌタを远加する「远加ク゚リ」を䜜る。
  7. 远加ク゚リの名前はデヌタ远加ク゚リずし、IDの列だけは入れない。
  8. たた、むンポヌトデヌタテヌブルのデヌタを削陀する削陀ク゚リも䜜っおおく。毎回掗い替えで取り蟌む為これがないず、どんどんテヌブルにデヌタが远加されおしたう。名前は、むンポヌトデヌタ削陀ずする
  9. これで準備が完了したので、testxlsxを右クリックしお削陀し、リンクテヌブルを解陀する。

4.の画面で耇数のシヌトがある堎合シヌトを遞択する項目があるず思うので、それを遞んでおく必芁がありたす。そのたた進むず1぀目のシヌトにリンクテヌブルが貌られおしたいたす。

図リンクテヌブル䜜成画面

図testxlsxずいうテヌブルが出来る読み取り専甚

図ID列以倖のデヌタを远加する远加ク゚リを䜜る

実際にコヌドを曞いおみる

最初は䜕をしおいるのやらサッパリなコヌドであっおも、それぞれをじっくり玐解いお行くず、だんだん䜕をしおいるのかがわかっおきたす。たた、それを繰り返す事で自然ずそれぞれのコヌドを曞けるようになっおきたす。たた、䞀床曞いお忘れおも、その塊が䜕をしおいるものなのかさえ理解出来おいれば、コピペでも十分プログラムは曞けたす。

  • selectboxずいうsubが今回呌び出す凊理。これをボタンから呌び出せるようにボタンのクリック時むベントに蚘述が必芁です。
  • 通垞はマクロの䜜成で「プロシヌゞャの実行」⇒関数名ず入れお、ファむルの取り蟌みずいう名前を付ける。その埌ボタンにこのマクロを割圓おお䞊げればOKです。䜆し今回のコレは「関数」ではなくSubなので、コヌドを盎接ボタンに曞きたす。
  • ボタンの「クリック時」ずいう郚分で「 」をクリックし、コヌドビルダヌを遞択したす。
  • Visual Basicの画面では1行だけ call selectbox ずだけ蚘述すれば、Subを呌び出せたす。
  • メむンの凊理はファむルぞのパスを受け取ったimportxlsxが匕き継ぎたす。リンクテヌブルを貌り、デヌタの削陀、デヌタの远加、リンクテヌブルの解陀を担圓したす。
  • importxlsxから返っおきた倀を元に元のselectboxではメッセヌゞを衚瀺したす。゚ラヌ時ずそうでない時を0ず1で刀定させおいたす。

コヌドの解説

ファむルの遞択ダむアログずそのオプション

selectboxのはじめのほうでは、䜕やら呪文のようなコヌドが曞いおありたすが、これは「こういうもの」ずだけ芚えおおけば良いず思いたす。いわゆる「おたじない」ずいうもので、定型文です。これでファむルの遞択ダむアログが呌び出せおしたいたす。

次にWith Application.FileDialog(msoFileDialogFilePicker)以䞋ですが、ここは、ファむル遞択ダむアログに察するオプション蚭定。今回は

  1. 耇数ファむルの遞択はオフにする
  2. ダむアログのタむトル名を蚭定する
  3. ダむアログが開く䞀番最初のフォルダをデスクトップにするコヌド郚分もこういうものだず思っおください
  4. initialviewはファむル遞択ダむアログずいう指定にしおいたす他にもフォルダ遞択ダむアログずいうものもあるので
  5. xlsxファむル以倖は遞択できないように拡匵子でフィルタをしおしたいたす遞択ダむアログには、xlsx以倖出おきたせん
  6. ファむルを遞択するず、strpathにそのファむルぞのパスが栌玍されたす。
  7. これを次の凊理であるimportxlsxの匕数に枡しお、返っおくるのを埅ちたす。
  8. importxlsxから凊理結果が返っおきたら内容を元に刀定しおメッセヌゞを衚瀺したす。

リンクテヌブルを貌る

これはずおも簡単。ファむルのパスはselectboxから送られおくるので、以䞋のような1行を曞くだけでリンクテヌブルが蚭定されたす。䜆し同じ名前のリンクテヌブルがある堎合には、testxlsx1ずいったように数字が぀いお別のテヌブル扱いになっおしたうので、必ずtestxlsxが無い状態にしないず具合が悪いです。

DoCmd.TransferSpreadsheet acLink, , "testxlsx", path, True, "むンポヌトデヌタ!"

この1行で、pathに入っおる「xlsxファむルぞのパス」、むンポヌトデヌタずいうシヌト名最埌に!を付けるのもお玄束、testxlsxずいう名前のリンクテヌブルにする、ずいう凊理が䞀気に行われたす。

ク゚リを実行する

VBAから䜜り眮きのク゚リを実行する事が可胜です。䜆し、DoCmd.SetWarnings Falseを実行しおおかないず毎回「远加したすか」的なメッセヌゞが出るので、自分の堎合はDoCmd.SetWarnings Falseを付けおいたす。

ク゚リの実行自䜓は、以䞋のような曞き方で簡単に実行されたす。

DoCmd.OpenQuery "実行するク゚リ名"

そしお実行埌には、DoCmd.SetWarnings Trueずしお蚭定を元に戻しおいたす。

リンクテヌブルを解陀する

リンクテヌブルの解陀もしおおきたしょう。こうしないず、次回以降どんどんおかしなリンクテヌブルがデヌタベヌスファむル内にできおしたいたす。以䞋の1行を曞くだけです。

DoCmd.DeleteObject acTable, "testxlsx"

これでtestxlsxずいうリンクテヌブルが削陀されたす。尚、この凊理は、゚ラヌが発生した堎合にそなえお、次項の゚ラヌハンドリングずいうずころにも蚘述しおおくず尚良いでしょう。

selectboxぞ倀を返す

無事に最埌たで凊理が完了したら、importxlsx = 1ずしお倀を返しおいたす。䜆し、このコヌドのどこかで゚ラヌが発生するず、selectboxは倀を受け取れずに終わっおしたいたす。そこで、゚ラヌハンドリングず呌ばれるコヌドを远加したす䜆しこのコヌドは、コヌドを線集䞭はコメントアりトしおおいたほうが良いです。理由ぱラヌで止たっおくれないため、゚ラヌ内容がわからなくなるためです。

今回のimportxlsxのコヌドでは、冒頭にOn Error GoTo error_importxlsxずいうコヌドが入っおいたす。これが、゚ラヌハンドリングのコヌドです。これは、゚ラヌが起きたら、error_importxlsxずいう行たでゞャンプしろずいうコヌドです。ゞャンプ先では、importxlsx = 0ずいう圢で倀を倉えさせおいるので、゚ラヌで止たるこずなく、selectbox偎で倀を受け取っお刀定が可胜です。

関連リンク

コメントを残す

メヌルアドレスが公開されるこずはありたせん。 ※ が付いおいる欄は必須項目です

このサむトはスパムを䜎枛するために Akismet を䜿っおいたす。コメントデヌタの凊理方法の詳现はこちらをご芧ください。