Softex Celware

ExcelVBA専門技術ブログ

中級者向けVBA課題 No.11 (列幅の切り替えボタン)

概要

今回も「実装出来たら便利!」って問題

 

↓課題内容

 

ツイートの動画では0時から23時まで15分ごとに列が用意されている表があります。

各スタッフの作業時間などが着色されているような感じの表です。訪問介護サービスでそのスタッフの稼働時間などの可視化で実際に依頼があったものです。

以下、シフト表と呼びますが、このシフト表は1時間が4列なので合計4x24=96列もあって列数が多くなってしまいます。そのために表示スペースの節約で列幅を狭めてしまうと、中に文字列などの情報を入力したときに見にくくなってしまいます。

これを解決するために必要な範囲だけ列幅を広くしたりできると便利です。

 

動画では、特定のセル範囲と同じサイズのボタンを押すと列幅が広い/狭いが切り替わります。ボタンはその設置されているセル範囲に合わせて処理を行うことができます。

 

実装のポイント

下記項目をクリアすれば同じようなものが作れます。

詳細はググるなり、今時なら生成AIに聞けば答えが出てくるので詳細の解説は行いません。

  • ボタンが設置されている範囲のセルを取得(TopLeftCell,BottomRightCell)
  • 列幅の変更(EntireColumn.ColumnWidth)

コード

実装したExcelにおけるVBAのコードだけ抜粋します。

SwitchColWidth · GitHub

 

頂いた回答

今回も回答をいただきました。毎度ありがとうございます!

 

前回課題

softex-celwear.hatenablog.com

次回課題

softex-celwear.hatenablog.com

PR

ExcelVBAでのツール開発を承っております。(対応実績350件以上 2023.8月)

お気軽にご相談ください。

coconala.com