概要
今回も「実装出来たら便利!」って問題
↓課題内容
中級者向けVBA課題 No.11
— いき As Variant (@aero_iki) 2023年7月27日
「動画のような列幅を切替できるマクロを構築しなさい。ボタンに登録してあるマクロは同じものとします。」#VBA実装術 #SoftexCelwear https://t.co/lRw75I8scO pic.twitter.com/xDFJuQ6BEa
ツイートの動画では0時から23時まで15分ごとに列が用意されている表があります。
各スタッフの作業時間などが着色されているような感じの表です。訪問介護サービスでそのスタッフの稼働時間などの可視化で実際に依頼があったものです。
以下、シフト表と呼びますが、このシフト表は1時間が4列なので合計4x24=96列もあって列数が多くなってしまいます。そのために表示スペースの節約で列幅を狭めてしまうと、中に文字列などの情報を入力したときに見にくくなってしまいます。
これを解決するために必要な範囲だけ列幅を広くしたりできると便利です。
動画では、特定のセル範囲と同じサイズのボタンを押すと列幅が広い/狭いが切り替わります。ボタンはその設置されているセル範囲に合わせて処理を行うことができます。
実装のポイント
下記項目をクリアすれば同じようなものが作れます。
詳細はググるなり、今時なら生成AIに聞けば答えが出てくるので詳細の解説は行いません。
- ボタンが設置されている範囲のセルを取得(TopLeftCell,BottomRightCell)
- 列幅の変更(EntireColumn.ColumnWidth)
コード
頂いた回答
今回も回答をいただきました。毎度ありがとうございます!
できました!
— えの (@KUenoSO_) 2023年7月29日
コード入れても文字数足りるのでツイートに入れます
With Sheet1.Buttons(Application.Caller).TopLeftCell.Resize(1, 4).EntireColumn
If .ColumnWidth >= 3 Then
.ColumnWidth = 0.54
Else
.ColumnWidth = 3
End If
End With pic.twitter.com/BIc1dSn32c
前回課題
次回課題
PR
ExcelVBAでのツール開発を承っております。(対応実績350件以上 2023.8月)
お気軽にご相談ください。