和風スパゲティのレシピ

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

VBA

オートフィルターのデータ部分を取得する

オートフィルターのデータ部分を取得するにはAutoFilter.Rangeを使用します。ただしこれは見出しもついてくるため、Offset+Resizeを利用して見出しを除外します。各列を取得する場合はそこからIntersectを使用します。

ExcelVBAと生成AIについて思うこと

2025年12月1日をもって、ブログ開設6周年となりました。今日は2025年時点での、生成AIに対する感想や考察を書いていこうと思います。

12/23(火)21:00~ 第9回 和風スパゲティ勉強会「プロシージャ分割入門」

第9回のテーマは「プロシージャ分割入門」ということで、Sub・Functionを使ったマクロ全体の設計を解説します。条件分岐やループ処理、例外処理を処理階層を意識して分割する方法を解説しますのでふるってご参加ください。

フィルター抽出中のデータをコピーする

フィルター抽出中のデータをコピーする方法を解説します。Copyメソッドには「非表示行をコピーしない」機能があるため、 可視セルを取得する必要はなく、純粋なCopyメソッドで実行可能です。 抽出中のフィルターエリア全体をコピーする 見出し部分を除いてコ…

セルに設定されたふりがなを一括削除するマクロ

データを並び替える際Excelは「ふりがな」順を優先するため、稀に同じデータでも違う場所に並び変わってしまうことがあります。その対策として、選択範囲のフリガナを一括で削除するマクロを紹介します。

ブック内の全シートを1シートに結合するマクロ

アクティブブック内の全シートを1シートに結合するマクロを紹介します。見出し行を選択して実行することで見出し以下だけを結合します。内部で汎用関数を動かしており、シート名条件も指定できますのでご活用ください。

「Sub・Function超入門」配布資料&配信アーカイブ

第8回 和風スパゲティ勉強会「Sub・Function超入門」の配布資料と配信アーカイブを共有します。Sub/Functionプロシージャを使いどころから作り方の実演まで解説しましたので復習や見逃し配信にご活用ください。

ReplaceメソッドとReplace関数の速度比較

セル内テキストを置換するRange.Replaceメソッドと、Replace関数は、単体ではReplace関数の方が高速でした。しかしそれ以上にセルのアクセス回数の影響が大きく、配列を使用して初めて高速化します。

12/8(月)21:00~ VBA勉強会「第6回 スパゲティコード添削会」

「スパゲティコード添削会」と称してVBA勉強会を開催します!今回は本ブログで出題したVBAの基本問題「注文書をデータ取込」を題材に、コード全体の設計などをリファクタリングしていきます。

Replace関数とSUBSTITUTE関数の違い

VBAの関数「Replace」と、Excelのシート関数「SUBSTITUTE」の違いを解説します。どちらも文字列を置換する関数です。第1引数~第3引数までは全く同じ関数で、第4引数以降で設定できる機能に違いがあります。

文字列を置換する - Replace関数

文字列を置換する、Replace関数の使い方を解説します。置換する文字列の設定の他、開始位置や置換回数なども指定可能です。セル範囲を一括で置換する場合はRelplaceメソッドを使用することもできます。

セル範囲(Range)が行全体/列全体か判定する

セル範囲が行全体/列全体か判定する方法を紹介します。セル範囲を含む行全体/列全体を取得するEntireプロパティを使い、そのAddressが元のセル範囲のAddressと一致するかを判定します。

フォルダ内の全ブックを1シートに結合するマクロ

アクティブブックと同フォルダ内のブックを1シートに結合するマクロを紹介します。内部で汎用関数を動かしており、ブック名・シート名・拡張子の条件を指定できますのでこちらも併せてご活用ください。

第何日目/第何週目か調べる - DatePart

指定日が第何日目、第何週目か調べるにはDatePart関数を使用します。年内で第何日目か、月内/年内で第何週目かなどを調べることができます。第3引数で週の始まりの曜日、第4引数で年の第1週の判定方法を指定できます。

Format関数とTEXT関数の違い

VBA関数Formatとシート関数TEXTの違いを解説します。両者とも「値を指定の表示形式の文字列に変換する関数」でほとんど同じ仕様の関数です。分を専用で指定できる「n」を使えるのが一番大きな違いです。

