Functionこれまでに紹介してきたQueryTableのソースコード内に、CSVが空かどうか?をチェックする「isCsvEmpty」というFunctionを追加しました。CSVが空かどうかを判定して、空なら処理を中断する処理です。それでは「isCsvEmpty」で使用しているステートメント、関数を紹介していきます。通常テキストやCSVなどを取り込むときはWorkbook上に取り込みますが、Openステートメントを使用することでWorkbookを新しく作成せず、パソコン内部で開くことができます。CSVの場合はシーケンシャル入力モードを表す「Input」を指定。CSVに割り当てる番号サンプルでは、CSVのフルパスを表す変数strPathを引数として渡しています。Then渡した引数は「isCsvEmpty」内のOpenステートメントで使います。#myFileNo入力モードには、シーケンシャル入力モードであるInputを指定し、先頭から読み込むように命令しています。#ファイル番号は1~511の番号をCSVに対して割り当てることができますが、すでに使用している番号を指定するとエラーになるので、自動的に以下の関数でファイル番号を取得しています。FreeFile(範囲番号)まだ使用されていないファイル番号を返します。自動でファイル番号を選択してくれるので、重複によるエラーが回避できます。範囲番号に0を指定すると1~255の値、1を指定すると256~511の値を返します。省略すると0を指定したことになります。サンプルでは、myFileNoという変数にFreeFile関数で取得した値を格納しています。FreeFileEOF(ファイル番号)openステートメントで開いたCSVの読み込み位置が、末尾に達した場合にTrueを返します。CSVが空の場合はTrue、1行でもデータが格納されている場合はFalseを返します。#ファイル番号Closeステートメントで引数「ファイル番号」に指定した番号のファイルを閉じます。この時点で割り当てられた番号は解放されます。以上の2通りがあります。状況に合わせて最適な方法を選択してください。変動するファイル名に規則性がある場合(日付など計算で求められる)以上の通り、CSVのファイル名に規則性がある場合は手動選択にせず、自動化してしまいましょう。ファイルの選択誤りは高い確率で起こりうる人為的なミスです。ミスを減らす工夫は以下の記事で詳しく紹介しています。エクセルVBAによる運用業務で人為的ミスを減らす4つの方法エクセルVBAを運用業務で活用されている方必見!人為的ミスを大幅に減らす4つの方法を紹介します。エクセルVBAはメイン処理に偏らず人為的ミスを想定したコーディングが業務効率化に繋がります。tonari-it.com2018.08.14ファイルの存在チェックを導入する自動で選択する以上は、ファイルの存在チェックが必要不可欠です。ファイル自動選択を導入する場合は、以下の関数で必ずファイルの存在チェックを行ってください。Dir(ファイルのフルパス)使い方は以下の記事をご覧ください。エクセルVBAでDir関数を使って指定のファイルが存在するかどうかを判定する方法エクセルVBAでファイルを開く作業を自動化する方法についてのシリーズ。今回は開くファイルの指定をエクセルシートに変更し、またファイルが存在するかどうかをDir関数で判定する方法についてお伝えします。tonari-it.com2016.12.05ファイル選択ダイアログで選択する自動ではなくファイル選択ダイアログを使うことでも実現できます。CSVの名前に規則性がなく、自動化が難しい場合に使用してください。ファイル選択ダイアログは以下の記事が参考になります。エクセルVBAでFileDialogオブジェクトを使ってファイル選択ダイアログを開くエクセルVBAでファイルを開く作業を自動化する方法についてシリーズでお伝えしています。今回は、エクセルVBAでFileDialogオブジェクトを使ってファイル選択ダイアログを表示させる方法です。tonari-it.com2016.12.14まとめ以上、QueryTableオブジェクトを使用する際に注意すべき事として以下の2点を紹介しました。CSVが空の時の「メモリ不足です」というエラーはわかりづらいですよね。コーディングの時間短縮はもちろんですが、思わぬバグや運用ミスを減らす意味で、今回紹介した内容は参考になるはずです。QueryTableオブジェクトを最大限に実務でお役立てください!以上、QueryTableオブジェクトの連載でした。連載目次:エクセルVBAのQueryTableで高速にCSVを取り込む一般的なループを使用したCSV取り込みよりも、更に高速にCSVを取り込むことのできるQueryTableオブジェクトに関する連載です。サイズの大きなCSVを取り込む際に非常に便利です。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。VBAで選択しているシェイプのフォントを変更するマクロの作り方をお伝えしています。今回は、選択する部分を表すSelectionオブジェクトの4つのタイプについて理解を深めていきます。2018.09.21Excel・VBA活用術エクセルで営業日判定を実現するWORKDAY関数の使い方エクセルで土日祝日を判定したい!といった場合に、祝日の判定は標準のエクセル機能では不可能です。今回紹介するWORKDAY関数を使用すれば、祝日の判定を実現することが可能です。【脱エクセルVBA初心者】PDFでの出力とファイル名の指定保存そして閉じる脱エクセルVBA初心者向け、請求書を自動で作る際の様々なテクニックをお伝えしていますが、今回はエクセルVBAでワークブックを別名で保存しつつ、PDF出力して閉じる方法についてお伝えします。2016.06.23Excel・VBA活用術カラム数を指定してBootstrapのグリッドシステムを使ったHTMLを生成するエクセルVBABoostrapを使ったHTMLコードをエクセルVBAで自動生成していきます。今回はカラム数を指定することで、グリッドシステムを使った部分のHTMLソースを生成するVBAプログラムを作っていきます。VBAにキーボード入力をさせる方法エクセルVBAで、キーボードのキーを押したときと同じ動きをさせるSendKeysステートメントを、プルダウンメニューのオープンを例にしてご紹介しています。このステートメントを使えば、プルダウンメニューの手動オープンのように、大した手間ではないれど、何度もやるとなると面倒...という場合の解決策になるかもしれません。VBAで、Moveメソッドを使った今開いているメールをワンクリックで指定のフォルダへ移動する方法をご紹介しています。移動させたいメールを、移動先のフォルダへドラッグ&ドロップ...なんてしなくても、この方法ならワンクリックで移動させることができますよ。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。RowSourceプロパティとAddItemメソッド2020.01.21GASでGoogleスライドのSlideオブジェクトの概要とその取得方法2020.01.162020.01.24Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。