2026-01-01から1年間の記事一覧
すべてのシートの保護を一括で設定/解除するには、ForEachでループしたすべてのシートでProtect/Unprotectメソッドを実行します。Protectについては許可する操作をひとつずつ選ぶ必要があるためご注意ください。
ブックを開いたときにマクロを自動実行するにはWorkbook_Openイベントを利用します。ただし実際には「マクロを有効化」した際に実行されるため、本当に開いた直後に実行させるにはいくつかの工夫が必要になります。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
ユーザー定義関数(Function)が呼ばれたセルを取得するには、Application.Callerプロパティを使用します。入力セルによって処理を分岐させたい場合はこのプロパティを使用してください。
押されたボタンごとに処理を分岐するにはApplication.Callerプロパティを使用します。Application.Callerで取得したオブジェクト名からShapeオブジェクトを取得すれば、表示テキストや位置による分岐も可能です。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
第10回 和風スパゲティ勉強会「クラスモジュール超入門」の配布資料と配信アーカイブを共有します。クラスモジュールの使い方を基礎から解説しましたので、復習や見逃し配信にご活用ください。
マクロがどこから実行されたかを調べるにはApplication.Callerプロパティを使用します。押されたボタンの名称を調べることができるだけでなく、ユーザー定義関数として呼ばれた際にその入力セルを取得することもできます。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Application.DisplayAlerts = False ⇒ 削除したいシート.Delete ⇒ Application.DisplayAlerts = True のようなコードはたったこれだけの処理に3行も使うため、こういったコードは思い切って汎用関数にしてしまいましょう。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
選択セル範囲にあるフォルダパスからフォルダを一括作成するマクロを紹介します。日付をTEXTJOIN関数で繋げてフォルダパスを生成するなど、規則性のあるフォルダを一括生成する際にご活用ください。
ある年の恵方がどの方角かを調べる関数を紹介します。恵方は実は4種類しかなく、しかも周期が10になっているため、西暦年の下1桁「Right(年,1)」を判定するだけで求めることが出来ます。
フォルダの構成をシートに書き出すマクロを紹介します。ダイアログで選択したフォルダの構成を新規シートに出力します。実行型の便利マクロですので、「個人用マクロブック」などに搭載して使ってください。
ExcelVBAはオブジェクト指向言語ではありませんが、WorksheetやRangeなどのオブジェクトはとても優れた設計になっています。今回はこれら組込オブジェクトの設計からオブジェクト指向を学んでみましょう。
複数のファイルを一括で選択できるダイアログボックスを表示するには、GetOpenFilenameメソッドの引数MultiSelectにTrueを渡すか、FileDialogオブジェクトのプロパティAllowMultiSelectにTrueを代入して実行します。
ダイアログボックスによるファイル選択を実行する、GetOpenFilenameメソッドとFileDialogオブジェクトの違いを解説します。FileDialogの方が高機能ですがコードが面倒な傾向があります。
名前を付けて保存ダイアログを開くにはGetSaveAsFilenameメソッドを使用します。このメソッドは実際の保存はせず選択されたファイルのパスを返してくれるだけですので、実際の保存処理はこの後に実行してください。
ダイアログでファイルを選択する機能であるGetOpenFilenameとGetSaveAsFilenameの違いを解説します。どちらもパスをStringで返す点は同じですが、存在しないファイルを指定できる点などが異なります。
ダイアログボックスを開いてユーザーにファイルを選択してもらうにはGetOpenFilenameメソッドを使用します。初期フォルダの指定などより複雑な操作をを行いたい場合はFileDialogオブジェクトを使用してください。
2025/2/8に開設した「Excel-Fun.xls*」のYoutubeチャンネルが、おかげさまでチャンネル登録者1,000人を突破しました!コミュニティ、イベントにいつもご参加いただいている皆様、本当にありがとうございます!
LT会「フリーソフト紹介」の配信アーカイブを共有します。本ブログのGIFアニメ作成にも使用しているGIF製作ソフト「ScreenToGif」とマウスポインタ装飾ソフト「Kokomite」を紹介しましたのでご参考ください。
第10回のテーマは「クラスモジュール超入門」ということで、クラスモジュールの簡単で便利な使い方を題材に基礎構文から勉強していきます。まだ使ったことがない方はこの機会に是非クラスモジュールを使い始めてみましょう!
ブックが読取専用か判定するには、WorkbookオブジェクトのReadOnlyプロパティを判定します。ReadOnlyは読み取り専用プロパティで、このプロパティに代入して読み取り専用の設定を変更することはできません。
ブックの読み取り専用を解除するにはWorkbookのChangeFileAccessメソッドが用意されているのですが、非常に癖が強いメソッドのため、一旦ブックを閉じてOpenでブックを開き直した方が良い場面が多いです。
ブックを読み取り専用で開くにはWorkbooks.Openの引数ReadOnlyをTrueに指定します。ただし既に開いているファイルに対して実行しても、エラーにはならず、かつ読取専用にはなってくれませんのでご注意ください。
セルの検索を行う手段は様々で、Range.Find、WorksheetFunction.Match、セル範囲.Formula = "=MATCH"、Dictionary(連想配列)オブジェクトなどが挙げられます。これらの速度やコーディングコストを検証してみます。
開いているブックを読み取り専用にするにはWorkbookのChangeFileAccessメソッドを使用します。読取専用ブックに実行するとエラーになってしまうためReadOnlyプロパティを調べてから実行してください。