Minerva Consulting AI & データエンジニア

業務の高速化・効率化の考え方と実装例

シート名を自動表示

📄PDFダウンロード

小さなExcel改善02

シート名と帳票タイトルを別々に変更していると、片方だけを直し忘れることがあります。
今回は、シート名を基準に帳票タイトルを自動表示する小さな改善を紹介します。

 


シートをコピーした後、シート名とセル内の帳票タイトルを別々に変更すると、修正漏れが起きやすくなります。
シート名を基準情報として使えば、タイトル側の手入力をなくせます。

 


CELL("filename",A1)で、保存場所・ブック名・シート名を含む文字列を取得します。
FIND関数で「]」の位置を探し、MID関数で次の文字から255文字分を取り出します。
シート名は最大31文字なので、255は十分に大きな値として指定しています。
【注意】
ブックを一度も保存していない場合、CELL("filename",A1)は空白になります。

 


帳票タイトルのセルには、固定文字「月次売上報告書|」と、数式で取得したシート名を連結します。
シート名を変更すると、帳票タイトルも追従します。
小さな改善ですが、二重入力をなくし、印刷物やPDFの表題の修正漏れを防ぎます。

「月次シートをコピーした後、タイトルの月だけ直し忘れることはありませんか」と問いかけると、身近な改善として会話を始めやすくなります。

 

Excel サンプル ダウンロード


 

CELL("filename")から始めるExcelファイル管理の小さな自動化

PDFダウンロード

小さなExcel改善01
CELL関数でファイル名・シート名・保存場所を取得する

大きなシステム開発ではなく、Excelに自分自身のファイル名や保存場所を表示させる小さな工夫です。

 


CELL関数は難しい処理を行う関数ではありません。Excel自身が「私はどこに保存され、何というブックで、どのシートなのか」を表示する入口です。

 


CELL("filename",A1)が返す文字列は、[ と ] を目印にすると、フォルダーパス、ブック名、シート名へ分けられます。

このスライドでは、Microsoft 365などの新しいExcelで使えるTEXTBEFORE関数とTEXTAFTER関数を使用しています。

難しい仕組みではなく、一つの文字列から必要な部分だけを取り出しています。
ファイル名やシート名を変更しても、表示内容が自動で変わるため、タイトルや管理情報の修正忘れを減らせます。

 


スライド3で取り出したシート名、ブック名、フォルダーパスを、実際の帳票や管理欄へ使う例です。

帳票タイトル:シート名をタイトルへ組み込むことで、シート名を変更した際のタイトル修正忘れを減らせます。

ファイル管理欄:現在開いているブック名を表示しておくと、コピーしたファイルや類似ファイルを見分ける補助になります。

保存場所の確認:フォルダーパスを表示しておくと、同名ファイルを別フォルダーで開いている場合の確認に使えます。

大きな自動化ではありませんが、手入力を減らし、変更に自動で追従させることで、日常的な修正漏れを防ぐ小さな改善です。

 


 

DX事例03_Excel高速化による業務改善

PDFダウンロード

 「Excelが遅い」と感じながらも、以前から使っているため、その待ち時間を当たり前として受け入れていないでしょうか。

遅さの原因はExcelそのものではなく、テキストファイルの読込方法、セルへの書込み回数、画面更新、再計算、ループ処理など、プログラムの作り方にある場合があります。

 この事例では、4分かかっていたテキストファイル読込処理を、TextStreamの活用によって0.4秒に短縮した例を入口に、Excel高速化の考え方を紹介します。

 


 遅いExcelは、起動、データ読込、集計、保存など、さまざまな場面で利用者を待たせます。
 しかし、長年使っているExcelほど、利用者は「以前からこうだから」「Excelとはこういうものだから」と受け入れていることがあります。

 高速化では、まず処理時間の長い箇所を切り分けます。原因がテキストファイルの読込なのか、セルへの繰返し書込みなのか、画面更新や再計算なのかを確認し、効果の大きい箇所から改善します。

 


 Excelの処理が遅いとき、PCの性能やExcelそのものが原因とは限りません。
03の画面更新・再計算、04の必要以上のループは、Excel VBAへ修正や機能追加を繰り返すうちに発生しやすい現象です。

不要な処理が残ったり、似た処理が重複したりしても、現在は動作しているため、変更によって壊れるリスクを避けて放置されることがあります。

 そのため高速化では、全面的に書き直すのではなく、改善効果と変更リスクを比較し、影響範囲が限定され、テストしやすい箇所から着手します。

 


 すべてのVBAをリファクタリングするのではなく、まず効果が大きく、変更範囲を限定しやすいテキストファイル読込に着目しました。

従来の読込処理では約4分かかっていましたが、TextStreamを利用した読込方式へ変更することで、0.4秒まで短縮できました。

 重要なのは、Excel全体を作り直したことではありません。処理時間を測り、ボトルネックを特定し、その1か所を改善した点です。

補足:
TextStreamは、VBAからテキストファイルを扱うための方法です。実際の適用では、文字コード、区切り文字、ファイル容量、既存処理との整合性を確認します。
「4分から0.4秒」は本事例における実績値です。すべてのExcelで同じ改善率になることを示すものではありません。

 


 TextStreamは、VBAからテキストファイルを順番に読み取るための仕組みです。
従来処理では、1行読む、内容を確認する、セルへ書き込む、といった処理を行数分繰り返していました。

 改善後は、TextStreamでファイルを効率よく読み取り、必要なデータを整理してからまとめて処理します。

 高速化のポイントは、特別に速い命令を使うことだけではありません。
ファイル読込、セル参照、セル書込みなど、時間のかかる処理を何回実行しているかを見直すことです。

 


 Excel高速化の方法はTextStreamだけではありません。遅さの原因に合わせて、読込方法、セル操作、画面更新や再計算、ループ構造などを見直します。

大切なのは、すべての改善策を一度に適用することではありません。処理時間を測り、効果が大きく、変更リスクとテスト範囲を管理しやすい方法を選びます。

補足:
Power Query、配列、一括書込み、画面更新や自動再計算の制御、ループ削減は代表例です。実際の適否は既存Excelの構造と利用条件によって判断します。

 


 Excel高速化は、最初から大規模な改修を前提にしません。まず、利用者がどの操作で待っているかを確認し、処理時間を測ってボトルネックを切り分けます。

そのうえで、変更による影響範囲とテスト方法を整理し、改善効果の大きい順に選択肢を示します。必要に応じて限定範囲で試し、改善前後の処理時間を比較します。

 


 この事例では、4分かかっていたテキストファイル読込処理を、TextStreamの活用によって0.4秒に短縮しました。

 重要なのは、この数値だけではありません。遅い原因を切り分け、変更リスクを管理し、改善前後を数字で確認する進め方です。

 Excelの遅さは、長年の運用で当たり前になっていることがあります。全面改修を決める前に、まず既存Excelのどこで待っているかを確認するところから始められます。

 


関連記事

www.mitech.work