2025-12-01から1ヶ月間の記事一覧
Sub・Functionを使って分割するテクニックは、引数や構造を理解する負担を差し引いても初学者の助けになることがあります。早くからプロシージャ分割に触れてみて、感触によってはどんどん使ってみるのもいいかもしれません。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
LT会「みんなの便利なAI活用術」の配布資料と配信アーカイブを共有します。-コーディング規約をAIに読ませてマクロを作る方法と、そのコーディング規約をAIに作ってもらう方法を発表をしましたのでご活用ください。
テーブルのフィルターをクリアする場合は、ListObject.AutoFilterのShowAllDataメソッドを実行します。これはフィルターの抽出状態に関わらず実行できますので、抽出がかかっていなくてもエラーにはなりません。
ユーザー定義関数をスピルさせるには、配列(Array)を返り値として返すだけでOKです。一次元配列であれば横方向にスピルし、n行1列の二次元配列であれば縦方向にスピルさせることができます。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
第9回 和風スパゲティ勉強会「プロシージャ分割入門」の配布資料と配信アーカイブを共有します。SSub・Functionを使ったマクロ全体の設計を解説しましたので、復習や見逃し配信にご活用ください。
Zipファイルをマクロで解凍する方法を解説します。WScript.ShellオブジェクトのRunメソッドを使用して、ZIPファイルを解凍するPowerShellをVBAから呼ぶのが一番簡単です。
2024/12/10にオープンしたExcel&VBA総合コミュニティ「Excel-Fun.xls*」が、 おかげさまで 参加者 2,000人 を突破しました! コミュニティ、イベントにいつもご参加いただいている皆様、 本当にありがとうございます! 12/13に1周年記念イベントを開催してお…
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
フィルターで抽出されているデータだけをコピーして別ブックに出力するマクロを紹介します。書式などを保持するため、一旦シートごとコピーして見出し以下を消し、再度元シートからコピーして実行します。
オートフィルターの各種判定には、設置判定にはAutoFilterModeプロパティ、いずれかの列の抽出判定にはFilterModeプロパティ、特定の列の抽出判定にはFilter.Onプロパティをそれぞれ調べます。
フォルダを空にするには、ワイルドカード「*」を使った一括削除をファイル・フォルダ両方へ実行します。Killは可能ですがRmDirではできないため、FileSystemObjectのDeleteFile/DeleteFolderメソッドを利用します。
フォルダ内のすべてのファイルを削除するには、Killステートメントのワイルドカード*を用いた一括削除を用いるのが簡単です。FileSystemObjectのDeleteFileメソッドでも全く同じ処理を実行可能です。
行・列全体をRangeオブジェクトとして取得するにはRows/Columnsプロパティを使用します。セル範囲を含む行・列全体を取得したい場合は、EntireRow/EntireColumnプロパティを使用する方法もあります。
RGB値とHTMLカラーコード(#FFFFFF形式)を相互に変換する方法を解説します。RGB⇒HTMLにはHex関数、HTML⇒RGBには&H接頭辞を使います。RGB値とHTMLコードはそのままではRとBが逆順であることにご注意ください。
10進数と16進数を相互に変換する方法を解説します。10進数を16進数に変換するにはHex関数を使用します。16進数を10進数に変換したい場合は、16進数テキストの先頭に「&H」を文字列結合してからCLng関数を使用します。
背景色や文字色などをRGB指定で着色するには、設定したいオブジェクトのColorプロパティにRGB関数の結果を代入します。RGB関数の結果は整数値になっているため、これを調べれば定数や変数で指定することも可能です。
文字列を区切り文字で分割したするにはSplit関数を使用します。結果は配列として取得されます。TEXTSPLITと違い一次元配列を生成しますので、セルに縦方向に出力する場合はTRANSPOSE関数を使用する必要があります。
昨年2024年12月10日に開設したExcel&VBAの総合コミュニティ、 「Excel-Fun.xls*」が本日をもって1周年を迎えることができました 1年で500名を目標なんて言っていた参加人数はなんと1,500名を越え、 開催した勉強会も110と、とても盛況に1年を過ごすことがで…
表形式のデータを加工する際、指定列のデータ部分だけを選択したいことが良くあります。途中に空セルがあるなどでCtrl+Shift+↓が使えない時に用に、この範囲を自動取得してくれるマクロを作りましたのでご活用ください。
特定の列のデータ部分を取得する方法を解説します。Range(Cells, Cells)、第1セル.Resize(データ数)、Intersect(データ全体, Columns(指定列))、データ全体.Columns(指定列)の4種のコードを使い分けて使用します。
表エリア取得に非常に便利なCurrentRegionですが、上部余白を誤取得してしまう弱点があります。この弱点を解消する改良型CurrentRegionを自作ましたので、よろしければ皆さんもご活用ください。
Worksheets("○○").Cells(行, 列)でおなじみのCellsプロパティですが、実はセル範囲.Cells(行, 列)で実行することも可能です。さらにセル範囲.Cells(i)という引数ひとつでの実行も可能ですので、この仕様を深掘りしていきましょう。
セル範囲の最後のセルを取得には、セル範囲.Cells(セル範囲.Cells.Count)と記述します。セルの数番目のセル=最終セルという理屈で取得できます。このコードは複数エリアに対してはうごきませんのでご注意ください。
セル範囲の先頭のセルを取得する方法を解説します。セル範囲.Cells(1)というコードで簡単に取得できます。他にCells(1, 1)やItem(1)などで取得することもできますが、Cells(1)が最も安定するコードです。
Excelには表のエリアを推定して選択する機能があり、Ctrl+Aで実行することができます。この機能をVBAから呼び出してRangeオブジェクトを取得するには、CurrentRegion(カレントリージョン)プロパティを使用します。