和風スパゲティのレシピ

日本語でコーディングするExcelVBA

2025-10-01から1ヶ月間の記事一覧

日付(Date)とyyyymmdd(Long)を相互変換する

日付(Date型)とyyyymmdd数値を相互に変換する方法にはFormat関数を使用します。日付⇒yyyymmddにはFormat(日付,"yyyymmdd")、yyyymmdd⇒日付にはFormat(数値,"@@@@/@@/@@")を用います。

特定の条件を満たす行を高速削除する

特定の条件を満たす行を削除する際、Unionによる高速化を用いても遅い場合用に、削除対象かを判定する列を作りその列でソート、それでひとつにまとまった削除対象データを一発で削除する方法を紹介します。

「Rangeオブジェクト再入門」配布資料&配信アーカイブ

第7回 和風スパゲティ勉強会「Rangeオブジェクト再入門」の配布資料と配信アーカイブを共有します。Range・Cellsの基本コードを1からおさらいしていきましたので、基礎固めにご活用ください。

96本目:Accessデータを取得(マスタ結合&抽出)

Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。

97本目:Accessデータを取得(グループ集計)

Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。

98本目:席替えルールが守られているか確認

Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。

99本目:行列前後左右が違うように自動席替え

Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。

ExcelVBA100本ノック解答用汎用関数集

「VBA100本ノック」に対する私の回答を順次公開するにあたり、「解答の際になるべく汎用関数を作り各問題で共有する」というルールを設けています。この汎用関数をすべて集めたページを作成しましたのでご活用ください。

スピル数式をVBAから入力する - Formula2

スピル数式をVBAから入力するにはRangeオブジェクトのFormula2プロパティを使用します。従来のFormulaプロパティを使用した場合は互換性のために共通部分演算子「@」が挿入されスピルしませんのでご注意ください。

セルに罫線を引く - Range.Borders

セルに罫線を引くにはRangeオブジェクトのBordersプロパティを使用します。Bordersの引数を省略すれば格子罫線全体を一括設定でき、LineStyleやWeightは省略できることも多いため、実際はほぼ1行のコードで実行できます。

11/26(水)21:00~ 第8回 和風スパゲティ勉強会「Sub・Function超入門」

第8回のテーマは「Sub・Function超入門」ということで、Subプロシージャ/Functionプロシージャの使い方を基礎から解説していきます。簡単で便利な使い方を題材に入門から進めていきますのでぜひご参加ください。

セル・セル範囲・行・列を削除する - Delete

セルや行・列を削除するにはdeleteメソッドを実行します。第1引数で「削除後のスライド方向」を指定できます。行列全体を指定できる引数はありませんので、行列全体を削除する場合はEntireプロパティを使用します。

セル・セル範囲・行・列を挿入する - Insert

セルや行・列を挿入するにはInsertメソッドを実行します。第1引数で「挿入後のスライド方向」を、第2引数で「書式のコピー元」をそれぞれ指定できます。行列全体を指定する場合はEntireプロパティを使用します。

セル範囲を行数・列数指定で取得する - Resize

セル範囲を行数・列数指定で取得するにはResizeプロパティを使用します。Range(Cells,Cells)形式より簡単に書ける場合も多いです。表のデータエリアを取得したり、表エリアから見出しを取り除くコードに活用できます。

セルやセル範囲を行数・列数分移動する - Offset

Rangeオブジェクトを指定行数、列数分移動する際はOffsetプロパティを使用します。データ範囲から見出しを削除するなどによく使用します。セル結合があると正しく動きませんのでご注意ください。

セルが特定のセル範囲内にあるか判定する-Intersect

あるセルが特定のセル範囲内にあるかを判定するには、セル範囲の交差範囲を取得するIntersectメソッドを使用します。選択セルに実行するマクロならSelection、イベントマクロならTargetを引数に渡してください。

図形の前面/背面を設定・変更する - ZOrder

図形の重なり順を設定するには、ShapeオブジェクトのZOrderメソッドを実行します。最前面・最背面・ひとつ前面・ひとつ背面の4つの実行ができます。図形の前面/背面判定にはZOrderPositionプロパティを使用します。

ExcelVBAコーディングガイドライン

コーディング規約とは変数や処理の書き方などに方針を定めたもので、コードの書き方に迷う時間を減らしたり、以前書いたコードが読みやすくなる効果があります。ぜひ皆さんもマイルールを作ってみてください。

重なった図形を最前面のもの以外削除する

同じ図形が同じ場所に大量に溜まったファイルを整理する際に、最前面の図形以外を削除するコードを紹介します。タイプや位置などの複数要素の一致判定にはDictionaryを使用するのが便利です。

すべての図形内テキストをセルに出力するマクロ

マニュアルやフロー図などがExcelで作られていると、ほとんどのテキストが図形内にあるということもよくあります。これを一括でセルに出力するマクロを紹介します。

4種のAIによるExcelVBAコーディング性能比較

ChatGPT、Copilot、Gemini、Claudeに同じマクロを作ってもらい性能を比較をしてみました。「VBA&AI初学者に優しい生成AIはどれ?」をテーマに採点しましたので、どのAIをお供にするかの参考にしてみてください。

スパとふゆの0からはじめるExcelマクロ まとめ

Excelマクロ初心者のふゆさんに0からVBAを教えるLive配信です。毎週金曜22:00~お気軽にお越しください(´∀`)配信アーカイブと取り組んだ内容をまとめましたので復習や見逃し配信にご活用ください。

選択セル値をブック名にブックを新規保存するマクロ

Wordの新規保存ダイアルログは先頭行のタイトルが保存ファイル名初期値になって開きます。この機能をExcelでも使えるよう、選択セルの値をブック名初期値として新規保存ダイアログを開くマクロを紹介します。

非表示のシートをコピー・移動する

非表示のシートをコピー・移動しようとするとエラーが発生します。これを非表示のまま解消することはできませんので、一旦再表示 → コピー/移動 → 非表示に戻すという手順を踏んで対応します。

Collectionで重複なしリストを作成する

Collectionで重複のないユニークリストを作成する方法を解説します。KeyにItemと同じものを入れてKeyを重複チェックに利用するか、Itemの存在チェック関数を自作して対応するかの2つの方法で対応します。

10/29(水)21:00~ 第7回 和風スパゲティ勉強会「Rangeオブジェクト再入門」

和風スパゲティ勉強会 第7回のテーマは「Rangeオブジェクト再入門」ということで、今さら聞けないRange・Cellsの基本コードをおさらいしていきます。Excelのメインオブジェクトを綺麗に扱う方法を一緒に勉強しましょう。

Accessのテーブルをワークシートに出力する

Accessのテーブルをシートに出力する方法を紹介します。ADODBのSQLによるSELECT文を使用しています。テーブル名と出力始点セルを渡せば動く関数にしましたので、本関数を中身を見ずにCallしてもOKです。

OnError中にCallした関数内でエラーが起きると即呼出元に戻る

On Error Resume Next下においては、Callしたプロシージャ内でエラーが発生すると即座にCall元に戻ります。エラー発生コードからEndSubまでのコードは一切実行されませんのでご注意ください。

プロシージャのCall元/先でのOnError挙動まとめ

プロシージャをCallする際、親子どちらでOnErrorを設定したかによって、どのように処理内容が変化するかをまとめました。エラー処理を行う際の参考にして下さい。

指定行より下を最終行まですべて削除する

指定行より下の行をすべて削除するコードを解説します。シートの最終行まで削除、データの最終行まで削除の2通りの処理を解説します。いずれもフィルター抽出中は正しく動かないことに注意してください。