文字列を指定の表示形式に変換する-Format関数

文字列を指定の表示形式に変換するFormat関数を使用します。TEXTと同様日付をyyyymmddや和暦、曜日に変換したり、数値の桁区切りや小数点桁数を調整したり、100円などの単位を付与するなど幅広い用途で使用できます。

94本目:表範囲からHTMLのtableタグを作成

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

95本目:図形のテキストを検索するフォーム作成

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

文字列を改行する/改行を消す/別文字に置換する

VBAで文字列を改行したり、改行を操作する方法を解説します。文中の改行を文字列として表現する改行コードにはCR、LF、CRLFの三種類があり、VBAではそれぞれvbCrLf、vbCr、vbLfを使って挿入することができます。

LT会「自作ライブラリ勉強会」配布資料&配信アーカイブ

LT会「自作ライブラリ勉強会」の配布資料と配信アーカイブを共有します。私は今回「クラスライブラリ」として、オートフィルターにテーブル各種機能とデータの操作関数を付与するクラスを紹介しました。

LT会「便利マクロ勉強会」配布資料&配信アーカイブ

LT会「VBA開発者のための便利マクロ勉強会」の配布資料と配信アーカイブを共有します。コードを自動生成したり、デバッグの支援ツールを作ったり、マクロを作るためのマクロの発表をしましたのでご活用ください。

LT会「Excelグラフ勉強会」配布資料&配信アーカイブ

LT会「Excelグラフ勉強会」の配布資料と配信アーカイブを共有します。マクロ記録を使ったグラフ要素の着色とグラフ軸目盛りの範囲・間隔を統一するマクロを発表をしましたのでよろしければご活用ください。

LT会「VBA開発者のための便利マクロ勉強会」配布資料&配信アーカイブ

LT会「VBA開発者のための便利マクロ勉強会」の配布資料と配信アーカイブを共有します。コードを自動生成したり、デバッグの支援ツールを作ったり、マクロを作るためのマクロの発表をしましたのでご活用ください。

Enumを定義したモジュールを自動生成するマクロ

Enum定義は通常ひとつのモジュール内にまとめた方が便利ですが、場合によっては専用のモジュールを作りたいときがあります。その時のためにシート名と同名のモジュールを挿入してEnumコードを記載するマクロを紹介します。

ブックが保存済みか調べる - Savedプロパティ

ブックが保存済みかどうかを判定するには、WorkbookオブジェクトのSavedプロパティを調べます。このプロパティは代入も行うことができ、Trueにすることでブックを閉じる際の保存確認ダイアログを出なくすることができます。

セルの背景色を設定する - Interior.Color

セルの背景色を設定するにはRangeオブジェクトのInteriorプロパティを使用します。通常はRGB関数で指定するのが万能ですが、セルの背景色を別のセルに反映させるにはColorプロパティの値を代入させるだけでOKです。

全半角/大小文字/カナを変換する - StrConv関数

VBAにおいて文字列内の特定文字を変換する際はStrConv関数を使用します。第2引数で変換内容を指定でき、英数カナの全角↔半角、英数字の大文字↔小文字、かな↔カナの変換をなどを行うことができます。

文字列の全角/半角を切り替える - StrConv関数

文字列をすべて全角/すべて半角にするには、StrConv関数を使用し、第2引数にvbWide/vbNarrowを渡します。英数字だけでなくカタカナも対象になってしまうため、これらを個別に変換する場合は1文字ずつ変換します。

Windows11 おすすめ設定一覧

遅ればせながら自宅PCをWindows11に更新しました。「設定」アプリ内の全設定をチェックして回ってみました。Tips的な設定を一覧にしてみましたので、皆さんのWindows11ライフの参考になれば幸いです。

現在の日時を取得する - Date/Time/Now関数

現在の日時を取得する方法を解説します。Date/Time/Now関数を使用します。日付・時刻ともに「Date型」で取得されますので、 テキストとして扱いたい場合はFormat関数を利用します。 基本構文 サンプルコード 日付型としてそのまま使用する 文字列型として好…