Softex Celware Tech Blog
実務開発とAIコーディングで得た知見を、再利用できる開発資産として整理し、 技術記事として公開しています。
GAS・Next.js・Electron・Python・WPF・VSTOなどの実践ノウハウを発信しています。
開発ノウハウを次へ残す仕組み
実務で得た知見を、再利用できる技術記事へ
このブログでは、開発中に見つかった課題、実装パターン、注意点、 再利用判断をMarkdownで整理し、AI開発でも人間の確認でも使いやすい形に残します。 その一部を、読者にも分かる技術記事として公開しています。
このブログの作り方を見る →
Portfolio
開発事例
Tools
公開ツール
最新の記事
「Excel VBAはそのうち無くなる」は本当か?VBA廃止説の歴史と現実
Excel VBAやマクロは昔から「そのうち使えなくなる」と言われ続けています。VBA廃止説が繰り返される背景と、実務での現実的な使い分けを整理します。
importmapでThree.jsをCDNから読み込むビルドレス3D Web構成
npmやViteを使わず、importmapでThree.jsとOrbitControlsをCDNから読み込む静的3D Webアプリ構成を整理します。
スキーマ駆動パラメータUIとモードレジストリで分岐を減らす
複数モードを持つWebアプリで、入力項目、検証、計算関数、出力ファイル名をモードレジストリに集約する設計パターンです。
重い計算UIでスライダー操作中プレビューとデバウンスを両立する
スライダー操作中は軽量プレビュー、操作完了時は本解像度で再計算することで、重い3D計算UIの操作感を保つパターンです。
Three.jsでパラメータ変更時にカメラ位置を保持するパターン
3Dモデル更新時に視点を毎回リセットせず、初回やモード切替だけ自動フィットするためのカメラ制御パターンです。
文字列をクリップボードへ格納するExcel VBA汎用プロシージャ ClipText
VBAで生成した文字列やコードをクリップボードへ格納し、すぐ貼り付けできる状態にする汎用プロシージャClipTextを解説します。
エラー回避コードのひな形を生成するExcel VBA汎用プロシージャ MCCErrorEscape
イミディエイトウィンドウからMCCErrorEscapeを実行し、エラー回避用テンプレートをクリップボードへ生成してコードウィンドウへ戻るVBA開発補助プロシージャを解説します。
イミディエイトウィンドウ実行後にコードウィンドウへ戻すExcel VBA汎用プロシージャ ShowCodeWindowDelay
イミディエイトウィンドウから開発補助マクロを実行したあと、Application.OnTimeとDoEventsでタイミングをずらしてVBEのコードウィンドウへ戻す補助プロシージャを解説します。
生成AIを活用した新しいシステム導入サービスの考え方
お客様環境内でしか進めにくい導入作業を、開発者側AIとお客様側AIを介した手順設計で支援する考え方を整理します。
円単位の逆算を二分探索で実装する
手数料や消費税の端数処理がある料金計算で、予算内最大額や目標手取り以上の最小額を1円単位で探索する方法です。
技術ブログとWebアプリを相互リンクさせる導線設計
技術ブログで解説した式や考え方をWebアプリで試せるように、記事とアプリを相互リンクさせる導線設計を整理します。
計算表のセルをクリックして式と代入値を確認できるUI
行列や係数表のセルに、一般式、代入値、計算結果、説明を持たせ、クリックで詳細を確認できるUIパターンです。
数式導出をSTEPで見せる学習UIの作り方
数式や計算過程を一度に見せず、概要、条件式、行列、係数、最終式へ順番に追える学習UIとして整理する設計パターンです。
係数行列の条件式を色分けして見せるUI設計
条件式、係数行列、右辺ベクトルの対応関係を色でそろえ、数値計算の構造を追いやすくするUI設計パターンです。
モバイル向け数値入力パッド
スマートフォンで金額を入力しやすくするために、数字、増減、全消去、1字削除ボタンを画面内に置く入力UIパターンです。
計算ロジックを純粋関数に分離する設計
見積、税、手数料などの計算処理をUIイベントから切り離し、DOMに依存しない純粋関数として扱う設計パターンです。
スマホでは表をカード表示に変換するCSS
PCでは通常テーブル、スマホでは行単位のカード表示に切り替えて、計算結果表の横切れを防ぐCSSパターンです。
タブごとに入力状態を保持するUI
見積額、予算、手取りなど複数モードを持つ計算ツールで、タブごとに金額や設定を保存・復元するUIパターンです。
入力規則リストを前後へ切り替えるExcel VBA汎用プロシージャ
選択セルの入力規則リストを取得し、現在値を1つ前または1つ次の候補へ切り替えるChangeDownValue_MoveSpinButton / ChangeUpValue_MoveSpinButtonを解説します。
0始まり配列を1始まりへ変換するExcel VBA汎用関数 ConvArray1D_Start1
Splitなどで作られる0始まりの一次元配列を、VBAの処理で扱いやすい1始まり配列へ変換する汎用関数を解説します。
入力規則リストを矢印ボタンで切り替えるExcel VBA汎用プロシージャ
Worksheet_SelectionChangeから呼び出し、入力規則リストが設定されたセルで左右ボタンを表示して候補値を前後へ切り替えるExcel VBA汎用プロシージャを解説します。
セルの入力規則リストを取得するExcel VBA汎用関数 GetCellValidation
指定セルに設定された入力規則リストを読み取り、候補値を一次元配列として返すExcel VBA汎用関数を解説します。
一次元配列から値の位置を取得するExcel VBA汎用関数 GetNumFromArray1D
指定した値が一次元配列の何番目にあるかを調べ、見つからない場合は0を返すExcel VBA汎用関数を解説します。
公開アプリ更新時にREADME・仕様書・画面導線を同時に揃える
公開中のWebアプリを更新するときに、画面だけでなくREADME、仕様書、使い方解説ページへの導線を同時に更新するためのチェックリストを整理します。
Googleスプレッドシートを簡易DBとして使うMVP構成のアイデア
Googleスプレッドシートを簡易データベースとして使い、低コストで業務改善Webアプリを試作する構成案と注意点を整理します。
修正フォームの近くに参考情報を表示して入力ミスを減らすパターン
過去データの修正フォームで、判断材料になる参考情報を入力欄の近くに表示する実装パターンを解説します。
前回作業日の未完了データを入口画面で補正するUIパターン
退勤忘れや入力途中のデータを、次回利用時に入口画面で補正できるようにするNext.js + SupabaseのUI設計パターンを解説します。
Next.js + SupabaseでOAuthログイン後にcallback routeを挟む実装パターン
Google OAuthログイン後に1回目だけ保護ページへ入れない問題を、Next.js App Routerのcallback routeで解決する実装パターンを解説します。
クリックされた図形の色を一時変更するExcel VBA汎用プロシージャ
Application.Callerでクリックされた図形を取得し、短時間だけ背景色と文字色を変更して元に戻すExcel VBA汎用プロシージャを解説します。
セルの値を増減させるExcel VBA汎用プロシージャ ChangeValueCell
指定セルの値を任意ステップで増減し、任意で最大値・最小値も指定できるExcel VBA汎用プロシージャを解説します。
図形ボタンで選択セルの値を増減するExcel VBA汎用プロシージャ
図形ボタンのクリックから選択セルを取得し、値を1ずつ増減させるDownValue_ByMoveButton / UpValue_ByMoveButtonを解説します。
角丸四角形を作図するExcel VBA汎用関数 DrawRectangleRound
指定座標とサイズから角丸四角形のShapeを作成し、負の幅や高さにも対応するExcel VBA汎用関数を解説します。
選択セルに追従する増減ボタンを表示するExcel VBA汎用プロシージャ
Worksheet_SelectionChangeから呼び出し、選択セルの近くに増減ボタンを表示して値を上下できるExcel VBA汎用プロシージャを解説します。
選択中セルを安全に取得するExcel VBA汎用関数 GetSelectionCell
現在のSelectionがRangeの場合だけセル範囲として返し、図形などを選択している場合はNothingを返すExcel VBA汎用関数を解説します。
指定名の図形を取得するExcel VBA汎用関数 GetShapeByName
指定したワークシート上から名前一致のShapeを取得し、見つからない場合はNothingを返すExcel VBA汎用関数を解説します。
クリックされた図形を取得するExcel VBA汎用関数 GetShapePushed
図形のOnActionから呼ばれたマクロ内で、クリック元のShapeを取得するExcel VBA汎用関数を解説します。
DoEventsで短時間待機するExcel VBA汎用プロシージャ WaitByDoEvents
TimerとDoEventsを使い、指定ミリ秒だけExcelの応答を残しながら待機するExcel VBA汎用プロシージャを解説します。
現場DXの理想と現実: スマホ入力化が必ずしも効率化になるとは限らない
現場業務をスマホ入力化するときに、技術的にできるかだけでなく、現場が本当に楽になるかを基準に判断するための設計思想を整理します。
古物商の現場入力をスマホ化したGAS Webアプリ開発対応事例
古物商の買取・払出・経費報告などをスマホ入力化し、Googleスプレッドシートで管理できるようにしたGAS Webアプリの開発対応事例です。
Claude Codeの定型作業をSkill化し、CLAUDE.mdと二段構成で運用する
リリースや検証などの繰り返し作業を、CLAUDE.mdを正本、SKILL.mdを実行形として管理する運用パターンを紹介します。
Codexノウハウが育ち、開発が加速する循環を作る
Codexで得た調査結果、依頼テンプレート、検証手順、振り返りを知識ベースへ戻し、次の開発で再利用する循環型の運用を紹介します。
Next.js静的サイトにDBなしのサイト内検索を追加する方法
Next.jsの静的サイトで、記事・用語集・開発事例をビルド時に検索データ化し、ブラウザ側で横断検索する実装パターンを紹介します。
ZIPファイル内の一覧を取得するExcel VBA汎用プロシージャ
VBAからPowerShellと.NETのZipArchiveを呼び出し、ZIPファイル内やZIP内ZIPのファイル一覧を二次元配列で取得する汎用プロシージャを解説します。
VSTO Ribbon XMLで既存のOfficeタブへボタンを追加する
VSTOアドインのリボンボタンを新規タブではなく、開発タブや数式タブなど既存Officeタブへ追加するidMsoの使い方を紹介します。
VBEの特定モジュール・行へCodePaneでジャンプする方法
VSTOアドインやExcelマクロからVBEを開き、特定モジュールの特定行を確実に表示するSetSelectionとTopLineの使い方を紹介します。
WPFでマウス中ボタンのブラウザ風オートスクロールを実装する
WPFアプリでマウス中ボタンを押すと、カーソル位置に応じてScrollViewerを連続スクロールするヘルパー実装を紹介します。
記事化前にユーザーへ確認する質問テンプレート
素材だけでは業務意図や公開範囲が判断できないとき、記事化前に確認する質問を用途別に整理します。
Codex作業完了時に音で知らせる通知ルール
長めのCodex作業が完了したことに気づきやすくするため、Windows PowerShellのbeepを使って完了通知する運用ルールを整理します。
技術記事を公開する前のリスクチェックリスト
技術記事、開発事例、用語集、サイト改善案を公開する前に、顧客名、個人情報、APIキー、実パスなどを確認するためのチェックリストです。
MDX記事で専門用語をTermリンク化する運用ルール
Softex Celware Tech BlogのMDX記事で、専門用語をTermコンポーネントに置き換えるときの選定基準と作業手順を整理します。
開発資産MarkdownをMDX記事へ変換する作業フロー
開発資産フォルダにあるMarkdownを、公開用のMDX記事へ変換するときの確認順序、frontmatter、関連リンク、検証観点を整理します。
Codex作業開始前に進め方をそろえる確認ルール
記事追加、ツール作成、候補調査、公開作業を始める前に、対象範囲、目的、公開有無、完了時の出力を短く確認する運用ルールを整理します。
GAS Webアプリの入力途中離脱を防ぐ方法
GAS Webアプリのスマートフォン入力フォームで、再読み込みや戻る操作による入力途中の消失を防ぐため、beforeunloadと送信状態フラグを使う方法を解説します。
GAS Webアプリでスマホ写真を送信前に圧縮する方法
GAS Webアプリでスマートフォン写真をBase64送信する前に、ブラウザ側のCanvasでJPEG化・縮小・圧縮して処理を安定させる方法を解説します。
GASで作る工事現場向け写真付き報告書Webアプリ
工事現場や点検現場で使える、スマホ写真から写真付きPDF報告書を自動作成するGAS Webアプリの開発事例と構築手順を紹介します。
GASで送信ごとにGoogle Drive専用フォルダへ保存する方法
GAS Webアプリで画像やPDFを生成するとき、1回の送信ごとに専用フォルダを作り、関連ファイルをまとめて保存する実装パターンを解説します。
GAS Webアプリのスマホ余白を抑えるHTMLテンプレート
Google Apps ScriptのWebアプリで、スマホ表示時の余白やフォント拡大を抑えるためのHTMLテンプレートを紹介します。
GASで結合セルの左上セルに安全に値を入れる方法
Googleスプレッドシート帳票の結合セルに、GASから値やIMAGE関数を安全に入れるため、結合範囲の左上セルだけへ書き込む実装パターンを解説します。
GAS帳票のセル配置をslots配列で管理する方法
写真枠や入力欄のセル番地をGAS処理内に散らばらせず、slots配列に集約して帳票テンプレート変更に強くする実装パターンを解説します。
GASでテンプレートシートを複製して複数ページPDFを作る方法
Googleスプレッドシートの帳票テンプレートをページ数分コピーし、写真付き報告書や点検票を複数ページPDFとして出力するGAS実装パターンを解説します。
PowerShellスクリプトとbatランチャーの文字コード・改行コード対策
Windows PowerShell 5.1でps1の日本語が文字化けする問題、batのLF改行で実行が崩れる問題を、UTF-8 BOM・ASCII・CRLFのルールで回避する方法をまとめます。
上下キーでTextBoxの数値を増減するExcel VBA汎用プロシージャ
UserFormのTextBoxで上下キーを押したときに、指定範囲内で数値を増減させるExcel VBA汎用プロシージャを解説します。
ファイル選択ダイアログを共通化するExcel VBA汎用プロシージャ
Application.FileDialogでファイル選択ダイアログを表示し、選択されたファイルのフルパスを返すExcel VBA汎用プロシージャを解説します。
AvalonDockレイアウト保存が永続化されないバグをOnBeforeHideで防ぐ
VSTO の WinForms Form + ElementHost + WPF 構成で、Form.Hide() では WPF の Unloaded が発火せず AvalonDock レイアウトが保存されない問題への対策を解説します。
CustomTaskPane Floatingの位置制御には限界がある
VSTO の CustomTaskPane を Floating 表示したとき、位置やサイズを完全には制御できない理由と、独立ウィンドウが必要な場合の判断基準を解説します。
OneDrive配下のVSTO ClickOnce発行でapp.publishを削除してから発行する
OneDrive 同期フォルダ配下の VSTO プロジェクトで ClickOnce 発行時に app.publish の削除エラーが出る場合の、事前削除手順をまとめます。
VSTOアドインで独立UIを出す3つのホスティングパターン
VSTO アドインから Excel と並行操作できる独立 UI を出すときの、CustomTaskPane、WPF Window、WinForms Form + ElementHost の違いを整理します。
AvalonDockで新ペイン追加時に保存済みレイアウトと互換を取る
AvalonDock の保存済み layout.xml がある環境で、アプリ更新により追加した新ペインが表示されない問題を避けるための補完パターンを解説します。
AvalonEditでDocumentColorizingTransformerによる意味的着色を行う
AvalonEdit の xshd だけでは表現しにくい、プロジェクト内シンボルに応じた意味的着色を DocumentColorizingTransformer で重ねる方法を解説します。
WPF Canvasでドラッグ可能なカードとBezier矢印を描く
WPF Canvas 上にカード型ノードを配置し、ドラッグ移動と Bezier 矢印の再描画で簡易的な関係図を作る実装パターンを解説します。
GASでスマホ写真付きレポートをPDF出力する方法
GAS Webアプリでスマホ写真を受け取り、Drive保存とスプレッドシートのIMAGE関数を使って写真付き帳票PDFを安定して作る方法を解説します。
VSTOのClickOnce発行でRuntimeIdentifiers 'win' エラーが出たときの対策
VSTOプロジェクトのClickOnce発行時に Your project file doesn't list 'win' as a RuntimeIdentifier と出る場合の原因と、旧形式csprojへRuntimeIdentifiersを追加する対策を整理します。
DataContractJsonSerializerで古い設定JSONを壊さないためのOnDeserializedマイグレーション
DataContractJsonSerializerで保存した設定クラスに新しいプロパティを追加したとき、旧JSONのnull値でUIが壊れないようにOnDeserializedで既定値を補填する方法を整理します。
Google Search Console × Codexで回す自律型SEO改善サイクルの構想案
Google Search Consoleの実績データとCodexによるページ確認を組み合わせ、SEO改善を半自動で回す仕組みの構想案を整理します。
Excel VBA自動化コードをAIに読みやすく分離する流れ
Excel VBAのマクロブックを、AIが読みやすいsummary、risk_report、article_candidatesへ分離し、技術記事化や再利用判断につなげる流れを解説します。
Excel VBAのイミディエイトウィンドウをCUIのように使ってプロシージャコードを半自動生成する
VBEのイミディエイトウィンドウを簡易CUIとして使い、短い入力だけでSubやFunctionのプロシージャひな形を生成してクリップボードへ格納するVBA開発支援テクニックです。
Excel VBAで桁数の大きい整数を配列計算して三つの立方数の和を検算する
VBAの通常の数値型では扱いにくい大きな整数を1桁ずつ配列で持ち、加算・減算・乗算を実装して三つの立方数の和が42になることを検算する例です。
奇数列の無限積が √2 - 1 に収束することをExcel実験から確かめる
奇数列から作った無限積が √2 - 1 に近づく様子をExcelの数値実験で確認し、ガンマ関数と反射公式を使った証明の流れまで整理します。
Excel VBAの処理を汎用部品として残すための考え方
Excel VBAで作った便利な処理を案件ごとの使い捨てにせず、次回以降も使える汎用部品として整理する判断基準と残し方をまとめます。
GitHub Pages + ReleasesでWindows EXE配布ページを作る
Windows向けEXEツールの紹介ページをGitHub Pagesに置き、配布ZIPをGitHub Releasesで管理する構成を解説します。
ユーザーフォームにラベルを動的追加するExcel VBA汎用プロシージャ
UserForm上にMSForms.Labelを追加し、位置・サイズ・表示テキストをまとめて設定するExcel VBA汎用プロシージャを解説します。
入力漏れチェックとメッセージ表示をまとめるExcel VBA汎用プロシージャ
入力項目名と入力値をペアで渡し、空欄があれば警告メッセージを表示してFalseを返すExcel VBA汎用プロシージャを解説します。
Shapeを90度回転してセル範囲に合わせるExcel VBA汎用プロシージャ
Excel VBAでShapeを90度回転し、指定したセル範囲の中心とサイズに合わせる汎用プロシージャを解説します。
2つの条件で二次元配列を検索するExcel VBA汎用プロシージャ
二次元配列から2つの検索条件に一致する行を探し、指定列の値を返すExcel VBA汎用関数を解説します。
Next.jsでOGP / Twitter Cardを設定してSNSリンクプレビューを整える
XやSNSにURLを貼ったときに、タイトル・説明文・画像付きカードを表示するためのNext.js Metadata API設定パターンを解説します。
VSTOでWPF UIを独立ウィンドウ表示するWinForms Form + ElementHostパターン
VSTOアドインでExcelと並行操作できるWPF UIを出すために、WinForms FormへElementHostでWPF UserControlを載せる実装パターンを解説します。
COMをDTO境界で分離してテストしやすい解析エンジンにする
OfficeやVBEのCOMオブジェクトに触れる層を薄くし、解析エンジンをDTOだけで動かせるようにする設計パターンです。
クロスプロジェクトのPublicシンボル参照を解決する
別プロジェクトのPublic関数や宣言を呼んでいる箇所を、参照設定とSymbolTableを使って抽出する方法です。
#If VBA7 / Win64 のDeclare宣言をDeclBuilderで1つにまとめる
VBAの条件付きコンパイルで分岐したAPI宣言を、同じシンボルの1エントリとして扱うDeclBuilderパターンです。
ゴールデンテストで旧版から新版への移植品質を検証する
既存システムの解析結果を正解データとして保存し、新実装の出力とdiffで比較する移植検証パターンです。
Property Get / Let / Set を別エンティティとして扱う
VBAやVB系言語のPropertyを、名前は同じでもGet/Let/Setの別アクセサとして解析するためのモデル設計です。
SymbolTable、Resolver、ReferenceGraphで参照関係を高速に解決する
コード中の呼び出し関係や変数参照を、辞書と双方向グラフで扱いやすくする基本設計です。
VBAやDSLのLexer・Parserを自前実装して識別子境界を正確に扱う
String.Containsや正規表現だけでは壊れやすいコード解析を、LexerとParserで安定させる基本パターンです。
AIコーディングでAGENTS.mdを運用ルールとして使う方法
CodexなどのAIコーディング支援で、毎回守りたい開発方針や再利用ルールをAGENTS.mdに整理し、案件ごとの指示と使い分ける方法を解説します。
開発で作った処理を再利用資産に育てる部品化ポリシー
AIコーディングで作った関数、UI、手順、エラー処理を、次回以降にも使える開発資産として残すための判断基準と部品化の粒度を整理します。
案件終了後に開発資産を見つけるレビュー手順
案件終了時に、再利用できる処理、設計、手順、トラブル対応を開発資産として残すか判断するためのレビュー観点とMarkdownテンプレートを紹介します。
PyInstallerで本体EXEとランチャーEXEを同時ビルドする構成
常駐型Pythonアプリで、本体EXEと呼び出し専用ランチャーEXEを1つのspecから同時に作る構成を解説します。
PyInstallerのEXEアイコンとtkinterウィンドウアイコンを共通化する
PyInstallerで作ったEXEのアイコンと、tkinterウィンドウ左上のアイコンを同じICOで統一する実装パターンです。
Pythonアプリの共通情報をapp_info.pyに集約する
バージョン、開発元URL、ブログURL、GitHub URLなどをapp_info.pyにまとめ、UIやREADMEの更新漏れを減らす方法です。
tkinterアプリのJSON設定を読み込み・書き出し・自動バックアップする
ユーザー資産になるconfig.jsonを安全にインポート、エクスポート、自動バックアップするConfigManagerの実装パターンです。
tkinter常駐アプリでランチャーEXEから既存プロセスへ画面表示を通知する
名前付きミューテックスと名前付きイベントを使い、ランチャーEXEから起動済みのtkinter本体へ画面表示を依頼する方法です。
Windows EXE配布用README・LICENSE・Notices・チェックリスト
Windows向けEXEをZIP配布するときに必要なREADME、LICENSE、THIRD_PARTY_NOTICES、配布前チェック項目をまとめます。
Windows EXE配布ZIPの構成テンプレート
インストーラーなしで小型Windowsツールを配布するときのZIP構成、同梱ファイル、除外すべきファイルを整理します。
Windowsタスクバー運用では常駐本体ではなくランチャーEXEをピン留めする
常駐型tkinterツールで、起動中ウィンドウではなく呼び出し専用ランチャーEXEをタスクバーに固定する運用設計を解説します。
VSTO ClickOnce の ApplicationVersion はワイルドカード不可
VSTO の ClickOnce 発行で ApplicationVersion にワイルドカードを使うと発行エラーになる理由と、AutoIncrementApplicationRevision で安全に版数を増やす設定を整理します。
VSTO ClickOnce 自動更新の仕組み
VSTO や WPF の ClickOnce 自動更新がいつ、どこを、どのように確認するのかを整理し、ZIP、共有フォルダ、UNC、Web 配布の違いを解説します。
.NET で Shift-JIS / CP932 を扱う Encoding.RegisterProvider
.NET Core や .NET 5+ で Shift-JIS / CP932 を扱うために CodePagesEncodingProvider を登録する方法と、VBA ファイル連携での改行コード注意点をまとめます。
VBE References から Project 種別の参照だけを抽出する
VBE の Tools - References に含まれる参照から、他の VBA Project への参照だけを抽出し、壊れた参照や TypeLib を安全に除外する方法を解説します。
dynamic 経由で VBIDE / COM 参照競合を回避する
VSTO アドインから Application.VBE を呼びたいときに、Microsoft.Vbe.Interop の参照競合を避けるため dynamic でランタイム解決する実装パターンを紹介します。
VSTO + WPF のキーボードフォーカス問題を CustomTaskPane で解決する
VSTO アドインで WPF Window を表示すると Excel にフォーカスを奪われる問題を、CustomTaskPane と ElementHost で解決する実装パターンを紹介します。
AvalonDock のレイアウトを XmlLayoutSerializer で保存・復元する
AvalonDock で作った IDE 風 UI のペイン配置、タブ、フローティング位置を XML に保存し、次回起動時に復元する基本パターンを解説します。
AvalonEdit の検索ハイライトを DocumentColorizingTransformer で実装する
AvalonEdit で検索キーワードに一致した箇所を半透明背景でハイライトするための DocumentColorizingTransformer 実装と再描画、パフォーマンス注意点をまとめます。
コールバック interface で UI と OS 依存を逆転する
WPF UI ライブラリから WinForms、VSTO、COM などのホスト依存処理を直接参照せず、コールバック interface で上位層へ任せる設計パターンを紹介します。
WPF KeyboardNavigation で矢印キーの飛び出しを防ぐ
WPF の ListView や TreeView で矢印キー操作中にフォーカスが隣のコントロールへ飛ぶ問題を、DirectionalNavigation=Contained で防ぐ方法を解説します。
Vercelセキュリティインシデントを受けて、Next.js + Supabaseアプリの安全性を全点検してみた
2026年4月のVercelセキュリティインシデントを受けて、Next.js + Supabaseで運用中の個人アプリ「らくログタスク」のセキュリティを5項目でチェック。結果は全項目安全。チェック方法をそのまま共有します。
ElectronアプリのソースコードをGitHubへワンクリックで納品する方法
node_modulesやDBファイルを除外しつつ、コミットとpushをワンクリックで完結させるバッチファイルとgitignoreテンプレートのセットです。
package.jsonのversionをVite+Electronアプリ全体に自動反映する方法
package.jsonのversionを唯一の出典にして、HTML表示・タイトルバー・Electronウィンドウに自動注入。バージョン更新漏れ事故を防ぎます。
論理削除テーブルで削除済みIDを再利用する最小空き番号採番ロジック
MAX(id)+1では削除IDが永久欠番になります。有効レコードが占有していない最小の正整数を返すロジックでID空間を効率的に使い回す方法を解説します。
sql.jsでCSV一括取込みをO(n²)からO(n)に高速化する方法
ループ内でsave()を呼び続けるO(n²)設計が数百行で破綻する問題を、生APIで書き込んで末尾で1回だけsaveする方式に変えて劇的に高速化します。
sql.jsとElectron IPCでインストール不要のローカルDBを永続化する方法
ネイティブモジュール不要。sql.js(WebAssembly版SQLite)をレンダラーで動かし、ファイル永続化だけIPC経由でメインプロセスに任せる構成を解説します。
Uint8Arrayを安全にbase64エンコードしてlocalStorageに保存する方法
100KB超のUint8Arrayをbtoapに渡すとスタックオーバーフローが起きます。32KBチャンク分割でエンコードする安全なパターンを解説します。
実績バッジシステムをlocalStorage + Supabase併用で実装する方法
ゲスト時はlocalStorage、ログイン後はSupabaseに同期する実績バッジシステム。トースト通知付き。
重い処理でUIが固まらない!setTimeout(0)でプログレスバー+キャンセル対応
重い計算処理中もUIがフリーズしない非同期ループパターン。setTimeout(0)でプログレス更新とキャンセル対応を両立。
Canvasで複数要素を1枚に合成してPNGダウンロードする方法
グリッド+ヒント数字+罫線をCanvasに合成して1枚のPNGとして保存。サーバー不要でクライアント側完結。
複数ページ共通UIをIIFEモジュールに集約する方法(フレームワーク不要)
フレームワークなしで共通UIコードを切り出すIIFEパターン。実測170行以上の重複削減事例付き。
flex-wrap + orderで2段ナビゲーションを作る方法(モバイルは下部タブバー)
overflow:hiddenやscrollに頼らず、flex-wrap + orderで自動2段ナビ。モバイルは下部タブバーに完全切替。
ゲームHUD(スコア/タイマー/コンボ)と結果モーダルのCSSパターン
スコア・タイマー・コンボのHUDレイアウト + 背景ブラー付き結果モーダルのゲームUIパターン。
Git Subtree Splitでサブフォルダだけを GitHub/Vercel にデプロイする方法
開発資料を含む親リポジトリから、Web/サブフォルダだけをGitHub main にforce pushする deploy.sh パターン。
モバイル向けタップ入力グリッドでソフトキーボードを回避する方法
モバイルで <input>のキーボード開閉によるUX低下を回避。A-Z/0-9ボタングリッドを画面内に配置するパターン。
印刷PDFの用紙向きをコンテンツの縦横比から自動判定する方法
CSS @page + 縦横比計算で、A4縦/横を自動切替する印刷PDF生成パターン。ユーザー操作不要。
pointer-events:noneの全画面オーバーレイで音と連動する視覚フィードバック
音声再生と完全同期する全画面フラッシュを実装。pointer-events:none + opacity遷移でUI操作を邪魔しない。
デザインツール不要!SVGファビコン+PythonでPNG生成する方法
コードだけでファビコンを生成。SVG + Python(struct/zlib)でPillowなしにPNG生成するパターン。
ビルドツール不要でバニラJSに多言語対応(i18n)を実装する方法
静的HTML + バニラJSでビルド不要の軽量i18nを実装。data-i18n属性とlocalStorageで12言語対応も可能。
Web Audio APIで精密タイミング制御(事前スケジューリングでドリフト根絶)
setTimeoutのドリフトを根絶。AudioContext.currentTimeで全音符を一括事前スケジュールする精密タイミングパターン。
ライブラリ不要の月別カレンダーグリッドをCSS Gridで実装する
ライブラリ不要でCSS Grid(grid-cols-7)を使った月別カレンダーの実装パターン。
Reactでドロップダウンを外クリックで閉じる方法(useRef + mousedown)
useRefとmousedownイベントでカスタムドロップダウンを外側クリックで閉じるパターン。
TailwindでDB由来の色を動的に適用する方法(HEX→RGBA変換)
Tailwind CSSでDBに保存したHEXカラーコードを動的に適用する方法。RGBA変換関数付き。
初回オンボーディングをlocalStorageで制御する方法(React)
初回利用時だけガイドモーダルを表示し、次回以降は抑制するパターン。localStorage制御。
Next.js + Supabase Authで認証ガードを実装する方法(Middleware)
Next.js App RouterとSupabase Authでミドルウェア認証ガードを実装。Google OAuth対応。
Reactでライブラリ不要のトースト通知を実装する方法
ライブラリ不要でsetTimeoutによる自動消去トースト通知を実装。成功/エラーの色分けも。
GAS CacheServiceでスプレッドシートの読み込みを高速化する方法
Google Apps ScriptのCacheServiceでスプレッドシートのデータをキャッシュし、2回目以降の読み込みを高速化する方法を解説。
GASでカード型レスポンシブレイアウトを実装する方法
GAS WebアプリでPC中央寄せ・スマホ全幅のカード型レイアウトを実装。コピペで使えるCSS付き。
GASでCSSだけのローディングスピナーを実装する方法
Google Apps Scriptで画像不要・CSSだけで回転スピナーを実装。コピペですぐ使えるコード付き。
GASでスプレッドシートの日付を安全にフォーマットする方法
GASでDate型・文字列型が混在する日付データを安全に変換する関数。コピペですぐ使えるコード付き。
GASでHTMLエスケープ関数を実装してXSS対策する方法
Google Apps ScriptのWebアプリでXSS脆弱性を防ぐHTMLエスケープ関数の実装方法。コピペで使えるコード付き。
スマホ対応フォント設定 - 全OS対応のfont-family指定【GAS・Web共通】
iOS/Android/Windows/Macすべてで美しい日本語を表示するfont-family設定。Webフォント不要で高速。
GASでスプレッドシート検索の全角・半角と大文字小文字を吸収する方法
GAS Webアプリのスプレッドシート検索で「ABC」と「abc」が別扱いになる問題を、検索前の正規化関数で解決する方法を解説します。
google.script.runのエラーハンドリング完全パターン【GAS Webアプリ】
GASのgoogle.script.runで失敗時にエラーが握りつぶされる問題を防ぐ。ボタン制御・ローディング付きの実装パターン。
GASでSPA風の画面遷移を実装して高速な画面切替を実現する方法
Google Apps ScriptのWebアプリでinnerHTMLの書き換えによるSPA風画面遷移を実装。ページ再読み込みなしで高速な画面切替を実現。
Next.js + Supabaseで自動保存を実装するパターン(localStorage併用)
保存ボタン不要の自動保存パターン。SupabaseとlocalStorageの使い分けと楽観的更新の実装方法を解説。
ライブラリ不要!CSSだけでガントチャート(タイムライン)を描画する方法
外部ライブラリなしでCSSのパーセント指定だけでタイムライン表示を実装。作業履歴の時系列表示に最適です。
Reactでインライン削除確認UIを実装する方法(モーダル不要)
モーダルを使わずにインラインで削除確認を表示するパターン。スマホでも操作しやすいUXを実現。
Next.jsでライブラリ不要のヒートマップを実装する方法(曜日×時間帯)
HTMLテーブルとCSSだけで曜日×時間帯のヒートマップを描画。ライブラリ不要でコピペですぐ使えるコード付き。
Promise.allでSupabaseクエリを並列化してページ表示を高速化する方法
複数のSupabaseクエリをPromise.allで並列実行し、ページの読み込み時間を劇的に短縮するテクニックを紹介します。
Rechartsの円グラフ(PieChart)でスライス内にパーセントを表示する方法
Rechartsの円グラフでスライス内にパーセント表示するカスタムラベルの実装方法。コピペで使えるコード付き。
Next.jsでJavaScriptによるレスポンシブ判定(isMobile)を実装する方法
TailwindのCSSだけでは対応できない描画ロジックの分岐に。matchMediaを使ったisMobile判定フックの実装。
SheetJSでブラウザからExcelファイルをエクスポートする方法
SheetJS(xlsx)を使い、ブラウザだけでExcelファイルを生成・ダウンロード。複数シートや時間型の扱いも解説。
Supabaseで1000件以上のデータを全件取得するページネーション実装
Supabaseのselect()は最大1000行制限。range()を使ったループで全件取得するパターンを紹介します。
OAuth不要!X(Twitter)Intent URLでポストボタンを実装する方法
OAuth不要でXへのポストボタンを実装。Intent URLを使えばAPI設定なしでシェア機能が作れます。
