和風スパゲティのレシピ

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

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

ダイアログボックスでファイルを複数指定する

複数のファイルを一括で選択できるダイアログボックスを表示するには、GetOpenFilenameメソッドの引数MultiSelectにTrueを渡すか、FileDialogオブジェクトのプロパティAllowMultiSelectにTrueを代入して実行します。

GetOpenFilenameとFileDialogの違い

ダイアログボックスによるファイル選択を実行する、GetOpenFilenameメソッドとFileDialogオブジェクトの違いを解説します。FileDialogの方が高機能ですがコードが面倒な傾向があります。

名前を付けて保存ダイアログを開く-GetSaveAsFilename

名前を付けて保存ダイアログを開くにはGetSaveAsFilenameメソッドを使用します。このメソッドは実際の保存はせず選択されたファイルのパスを返してくれるだけですので、実際の保存処理はこの後に実行してください。

GetOpenFilenameとGetSaveAsFilenameの違い

ダイアログでファイルを選択する機能であるGetOpenFilenameとGetSaveAsFilenameの違いを解説します。どちらもパスをStringで返す点は同じですが、存在しないファイルを指定できる点などが異なります。

ダイアログボックスでファイルを指定・選択する

ダイアログボックスを開いてユーザーにファイルを選択してもらうにはGetOpenFilenameメソッドを使用します。初期フォルダの指定などより複雑な操作をを行いたい場合はFileDialogオブジェクトを使用してください。

Youtubeチャンネル登録者1,000名を突破しました!

2025/2/8に開設した「Excel-Fun.xls*」のYoutubeチャンネルが、おかげさまでチャンネル登録者1,000人を突破しました!コミュニティ、イベントにいつもご参加いただいている皆様、本当にありがとうございます!

LT会「フリーソフト紹介」配信アーカイブ

LT会「フリーソフト紹介」の配信アーカイブを共有します。本ブログのGIFアニメ作成にも使用しているGIF製作ソフト「ScreenToGif」とマウスポインタ装飾ソフト「Kokomite」を紹介しましたのでご参考ください。

2/10(火)21:00~ 第10回 和風スパゲティ勉強会「クラスモジュール超入門」

第10回のテーマは「クラスモジュール超入門」ということで、クラスモジュールの簡単で便利な使い方を題材に基礎構文から勉強していきます。まだ使ったことがない方はこの機会に是非クラスモジュールを使い始めてみましょう!

ブックが読み取り専用か判定する - ReadOnly

ブックが読取専用か判定するには、WorkbookオブジェクトのReadOnlyプロパティを判定します。ReadOnlyは読み取り専用プロパティで、このプロパティに代入して読み取り専用の設定を変更することはできません。

ブックの読み取り専用を解除する - ChangeFileAccess

ブックの読み取り専用を解除するにはWorkbookのChangeFileAccessメソッドが用意されているのですが、非常に癖が強いメソッドのため、一旦ブックを閉じてOpenでブックを開き直した方が良い場面が多いです。

ブックを読み取り専用で開く - ReadOnly

ブックを読み取り専用で開くにはWorkbooks.Openの引数ReadOnlyをTrueに指定します。ただし既に開いているファイルに対して実行しても、エラーにはならず、かつ読取専用にはなってくれませんのでご注意ください。

セル検索の速度比較 - Find/Match/Dictionary

セルの検索を行う手段は様々で、Range.Find、WorksheetFunction.Match、セル範囲.Formula = "=MATCH"、Dictionary(連想配列)オブジェクトなどが挙げられます。これらの速度やコーディングコストを検証してみます。

ブックを読み取り専用にする - ChangeFileAccess

開いているブックを読み取り専用にするにはWorkbookのChangeFileAccessメソッドを使用します。読取専用ブックに実行するとエラーになってしまうためReadOnlyプロパティを調べてから実行してください。

80本目:読み取り専用で保存できないブックにする

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

81本目:全フィルターの絞り込み解除

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

WorksheetのCopyメソッドを改良した関数を作る

ちょっと仕様がイマイチのCopyメソッドに、返り値がWorksheet、Before/AfterにWorkbookを渡せる(先頭/末尾にコピー)、非表示シートを渡せる、コピー後に保護を解除する機能を持たせた関数を作ってみましょう。

セル範囲から不要な範囲をカットする - Intersect

CurrentRegionやUsedRangeから上部の不要部分を消して、データエリアだけにするときなど、セル範囲から不要な範囲をカットするには、セル範囲同士の交差範囲(重複エリア)を取得するIntersectメソッドを使用します。

AutoFilerはどこから実行しても既存のフィルターが実行される

AutoFilterメソッドはどの親Rangeから実行しても、すでにフィルターが存在している場合はそのフィルターで抽出を実行してしまします。確実にフィルター範囲を指定するにはいったん解除してから実行してください。

フォルダ内のファイル一覧を取得する汎用関数

フォルダ内の複数ファイルへ同じ処理を行う場合、①まずは対象ファイルのリストを取得、②そのリスト内の全ファイルへ処理のように処理を段階化するのが便利です。この①を簡単に行うための汎用関数を紹介します。

82本目:ブックのドキュメントプロパティを取得

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

83本目:請求書を作成してPDF出力

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

84本目:ブックの自動バックアップ

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

シート上の全フィルターをクリアする - ShowAllData

テーブルとフィルターが混在したシートにおいてすべてのフィルターをクリアするには、すべてのAUtoFilterオブジェクトからShowAllDataメソッドを実行します。この処理は選択セルの影響を受けるためご注意ください。

日付から月末を求める - EOMONTH/DateSerial

日付や年月から月末を求める方法を解説します。日付から月末を求めるにはEOMONTH関数、年月の整数値から月末を求めるにはDateSerial関数のDayに0を渡す方法をそれぞれ用いるのが簡単です。

セルがエラーかどうか調べる - IsError関数

セルがエラーかどうかを調べる方法を解説します。セル.Valueに対してIsError関数を使用します。WorksheetFunctionの結果がエラーかを判定することはできませんのでご注意ください。

85本目:請求日から入金予定日を算出

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

86本目:全シートの総当たり表を作成

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

87本目:数式のシート間の依存関係

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

セルのエラー値の種類を調べる - CVErr関数

セルのエラー値の種類を調べる方法を解説します。エラーになったセル.ValueをCVErr関数の結果と比較します。エラーでないセルと比較すると型の不一致エラーが発生してしまうためご注意ください。

テーブルと通常フィルターが混在するシートにおけるAutoFilterの挙動

テーブル(ListObject)と通常のフィルター(AutoFilter)が混在したシートにおいて、AutoFilterの各種プロパティがどのような挙動になるかを検証します。特にWorksheetから直接実行するプロパティにご注意ください。